From 1e185a987d7596ad40cd51689814ced2dfce64ee Mon Sep 17 00:00:00 2001 From: Vladislav Ostapov Date: Thu, 5 Jun 2025 10:29:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=81=D0=BC=D0=B5=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=20=D0=B2=D0=B5=D0=B1=D0=BA=D1=83=20=D0=A8=D0=9F=D0=A1=20=D0=BD?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B8=20=D1=81=D0=B5?= =?UTF-8?q?=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front-generator/render-params.json | 27 ++++++---- src/api-driver/stricts-enable.h | 2 +- static/main-shps.html | 80 ++++++++++++++++++++++-------- 3 files changed, 79 insertions(+), 30 deletions(-) diff --git a/front-generator/render-params.json b/front-generator/render-params.json index 5ab8426..0eb6bbb 100644 --- a/front-generator/render-params.json +++ b/front-generator/render-params.json @@ -375,10 +375,6 @@ "values": [{"label": "0.02", "value": "2"}, {"label": "0.05", "value": "5"}, {"label": "0.10", "value": "10"}, {"label": "0.15", "value": "15"}, {"label": "0.20", "value": "20"}, {"label": "0.25", "value": "25"}] }, {"widget": "number", "label": "Коэф. расширения", "name": "txSpreadCoef", "max": 1000, "min": -1000, "step": 0.01}, - { - "widget": "select", "label": "Номер последовательности Голда", "name": "txGoldan", - "values": [{"label": "0", "value": "0"}, {"label": "1", "value": "1"}] - }, {"widget": "number", "label": "Ослабление, дБ", "name": "txAttenuation", "max": 0, "min": -40, "step": 0.25} ] }, @@ -399,11 +395,7 @@ "widget": "select", "label": "Roll-off", "name": "rxRolloff", "values": [{"label": "0.02", "value": "2"}, {"label": "0.05", "value": "5"}, {"label": "0.10", "value": "10"}, {"label": "0.15", "value": "15"}, {"label": "0.20", "value": "20"}, {"label": "0.25", "value": "25"}] }, - {"widget": "number", "label": "Коэф. расширения", "name": "rxSpreadCoef", "max": 1000, "min": -1000, "step": 0.01}, - { - "widget": "select", "label": "Номер последовательности Голда", "name": "rxGoldan", - "values": [{"label": "0", "value": "0"}, {"label": "1", "value": "1"}] - } + {"widget": "number", "label": "Коэф. расширения", "name": "rxSpreadCoef", "max": 1000, "min": -1000, "step": 0.01} ] } ] @@ -455,6 +447,23 @@ } ] } + ], + "network": [ + {"widget": "h2", "label": "Настройки сети"}, + { + "widget": "settings-container", + "childs": [ + {"widget": "h3", "label": "Настройки интерфейса управления"}, + {"widget": "ip-address", "label": "Интерфейс управления (/24)", "name": "netManagementIp"}, + { + "widget": "select", "label": "Режим сети", "name": "netIsL2", + "values": [{"label": "Маршрутизатор", "value": "false"}, {"label": "Коммутатор", "value": "true"}] + }, + {"widget": "ip-address", "label": "Интерфейс данных (/24)", "name": "netDataIp", "v_show": "paramNetwork.netIsL2 === false"}, + {"widget": "number", "label": "MTU интерфейса данных", "name": "netDataMtu", "min": 1500, "step": 1, "max": 2000}, + {"widget": "text", "label": "Имя веб-сервера", "name": "netServerName"} + ] + } ] }, "tabs": [ diff --git a/src/api-driver/stricts-enable.h b/src/api-driver/stricts-enable.h index 28f0bc1..e52110d 100644 --- a/src/api-driver/stricts-enable.h +++ b/src/api-driver/stricts-enable.h @@ -10,7 +10,7 @@ #define API_STRUCT_ACM_ENABLE #endif -#if defined(MODEM_IS_SCPC) || defined(MODEM_IS_TDMA) +#if defined(MODEM_IS_SCPC) || defined(MODEM_IS_TDMA) || defined(MODEM_IS_SHPS) #define API_OBJECT_NETWORK_SETTINGS_ENABLE #endif diff --git a/static/main-shps.html b/static/main-shps.html index 4cdd3af..a849517 100644 --- a/static/main-shps.html +++ b/static/main-shps.html @@ -149,13 +149,6 @@ -
@@ -189,13 +182,6 @@ -
@@ -246,6 +232,31 @@
+

Настройки сети

+
+

Настройки интерфейса управления

+ + + + + +
+

Система

@@ -316,6 +327,7 @@ submitStatus: { rxtx: false, buclnb: false, + network: false, firmwareUpload: false, firmwareUpgrade: false, // когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю @@ -332,7 +344,6 @@ txBaudrate: 200000, txRolloff: 2, txSpreadCoef: -1000, - txGoldan: 0, txAttenuation: -40, rxAgcEn: false, rxManualGain: -40, @@ -341,7 +352,6 @@ rxBaudrate: 200000, rxRolloff: 2, rxSpreadCoef: -1000, - rxGoldan: 0, }, paramBuclnb: { bucRefClk10M: false, @@ -351,6 +361,13 @@ srvRefClk10M: false, bucLnbAutoStart: false, }, + paramNetwork: { + netManagementIp: null, + netIsL2: false, + netDataIp: null, + netDataMtu: 1500, + netServerName: null, + }, // ========== include end from 'common/all-params-data.js.j2' // ========== include from 'common/monitoring-data.js.j2' @@ -473,7 +490,6 @@ "txBaudrate": this.paramRxtx.txBaudrate, "txRolloff": this.paramRxtx.txRolloff, "txSpreadCoef": this.paramRxtx.txSpreadCoef, - "txGoldan": this.paramRxtx.txGoldan, "txAttenuation": this.paramRxtx.txAttenuation, "rxAgcEn": this.paramRxtx.rxAgcEn, "rxManualGain": this.paramRxtx.rxManualGain, @@ -482,7 +498,6 @@ "rxBaudrate": this.paramRxtx.rxBaudrate, "rxRolloff": this.paramRxtx.rxRolloff, "rxSpreadCoef": this.paramRxtx.rxSpreadCoef, - "rxGoldan": this.paramRxtx.rxGoldan, } this.submitStatus.rxtx = true @@ -510,6 +525,24 @@ .catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) }) .finally(() => { this.submitStatus.buclnb = false }) }, + settingsSubmitNetwork() { + if (this.submitStatus.network) { return } + { if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return } + + let query = { + "netManagementIp": this.paramNetwork.netManagementIp, + "netIsL2": this.paramNetwork.netIsL2, + "netDataIp": this.paramNetwork.netDataIp, + "netDataMtu": this.paramNetwork.netDataMtu, + "netServerName": this.paramNetwork.netServerName, + } + + this.submitStatus.network = true + fetch('/api/set/network', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(query), credentials: 'same-origin' }) + .then(async (resp) => { let vals = await resp.json(); if (vals['status'] !== 'ok') { throw new Error(vals['error'] ? vals['error'] : "Server returns undefined error") } this.updateNetworkSettings(vals) }) + .catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) }) + .finally(() => { this.submitStatus.network = false }) + }, updateRxtxSettings(vals) { this.submitStatus.rxtx = false @@ -521,7 +554,6 @@ this.paramRxtx.txBaudrate = vals["settings"]["rxtx"]["txBaudrate"] this.paramRxtx.txRolloff = vals["settings"]["rxtx"]["txRolloff"] this.paramRxtx.txSpreadCoef = vals["settings"]["rxtx"]["txSpreadCoef"] - this.paramRxtx.txGoldan = vals["settings"]["rxtx"]["txGoldan"] this.paramRxtx.txAttenuation = vals["settings"]["rxtx"]["txAttenuation"] this.paramRxtx.rxAgcEn = vals["settings"]["rxtx"]["rxAgcEn"] this.paramRxtx.rxManualGain = vals["settings"]["rxtx"]["rxManualGain"] @@ -530,7 +562,6 @@ this.paramRxtx.rxBaudrate = vals["settings"]["rxtx"]["rxBaudrate"] this.paramRxtx.rxRolloff = vals["settings"]["rxtx"]["rxRolloff"] this.paramRxtx.rxSpreadCoef = vals["settings"]["rxtx"]["rxSpreadCoef"] - this.paramRxtx.rxGoldan = vals["settings"]["rxtx"]["rxGoldan"] }, updateBuclnbSettings(vals) { this.submitStatus.buclnb = false @@ -541,6 +572,14 @@ this.paramBuclnb.srvRefClk10M = vals["settings"]["buclnb"]["srvRefClk10M"] this.paramBuclnb.bucLnbAutoStart = vals["settings"]["buclnb"]["bucLnbAutoStart"] }, + updateNetworkSettings(vals) { + this.submitStatus.network = false + this.paramNetwork.netManagementIp = vals["settings"]["network"]["netManagementIp"] + this.paramNetwork.netIsL2 = vals["settings"]["network"]["netIsL2"] + this.paramNetwork.netDataIp = vals["settings"]["network"]["netDataIp"] + this.paramNetwork.netDataMtu = vals["settings"]["network"]["netDataMtu"] + this.paramNetwork.netServerName = vals["settings"]["network"]["netServerName"] + }, // ========== include end from 'common/all-params-methods.js.j2' // ========== include from 'common/monitoring-methods.js.j2' @@ -705,6 +744,7 @@ this.settingFetchComplete = true this.updateRxtxSettings(vals) this.updateBuclnbSettings(vals) + this.updateNetworkSettings(vals) if ('netServerName' in vals['settings']) { document.getElementsByTagName('title')[0].innerText = vals['settings']['netServerName']