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']