работающая генерация настроек

This commit is contained in:
2025-01-10 18:10:14 +03:00
parent 44aec3a114
commit a7242c186d
12 changed files with 570 additions and 450 deletions

View File

@@ -1,310 +1,9 @@
{% from 'common/widgets.j2' import build_widget %}
<div class="tabs-body-item" v-if="activeTab === 'setup' && settingFetchComplete">
<h2>Настройки приема/передачи</h2>
<div class="settings-set-container">
<label>
<span>Режим работы</span>
<select v-model="param.general.isCinC">
<option :value="false">SCPC</option>
<option :value="true">CinC</option>
</select>
</label>
</div>
<div class="tabs-item-flex-container">
<div class="settings-set-container">
<h3>Настройки передатчика</h3>
<label>
<span>Включить передатчик</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.general.txEn" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Автоматический запуск передатчика</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.general.autoStartTx" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Режим работы модулятора</span>
<select v-model="param.general.modulatorMode">
<option value="normal">Нормальный</option>
<option value="test">Тест (CW)</option>
</select>
</label>
<label>
<span>Входные данные</span>
<select v-model="param.general.isTestInputData">
<option :value="false">Ethernet</option>
<option :value="true">Тест (CW)</option>
</select>
</label>
<h3>Параметры передачи</h3>
<label>
<span>Центральная частота, КГц</span>
<input v-model="param.tx.centerFreq" type="number" step="0.01"/>
</label>
<label>
<span>Символьная скорость, Бод</span>
<input v-model="param.tx.cymRate" type="number"/>
</label>
<label>
<span>Roll-off</span>
<select v-model="param.tx.rolloff">
<option :value="5">0.05</option>
<option :value="10">0.10</option>
<option :value="15">0.15</option>
<option :value="20">0.20</option>
<option :value="25">0.25</option>
</select>
</label>
<label>
<span>Ослабление, дБ</span>
<input v-model="param.tx.attenuation" type="number" step="0.01"/>
</label>
</div>
<div class="settings-set-container">
<h3>Режим работы DVB-S2</h3>
<label>
<span>Период служебных пакетов, сек</span>
<input v-model="param.dvbs2.servicePacketPeriod" type="number">
</label>
<label>
<span>Режим</span>
<select v-model="param.dvbs2.mode">
<option value="ccm">CCM</option>
<option value="acm">ACM</option>
</select>
</label>
<label>
<span>Размер кадра</span>
<select v-model="param.dvbs2.frameSizeNormal">
<option :value="true">normal</option>
<option :value="false">short</option>
</select>
</label>
<!-- <label>-->
<!-- <span>Пилот-символы</span>-->
<!-- <select v-model="param.dvbs2.isPilots">-->
<!-- <option :value="true">pilots</option>-->
<!-- <option :value="false">no pilots</option>-->
<!-- </select>-->
<!-- </label>-->
<label v-show="param.dvbs2.mode === 'ccm'">
<span>Модуляция</span>
<select v-model="param.dvbs2.ccm_modulation" @change="param.dvbs2.ccm_speed = correctModcodSpeed(param.dvbs2.ccm_modulation, param.dvbs2.ccm_speed)">
<option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option>
<option value="32apsk">32APSK</option>
</select>
</label>
<label v-show="param.dvbs2.mode === 'ccm'">
<span>Скорость кода</span>
<select v-model="param.dvbs2.ccm_speed">
<option v-for="speed in getAvailableModcods(param.dvbs2.ccm_modulation)" v-bind:value="speed">{{ speed }}</option>
</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" @change="param.dvbs2.acm_maxSpeed = correctModcodSpeed(param.dvbs2.acm_maxModulation, param.dvbs2.acm_maxSpeed)">
<option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option>
<option value="32apsk">32APSK</option>
</select>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Скорость кода (макс. режим)</span>
<select v-model="param.dvbs2.acm_maxSpeed">
<option v-for="speed in getAvailableModcods(param.dvbs2.acm_maxModulation)" v-bind:value="speed">{{ speed }}</option>
</select>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Модуляция (мин. режим)</span>
<select v-model="param.dvbs2.acm_minModulation" @change="param.dvbs2.acm_minSpeed = correctModcodSpeed(param.dvbs2.acm_minModulation, param.dvbs2.acm_minSpeed)">
<option value="qpsk">QPSK</option>
<option value="8psk">8PSK</option>
<option value="16apsk">16APSK</option>
<option value="32apsk">32APSK</option>
</select>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Скорость кода (мин. режим)</span>
<select v-model="param.dvbs2.acm_minSpeed">
<option v-for="speed in getAvailableModcods(param.dvbs2.acm_minModulation)" v-bind:value="speed">{{ speed }}</option>
</select>
</label>
<label v-show="param.dvbs2.mode === 'acm'">
<span>Запас ОСШ</span>
<input v-model="param.dvbs2.snrReserve" type="number" step="0.01">
</label>
<h3>Авто-регулировка мощности</h3>
<label>
<span>Авто-регулировка мощности</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.acm.en" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Максимальное ослабление</span>
<input v-model="param.acm.maxAttenuation" type="number" step="0.01"/>
</label>
<label>
<span>Минимальное ослабление</span>
<input v-model="param.acm.minAttenuation" type="number" step="0.01"/>
</label>
<label>
<span>Требуемое ОСШ</span>
<input v-model="param.acm.requiredSnr" type="number" step="0.01"/>
</label>
</div>
<div class="settings-set-container">
<h3>Настройка приемника</h3>
<label>
<span>Режим управления усилением</span>
<select v-model="param.rx.gainMode">
<option value="auto">АРУ</option>
<option value="manual">РРУ</option>
</select>
</label>
<label v-show="param.rx.gainMode === 'manual'">
<span>Усиление, dB</span>
<input v-model="param.rx.manualGain" type="number"/>
</label>
<label>
<span>Инверсия спектра</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.rx.spectrumInversion" />
<span class="slider"></span>
</span>
</label>
<label>
<span>Центральная частота, кГц</span>
<input v-model="param.rx.centerFreq" type="number" step="0.01"/>
</label>
<label>
<span>Символьная скорость, Бод</span>
<input v-model="param.rx.cymRate" type="number"/>
</label>
<label>
<span>Roll-off</span>
<select v-model="param.rx.rolloff">
<option :value="5">0.05</option>
<option :value="10">0.10</option>
<option :value="15">0.15</option>
<option :value="20">0.20</option>
<option :value="25">0.25</option>
</select>
</label>
</div>
</div>
<button class="action-button" @click="settingsSubmitRxTx()">Сохранить <span class="submit-spinner" v-show="submitStatus.rxTx"></span></button>
<h2 v-show="param.general.isCinC === true">Настройки режима CinC</h2>
<div v-show="param.general.isCinC === true" 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" type="number" step="0.000001"/>
</label>
<label v-show="param.cinc.mode === 'positional'">
<span>Долгота станции</span>
<input v-model="param.cinc.position.station.longitude" type="number" step="0.000001"/>
</label>
<label v-show="param.cinc.mode === 'positional'">
<span>Подспутниковая точка</span>
<input v-model="param.cinc.position.satelliteLongitude" type="number" step="0.000001"/>
</label>
<h3 v-show="param.cinc.mode === 'delay'">Задержка до спутника</h3>
<label v-show="param.cinc.mode === 'delay'">
<span>от, мс</span>
<input v-model="param.cinc.delayMin" type="number"/>
</label>
<label v-show="param.cinc.mode === 'delay'">
<span>до, мс</span>
<input v-model="param.cinc.delayMax" type="number"/>
</label>
</div>
<button class="action-button" v-show="param.general.isCinC" @click="settingsSubmitCinC()" type="submit">Сохранить <span class="submit-spinner" v-show="submitStatus.cinc"></span></button>
<h2>Настройки питания и опорного генератора</h2>
<div class="tabs-item-flex-container">
<div class="settings-set-container">
<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>
</div>
<div class="settings-set-container">
<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>
</div>
<div class="settings-set-container">
<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>Автозапуск BUC и LNB при включении</span>
<span class="toggle-input">
<input type="checkbox" v-model="param.serviceSettings.autoStart" />
<span class="slider"></span>
</span>
</label>
</div>
</div>
{% for cat in ['rxtx', 'cinc', 'buclnb'] %}
{% if cat in params %}
{% for w in params[cat] %}{{ build_widget(cat, w) }}{% endfor %}
<button class="action-button" @click="settingsSubmitBucLnb()">Сохранить <span class="submit-spinner" v-show="submitStatus.bucLnb"></span></button>
{% endif %}
{% endfor %}
</div>