From 0a3a282d0fba2968c88c986e06b38d4e1973865d Mon Sep 17 00:00:00 2001 From: Vladislav Ostapov Date: Mon, 23 Dec 2024 09:40:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=BA=D0=BE=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B2=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20front-generator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front-generator/render-params.json | 33 ++++- front-generator/render.py | 3 +- front-generator/template/main.html | 181 +-------------------------- front-generator/template/vue-data.js | 181 +++++++++++++++++++++++++++ 4 files changed, 214 insertions(+), 184 deletions(-) create mode 100644 front-generator/template/vue-data.js diff --git a/front-generator/render-params.json b/front-generator/render-params.json index 8288557..84c3c95 100644 --- a/front-generator/render-params.json +++ b/front-generator/render-params.json @@ -1,13 +1,32 @@ { "monitoring-params": {}, "params": { - "buklnb": { - "" + "rxtx": { + "rx.en": { + "model": "w:switch", + "label": "Включить передатчик" + }, + "rx.isTestInputData": { + "model": "w:select", + "label": "Включить передатчик", + "items": [ + {"value": "false", "label": "Ethernet"}, + {"value": "true", "label": "Тест (CW)"} + ] + }, + "rx.freqKhz": { + "model": "w:number", + "number.type": "int", + "number.step": 1, + "number.min": 500000, + "number.max": 15000000 + } } }, "modem_types": { "tdma": { "modem_name": "RCSM-101 TDMA", + "groupsList": ["rxtx"], "tabs": [ { "name": "monitoring", @@ -15,7 +34,14 @@ }, { "name": "setup", - "desc": "Настройки" + "desc": "Настройки", + "widgets": [ + {"group": "html", "name": "h3", "payload": "Настройки передатчика"}, + {"group": "rxtx", "name": "rx.en"}, + {"group": "rxtx", "name": "rx.isTestInputData"}, + {"group": "html", "name": "h3", "payload": "Параметры передачи"}, + {"group": "rxtx", "name": "rx.freqKhz"} + ] }, { "name": "admin", @@ -25,6 +51,7 @@ }, "scpc": { "modem_name": "RCSM-101", + "groupsList": ["rxtx"], "tabs": [ { "name": "monitoring", diff --git a/front-generator/render.py b/front-generator/render.py index 1e2b7aa..5dbef8f 100644 --- a/front-generator/render.py +++ b/front-generator/render.py @@ -15,7 +15,8 @@ def build_modem_env(modem): return { "modem_name": mc['modem_name'], "header_tabs": mc['tabs'], - "js_tabs_array": str([t['name'] for t in mc['tabs']]) + "js_tabs_array": str([t['name'] for t in mc['tabs']]), + "params": {"groupsList": mc["groupsList"]} | config["params"] } diff --git a/front-generator/template/main.html b/front-generator/template/main.html index b255ee9..d61f90f 100644 --- a/front-generator/template/main.html +++ b/front-generator/template/main.html @@ -648,186 +648,7 @@ const app = new Vue({ el: '#app', data: { - isCinC: false, - - // false - означает что статистика не отправляется, true - отправляется - submitStatus: { - rxTx: false, - cinc: false, - bucLnb: false, - qos: false, - network: false, - debugSend: false, - tcpAccel: false, - firmwareUpload: false, - firmwareUpgrade: false, - // когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю - modemReboot: null - }, - - stat_rx: { - // индикаторы - state: '?', // общее состояние - sym_sync_lock: '?', // захват символьной - freq_search_lock: '?', // Захват поиска по частоте - afc_lock: '?', // захват ФАПЧ - pkt_sync: '?', // захват пакетной синхронизации - - // куча других параметров, идет в том же порядке, что и в таблице - snr: '?', rssi: '?', - modcod: '?', frameSizeNormal: '?', - isPilots: '?', - symError: '?', - freqErr: '?', freqErrAcc: '?', - inputSignalLevel: '?', - pllError: '?', - speedOnRxKbit: '?', - speedOnIifKbit: '?', - - // статистика пакетов - packetsOk: '?', packetsBad: '?', packetsDummy: '?', - }, - stat_tx: { - // состояние - state: '?', - - // прочие поля - snr: '?', modcod: '?', frameSizeNormal: '?', isPilots: '?', speedOnTxKbit: '?', speedOnIifKbit: '?', - }, - stat_cinc: { - occ: '?', - correlator: null, - correlatorFails: '?', - freqErr: '?', freqErrAcc: '?', - channelDelay: '?' - }, - stat_device: { // температурные датчики - adrv: 0, zynq: 0, fpga: 0 - }, - - param: { - general: { - isCinC: Boolean, - txEn: Boolean, // включен/выключен - modulatorMode: 'normal', // режим работы модулятора - autoStartTx: Boolean, // было "режим работы передатчика" - isTestInputData: Boolean, // входные данные: eth или test - }, - tx: { - attenuation: Number, // ослабление - rolloff: Number, - cymRate: Number, - centerFreq: Number, - }, - dvbs2: { - mode: null, // ccm/acm - frameSizeNormal: null, // 'normal' / 'short' - // isPilots: false, - - // CCM - ccm_modulation: null, - ccm_speed: null, - - // ACM - acm_maxModulation: null, - acm_maxSpeed: null, - acm_minModulation: null, - acm_minSpeed: null, - - snrReserve: null, - servicePacketPeriod: null, - }, - // авто-регулировка мощности - acm: { - en: false, - maxAttenuation: null, - minAttenuation: null, - requiredSnr: null, - }, - rx: { - gainMode: null, // 'auto'/'manual' режим управления усилением - manualGain: 0, // усиление, только для ручного режима - spectrumInversion: false, - rolloff: 0, - cymRate: 100000, - centerFreq: 1200000.0, - }, - - 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 - autoStart: false - }, - - network: { - managementIp: '', // 0.0.0.0/24 - managementGateway: '', - mode: String, // l2 | l3 - dataIp: '', // - dataMtu: 1500 - }, - debugSend: { - en: false, - receiverIp: '0.0.0.0', // 0.0.0.0 - portCinC: 0, - portData: 0, - timeout: 0 - }, - - qos: { - en: false, - rt1: [], - rt2: [], - rt3: [], - cd: [], - }, - - tcpAccel: { - en: false, - maxConnections: 128 - }, - }, - - uploadFw: { - progress: null, - filename: null, - sha256: null - }, - - // эти "настройки" - read only - about: { - firmwareVersion: '?', - modemUid: '?', - modemSn: '?', - macManagement: '?', - macData: '?', - }, - - testState: false, - initState: '', - lastUpdateTime: new Date(), - activeTab: getCurrentTab(), - settingFetchComplete: false, +{% endraw %}{% include 'vue-data.js' %}{% raw %} }, methods: { getAvailableModcods(modulation) { diff --git a/front-generator/template/vue-data.js b/front-generator/template/vue-data.js new file mode 100644 index 0000000..3549ab0 --- /dev/null +++ b/front-generator/template/vue-data.js @@ -0,0 +1,181 @@ + isCinC: false, + + // false - означает что статистика не отправляется, true - отправляется + submitStatus: { + {% for pg in params.groupsList %} + {{ pg }}: false, + {% endfor %} + firmwareUpload: false, + firmwareUpgrade: false, + // когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю + modemReboot: null + }, + + stat: { + + } + + stat_rx: { + // индикаторы + state: '?', // общее состояние + sym_sync_lock: '?', // захват символьной + freq_search_lock: '?', // Захват поиска по частоте + afc_lock: '?', // захват ФАПЧ + pkt_sync: '?', // захват пакетной синхронизации + + // куча других параметров, идет в том же порядке, что и в таблице + snr: '?', rssi: '?', + modcod: '?', frameSizeNormal: '?', + isPilots: '?', + symError: '?', + freqErr: '?', freqErrAcc: '?', + inputSignalLevel: '?', + pllError: '?', + speedOnRxKbit: '?', + speedOnIifKbit: '?', + + // статистика пакетов + packetsOk: '?', packetsBad: '?', packetsDummy: '?', + }, + stat_tx: { + // состояние + state: '?', + + // прочие поля + snr: '?', modcod: '?', frameSizeNormal: '?', isPilots: '?', speedOnTxKbit: '?', speedOnIifKbit: '?', + }, + stat_cinc: { + occ: '?', + correlator: null, + correlatorFails: '?', + freqErr: '?', freqErrAcc: '?', + channelDelay: '?' + }, + stat_device: { // температурные датчики + adrv: 0, zynq: 0, fpga: 0 + }, + + param: { + general: { + isCinC: Boolean, + txEn: Boolean, // включен/выключен + modulatorMode: 'normal', // режим работы модулятора + autoStartTx: Boolean, // было "режим работы передатчика" + isTestInputData: Boolean, // входные данные: eth или test + }, + tx: { + attenuation: Number, // ослабление + rolloff: Number, + cymRate: Number, + centerFreq: Number, + }, + dvbs2: { + mode: null, // ccm/acm + frameSizeNormal: null, // 'normal' / 'short' + // isPilots: false, + + // CCM + ccm_modulation: null, + ccm_speed: null, + + // ACM + acm_maxModulation: null, + acm_maxSpeed: null, + acm_minModulation: null, + acm_minSpeed: null, + + snrReserve: null, + servicePacketPeriod: null, + }, + // авто-регулировка мощности + acm: { + en: false, + maxAttenuation: null, + minAttenuation: null, + requiredSnr: null, + }, + rx: { + gainMode: null, // 'auto'/'manual' режим управления усилением + manualGain: 0, // усиление, только для ручного режима + spectrumInversion: false, + rolloff: 0, + cymRate: 100000, + centerFreq: 1200000.0, + }, + + 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 + autoStart: false + }, + + network: { + managementIp: '', // 0.0.0.0/24 + managementGateway: '', + mode: String, // l2 | l3 + dataIp: '', // + dataMtu: 1500 + }, + debugSend: { + en: false, + receiverIp: '0.0.0.0', // 0.0.0.0 + portCinC: 0, + portData: 0, + timeout: 0 + }, + + qos: { + en: false, + rt1: [], + rt2: [], + rt3: [], + cd: [], + }, + + tcpAccel: { + en: false, + maxConnections: 128 + }, + }, + + uploadFw: { + progress: null, + filename: null, + sha256: null + }, + + // эти "настройки" - read only + about: { + firmwareVersion: '?', + modemUid: '?', + modemSn: '?', + macManagement: '?', + macData: '?', + }, + + testState: false, + initState: '', + lastUpdateTime: new Date(), + activeTab: getCurrentTab(), + settingFetchComplete: false,