нововведение: QoS (пока пустой). добавил чтение настроек модема, пока что оно не работает в браузере и не все параметры есть. найден баг с крашем приложения при получении параметров dpdm и acm

This commit is contained in:
2024-11-06 18:00:29 +03:00
parent 6f62c3e1fa
commit eaee827261
10 changed files with 352 additions and 192 deletions

View File

@@ -21,6 +21,7 @@
<span style="font-weight:bold">RSCM-101</span>
<a href="#monitoring" class="tabs-btn" @click="activeTab = 'monitoring'" :class="{ active: activeTab === 'monitoring' }">Мониторинг</a>
<a href="#setup" class="tabs-btn" @click="activeTab = 'setup'" :class="{ active: activeTab === 'setup' }">Настройки</a>
<a href="#qos" class="tabs-btn" @click="activeTab = 'qos'" :class="{ active: activeTab === 'qos' }">QoS</a>
<a href="#admin" class="tabs-btn" @click="activeTab = 'admin'" :class="{ active: activeTab === 'admin' }">Администрирование</a>
<a href="/logout" class="tabs-btn">Выход</a>
</div>
@@ -89,7 +90,7 @@
<table>
<tbody>
<tr><th>Температура ADRV</th><td>{{ stat_device.adrv }} °C</td></tr>
<tr><th>Температура ZYNC</th><td>{{ stat_device.zync }} °C</td></tr>
<tr><th>Температура ZYNC ULTRASUCK</th><td>{{ stat_device.zync }} °C</td></tr>
<tr><th>Температура FPGA</th><td>{{ stat_device.fpga }} °C</td></tr>
</tbody>
</table>
@@ -97,18 +98,17 @@
</div>
<div class="tabs-body-item" v-show="activeTab === 'setup' && settingFetchComplete">
<h2>Настройки приема/передачи</h2>
<form method="POST" onsubmit="" class="settings-set-container">
<form class="settings-set-container">
<label>
<span>Режим работы</span>
<select v-model="param.general.mode">
<option value="scpc">SCPC</option>
<option value="cinc">CinC</option>
<select v-model="param.general.isCinC">
<option value="false">SCPC</option>
<option value="true">CinC</option>
</select>
</label>
<button type="submit">Сохранить</button>
</form>
<div class="tabs-item-flex-container">
<form>
<form class="tabs-item-flex-container">
<div>
<h2>Настройки передатчика</h2>
<label>
<span>Включить передатчик</span>
@@ -138,12 +138,11 @@
<option value="test">Тест (CW)</option>
</select>
</label>
<button type="submit">Сохранить</button>
</form>
<form>
</div>
<div>
<h2>Параметры передачи</h2>
<label>
<span>Центральная частота, кГц</span>
<span>Центральная частота, КГц</span>
<input v-model="param.tx.centerFreq"/>
</label>
<label>
@@ -161,19 +160,12 @@
</select>
</label>
<label>
<span>Номер послед-ти Голда</span>
<select v-model="param.tx.goldan">
<option value="0">0</option>
<option value="1">1</option>
</select>
</label>
<label>
<span>Ослабление, dB</span>
<span>Ослабление, дБ</span>
<input v-model="param.tx.attenuation"/>
</label>
<button type="submit">Сохранить</button>
</form>
<form>
</div>
<div>
<h2>Режим работы DVB-S2</h2>
<label>
<span>Режим</span>
@@ -189,13 +181,13 @@
<option value="short">short</option>
</select>
</label>
<label>
<span>Пилот-символы</span>
<select v-model="param.dvbs2.pilots">
<option value="true">pilots</option>
<option value="false">no pilots</option>
</select>
</label>
<!-- <label>-->
<!-- <span>Пилот-символы</span>-->
<!-- <select v-model="param.dvbs2.pilots">-->
<!-- <option value="true">pilots</option>-->
<!-- <option value="false">no pilots</option>-->
<!-- </select>-->
<!-- </label>-->
<label v-show="param.dvbs2.mode === 'ccm'">
<span>Модуляция</span>
@@ -213,6 +205,11 @@
</select>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Текущий модкод</span>
<input v-model="stat_rx.modcod" readonly>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Модуляция (макс. режим)</span>
<select v-model="param.dvbs2.acm_maxModulation">
@@ -243,33 +240,30 @@
<option v-for="speed in getAvailableModcods(param.dvbs2.acm_minModulation)" v-bind:value="speed">{{ speed }}</option>
</select>
</label>
<button type="submit">Сохранить</button>
</form>
<form>
</div>
<div>
<h2>Настройки авто-регулировки мощности</h2>
<label>
<span>Авто-регулировка мощности</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.acp.en" />
<input type="checkbox" v-model="param.acm.en" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Максимальное ослабление</span>
<input v-model="param.acp.maxAttenuation"/>
<input v-model="param.acm.maxAttenuation"/>
</label>
<label>
<span>Минимальное ослабление</span>
<input v-model="param.acp.minAttenuation"/>
<input v-model="param.acm.minAttenuation"/>
</label>
<label>
<span>Требуемое ОСШ</span>
<input v-model="param.acp.requiredSnr"/>
<input v-model="param.acm.requiredSnr"/>
</label>
<button type="submit">Сохранить</button>
</form>
<form>
</div>
<div>
<h2>Настройка приемника</h2>
<label>
<span>Режим управления усилением</span>
@@ -307,28 +301,123 @@
<option value="25">0.25</option>
</select>
</label>
<label>
<span>Номер послед-ти Голда</span>
<select v-model="param.rx.goldan">
<option value="0">0</option>
<option value="1">1</option>
</select>
</label>
<label>
<span>Ослабление, dB</span>
<input v-model="param.rx.attenuation"/>
</label>
<button type="submit">Сохранить</button>
</div>
</form>
<button>Сохранить</button>
<h2 v-show="param.general.mode === 'cinc'">Настройки режима CinC</h2>
<form v-show="param.general.mode === 'cinc'" class="settings-set-container">
<label>
<span>Метод расчета задержки</span>
<select v-model="param.cinc.mode">
<option value="positional">Позиционированием</option>
<option value="delay">Окном задержки</option>
</select>
</label>
<h3 v-show="param.cinc.mode === 'positional'">Настройки позиционирования</h3>
<label v-show="param.cinc.mode === 'positional'">
<span>Широта станции</span>
<input v-model="param.cinc.position.station.latitude"/>
</label>
<label v-show="param.cinc.mode === 'positional'">
<span>Долгота станции</span>
<input v-model="param.cinc.position.station.longitude"/>
</label>
<label v-show="param.cinc.mode === 'positional'">
<span>Долгота спутника</span>
<input v-model="param.cinc.position.satelliteLongitude"/>
</label>
<h3 v-show="param.cinc.mode === 'delay'">Задержка до спутника</h3>
<label v-show="param.cinc.mode === 'delay'">
<span>от, мс</span>
<input v-model="param.cinc.delayMin"/>
</label>
<label v-show="param.cinc.mode === 'delay'">
<span>до, мс</span>
<input v-model="param.cinc.delayMax"/>
</label>
</form>
<button v-show="param.general.mode === 'cinc'" type="submit">Сохранить</button>
<h2>Настройки питания и опорного генератора</h2>
<div class="tabs-item-flex-container">
<form>
<h3>Настройки BUC</h3>
<label>
<span>Подача опоры 10МГц</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.buc.refClk10M" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Питание BUC</span>
<select v-model="param.buc.powering">
<option value="0">выкл</option>
<option value="24">24В</option>
<option value="48">48В</option>
</select>
</label>
</form>
<form>
<h3>Настройки LNB</h3>
<label>
<span>Подача опоры 10МГц</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.lnb.refClk10M" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Питание LNB</span>
<select v-model="param.lnb.powering">
<option value="0">выкл</option>
<option value="13">13В</option>
<option value="18">18В</option>
<option value="24">24В</option>
</select>
</label>
</form>
<form>
<h3>Сервисные настройки</h3>
<label>
<span>Подача опоры 10МГц на 'Выход 10МГц'</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.serviceSettings.refClk10M" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Задержка включения передачи, мс</span>
<input v-model="param.serviceSettings.startDelay"/>
</label>
<label>
<span>Автозапуск при включении</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.serviceSettings.autoStart" />
<span class="slider"></span>
</span>
</label>
</form>
</div>
<div v-show="param.general.mode === 'cinc'">
<h2>Настройки режима CinC</h2>
<p>CinC пока нельзя настроить, но скоро разработчик это поправит)</p>
</div>
<div>
<h2>Настройки питания и опорного генератора</h2>
<p>Эти настройки пока недоступны, но скоро разработчик это поправит)</p>
</div>
<button type="submit">Сохранить</button>
</div>
<div class="tabs-body-item" v-show="activeTab === 'qos'">
<p>
Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку пива)
</p>
<video preload="auto" controls>
<source src="/vid/video_2024-11-06_15-49-35.mp4" type="video/mp4" />
</video>
</div>
<div class="tabs-body-item" v-show="activeTab === 'admin'">
<p>
@@ -345,7 +434,7 @@
<script src="/js/vue.js"></script>
<script>
// const router = useRouter();
const availableTabs = ['monitoring', 'setup', 'admin']
const availableTabs = ['monitoring', 'setup', 'qos', 'admin']
const defaultTab = availableTabs[0]
function getCurrentTab() {
@@ -447,7 +536,7 @@
param: {
general: {
mode: 'scpc',
isCinC: false,
txEn: false, // включен/выключен
modulatorMode: 'normal', // режим работы модулятора
autoStartTx: false, // было "режим работы передатчика"
@@ -455,7 +544,6 @@
},
tx: {
attenuation: -3.0, // ослабление
goldan: '0',
rolloff: 20,
cymRate: 100000,
centerFreq: 1200000.0,
@@ -479,7 +567,7 @@
servicePacketPeriod: 15,
},
// авто-регулировка мощности
acp: {
acm: {
en: false,
maxAttenuation: -2.0,
minAttenuation: -3.0,
@@ -489,18 +577,37 @@
gainMode: 'auto', // режим управления усилением
manualGain: 70, // усиление, только для ручного режима
spectrumInversion: false,
goldan: '0',
rolloff: 20,
cymRate: 100000,
centerFreq: 1200000.0,
},
buc: {
cinc: {
mode: null, // 'positional' | 'delay'
searchBandwidth: 0, // полоса поиска в кГц
position: {
station: {
latitude: 0,
longitude: 0
},
satelliteLongitude: 0,
},
delayMin: 0,
delayMax: 0
},
buc: {
refClk10M: false, // подача опоры 10MHz
powering: 0 // 0, 24, 48
},
lnb: {
refClk10M: false, // подача опоры 10MHz
powering: 0 // 0, 13, 18, 24
},
serviceSettings: {
refClk10M: false, // подача опоры 10MHz
startDelay: 0, // задержка включения передачи
autoStart: false
},
lnb: {},
serviceSettings: {},
},
testState: '?',

Binary file not shown.