сделал чтение настроек, удалил пару рудиментов

This commit is contained in:
2024-11-07 13:59:20 +03:00
parent eaee827261
commit 4a293e10f6
7 changed files with 283 additions and 85 deletions

View File

@@ -13,7 +13,7 @@
<div>
<span class="nav-bar-element">Прием: <span :class="{ indicator_bad: stat_rx.state === false, indicator_good: stat_rx.state === true, indicator: true }"></span></span>
<span class="nav-bar-element">Передача: <span :class="{ indicator_good: stat_tx.state === true, indicator: true }"></span></span>
<span class="nav-bar-element">Тест: <span :class="{ indicator_bad: testState === false, indicator_good: testState === true, indicator: true }"></span></span>
<span class="nav-bar-element">Тест: <span :class="{ indicator_good: (param.general.isTestInputData === true || param.general.modulatorMode === 'test'), indicator: true }"></span></span>
<!-- Последнее обновление: {{ lastUpdateTime }}-->
</div>
<div class="tabs">
@@ -90,7 +90,7 @@
<table>
<tbody>
<tr><th>Температура ADRV</th><td>{{ stat_device.adrv }} °C</td></tr>
<tr><th>Температура ZYNC ULTRASUCK</th><td>{{ stat_device.zync }} °C</td></tr>
<tr><th>Температура ZYNQ ULTRASUCK</th><td>{{ stat_device.zynq }} °C</td></tr>
<tr><th>Температура FPGA</th><td>{{ stat_device.fpga }} °C</td></tr>
</tbody>
</table>
@@ -133,9 +133,9 @@
</label>
<label>
<span>Входные данные</span>
<select v-model="param.general.inputData">
<option value="eth">Ethernet</option>
<option value="test">Тест (CW)</option>
<select v-model="param.general.isTestInputData">
<option value="false">Ethernet</option>
<option value="true">Тест (CW)</option>
</select>
</label>
</div>
@@ -309,8 +309,8 @@
</form>
<button>Сохранить</button>
<h2 v-show="param.general.mode === 'cinc'">Настройки режима CinC</h2>
<form v-show="param.general.mode === 'cinc'" class="settings-set-container">
<h2 v-show="param.general.isCinC">Настройки режима CinC</h2>
<form v-show="param.general.isCinC" class="settings-set-container">
<label>
<span>Метод расчета задержки</span>
<select v-model="param.cinc.mode">
@@ -343,7 +343,7 @@
<input v-model="param.cinc.delayMax"/>
</label>
</form>
<button v-show="param.general.mode === 'cinc'" type="submit">Сохранить</button>
<button v-show="param.general.isCinC" type="submit">Сохранить</button>
<h2>Настройки питания и опорного генератора</h2>
<div class="tabs-item-flex-container">
@@ -396,11 +396,7 @@
</span>
</label>
<label>
<span>Задержка включения передачи, мс</span>
<input v-model="param.serviceSettings.startDelay"/>
</label>
<label>
<span>Автозапуск при включении</span>
<span>Автозапуск BUC и LNB при включении</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.serviceSettings.autoStart" />
<span class="slider"></span>
@@ -412,9 +408,9 @@
</div>
<div class="tabs-body-item" v-show="activeTab === 'qos'">
<p>
Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку пива)
Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку <strike>пива</strike> колы)
</p>
<video preload="auto" controls>
<video preload="auto" controls style="max-width: 100%">
<source src="/vid/video_2024-11-06_15-49-35.mp4" type="video/mp4" />
</video>
@@ -489,6 +485,40 @@
return modcods[modcod]
}
function extractModulationAndSpeedFromModcod(modcod) {
switch (modcod) {
case 1: return { modulation: 'qpsk', speed: '1/4' }
case 2: return { modulation: 'qpsk', speed: '1/3' }
case 3: return { modulation: 'qpsk', speed: '2/5' }
case 4: return { modulation: 'qpsk', speed: '1/2' }
case 5: return { modulation: 'qpsk', speed: '3/5' }
case 6: return { modulation: 'qpsk', speed: '2/3' }
case 7: return { modulation: 'qpsk', speed: '3/4' }
case 8: return { modulation: 'qpsk', speed: '4/5' }
case 9: return { modulation: 'qpsk', speed: '5/6' }
case 10: return { modulation: 'qpsk', speed: '8/9' }
case 11: return { modulation: 'qpsk', speed: '9/10' }
case 12: return { modulation: '8psk', speed: '3/5' }
case 13: return { modulation: '8psk', speed: '2/3' }
case 14: return { modulation: '8psk', speed: '3/4' }
case 15: return { modulation: '8psk', speed: '5/6' }
case 16: return { modulation: '8psk', speed: '8/9' }
case 17: return { modulation: '8psk', speed: '9/10' }
case 18: return { modulation: '16apsk', speed: '2/3' }
case 19: return { modulation: '16apsk', speed: '3/4' }
case 20: return { modulation: '16apsk', speed: '4/5' }
case 21: return { modulation: '16apsk', speed: '5/6' }
case 22: return { modulation: '16apsk', speed: '8/9' }
case 23: return { modulation: '16apsk', speed: '9/10' }
case 24: return { modulation: '32apsk', speed: '3/4' }
case 25: return { modulation: '32apsk', speed: '4/5' }
case 26: return { modulation: '32apsk', speed: '5/6' }
case 27: return { modulation: '32apsk', speed: '8/9' }
case 28: return { modulation: '32apsk', speed: '9/10' }
}
return { modulation: 'qpsk', speed: '1/4' }
}
const app = new Vue({
el: '#app',
data: {
@@ -531,7 +561,7 @@
channelDelay: '?'
},
stat_device: { // температурные датчики
adrv: 0, zync: 0, fpga: 0
adrv: 0, zynq: 0, fpga: 0
},
param: {
@@ -540,44 +570,44 @@
txEn: false, // включен/выключен
modulatorMode: 'normal', // режим работы модулятора
autoStartTx: false, // было "режим работы передатчика"
inputData: 'eth', // входные данные: eth или test
isTestInputData: false, // входные данные: eth или test
},
tx: {
attenuation: -3.0, // ослабление
rolloff: 20,
cymRate: 100000,
centerFreq: 1200000.0,
attenuation: null, // ослабление
rolloff: null,
cymRate: null,
centerFreq: null,
},
dvbs2: {
mode: 'ccm',
frameSize: 'normal',
pilots: false,
mode: null, // ccm/acm
frameSize: null, // 'normal' / 'short'
// pilots: false,
// CCM
ccm_modulation: 'qpsk',
ccm_speed: '1/2',
ccm_modulation: null,
ccm_speed: null,
// ACM
acm_maxModulation: 'qpsk',
acm_maxSpeed: '1/2',
acm_minModulation: 'qpsk',
acm_minSpeed: '1/2',
acm_maxModulation: null,
acm_maxSpeed: null,
acm_minModulation: null,
acm_minSpeed: null,
snrReserve: 0.5,
servicePacketPeriod: 15,
snrReserve: null,
servicePacketPeriod: null,
},
// авто-регулировка мощности
acm: {
en: false,
maxAttenuation: -2.0,
minAttenuation: -3.0,
requiredSnr: -10,
maxAttenuation: null,
minAttenuation: null,
requiredSnr: null,
},
rx: {
gainMode: 'auto', // режим управления усилением
manualGain: 70, // усиление, только для ручного режима
gainMode: null, // 'auto'/'manual' режим управления усилением
manualGain: 0, // усиление, только для ручного режима
spectrumInversion: false,
rolloff: 20,
rolloff: 0,
cymRate: 100000,
centerFreq: 1200000.0,
},
@@ -605,7 +635,6 @@
},
serviceSettings: {
refClk10M: false, // подача опоры 10MHz
startDelay: 0, // задержка включения передачи
autoStart: false
},
},
@@ -674,7 +703,7 @@
this.stat_cinc.channelDelay = vals["mainState"]["cinc.channelDelay"]
this.stat_device.adrv = vals["mainState"]["device.adrv"]
this.stat_device.zync = vals["mainState"]["device.zync"]
this.stat_device.zynq = vals["mainState"]["device.zynq"]
this.stat_device.fpga = vals["mainState"]["device.fpga"]
this.testState = vals["mainState"]["testState"]
@@ -692,6 +721,61 @@
updateSettings(vals) {
this.settingFetchComplete = true
this.param.general.isCinC = vals["settings"]["general.isCinC"]
this.param.general.txEn = vals["settings"]["general.txEn"]
this.param.general.modulatorMode = vals["settings"]["general.modulatorMode"]
this.param.general.autoStartTx = vals["settings"]["general.autoStartTx"]
this.param.general.isTestInputData = vals["settings"]["general.isTestInputData"]
this.param.tx.attenuation = vals["settings"]["tx.attenuation"]
this.param.tx.rolloff = vals["settings"]["tx.rolloff"]
this.param.tx.cymRate = vals["settings"]["tx.cymRate"]
this.param.tx.centerFreq = vals["settings"]["tx.centerFreq"]
this.param.dvbs2.mode = (vals["settings"]["dvbs2.isAcm"] ? 'acm' : 'ccm')
this.param.dvbs2.frameSize = vals["settings"]["dvbs2.frameSize"]
// this.param.dvbs2.pilots = vals["settings"]["dvbs2.pilots"]
let m = extractModulationAndSpeedFromModcod(vals["settings"]["dvbs2.ccm_modcod"])
this.param.dvbs2.ccm_modulation = m.modulation
this.param.dvbs2.ccm_speed = m.speed
m = extractModulationAndSpeedFromModcod(vals["settings"]["dvbs2.acm_maxModcod"])
this.param.dvbs2.acm_maxModulation = m.modulation
this.param.dvbs2.acm_maxSpeed = m.speed
m = extractModulationAndSpeedFromModcod(vals["settings"]["dvbs2.acm_minModcod"])
this.param.dvbs2.acm_minModulation = m.modulation
this.param.dvbs2.acm_minSpeed = m.speed
this.param.dvbs2.snrReserve = vals["settings"]["dvbs2.snrReserve"]
this.param.dvbs2.servicePacketPeriod = vals["settings"]["dvbs2.servicePacketPeriod"]
this.param.acm.en = vals["settings"]["acm.en"]
this.param.acm.maxAttenuation = vals["settings"]["acm.maxAttenuation"]
this.param.acm.minAttenuation = vals["settings"]["acm.minAttenuation"]
this.param.acm.requiredSnr = vals["settings"]["acm.requiredSnr"]
this.param.rx.gainMode = vals["settings"]["rx.gainMode"]
this.param.rx.manualGain = vals["settings"]["rx.manualGain"]
this.param.rx.spectrumInversion = vals["settings"]["rx.spectrumInversion"]
this.param.rx.rolloff = vals["settings"]["rx.rolloff"]
this.param.rx.cymRate = vals["settings"]["rx.cymRate"]
this.param.rx.centerFreq = vals["settings"]["rx.centerFreq"]
this.param.cinc.mode = vals["settings"]["cinc.mode"]
this.param.cinc.searchBandwidth = vals["settings"]["cinc.searchBandwidth"]
this.param.cinc.position.station.latitude = vals["settings"]["cinc.position.station.latitude"]
this.param.cinc.position.station.longitude = vals["settings"]["cinc.position.station.longitude"]
this.param.cinc.position.satelliteLongitude = vals["settings"]["cinc.position.satelliteLongitude"]
this.param.cinc.delayMin = vals["settings"]["cinc.delayMin"]
this.param.cinc.delayMax = vals["settings"]["cinc.delayMax"]
this.param.buc.refClk10M = vals["settings"]["buc.refClk10M"]
this.param.buc.powering = vals["settings"]["buc.powering"]
this.param.lnb.refClk10M = vals["settings"]["lnb.refClk10M"]
this.param.lnb.powering = vals["settings"]["lnb.powering"]
this.param.serviceSettings.refClk10M = vals["settings"]["serviceSettings.refClk10M"]
this.param.serviceSettings.autoStart = vals["settings"]["serviceSettings.autoStart"]
}
},
mounted() {