добавление настроек сети для TDMA-терминала

This commit is contained in:
Vladislav Ostapov 2025-04-23 15:05:04 +03:00
parent be533d7521
commit 32983e97b3
3 changed files with 17 additions and 36 deletions

View File

@ -1,7 +1,7 @@
{
"modem_types": {
"tdma": {
"modem_name": "RCSM-101 TDMA",
"modem_name": "VSAT Модем",
"dangerousParamGroups": {
"buclnb": "Применение неправильных настроек может вывести из строя оборудование! Продолжить?",
"network": "Применение этих настроек может сделать модем недоступным! Продолжить?"
@ -22,7 +22,7 @@
"values": [{"label": "Нормальный", "value": "false"}, {"label": "Тест (CW)", "value": "true"}]
},
{"widget": "number-int", "label": "Центральная частота, КГц", "name": "txCentralFreq", "min": 900000, "step": 0.01, "v_show": "paramRxtx.txModulatorIsTest"},
{"widget": "number", "label": "Ослабление, дБ", "name": "txAttenuation", "max": 0, "min": -40, "step": 1}
{"widget": "number", "label": "Ослабление, дБ", "name": "txAttenuation", "max": 0, "min": -90, "step": 1}
]
},
{
@ -120,14 +120,9 @@
{
"widget": "settings-container",
"childs": [
{"widget": "text", "label": "Пароль для входа в сеть ЦЗС", "name": "netCesPassword"},
{"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": "ip-address", "label": "IP Интерфейса управления (/24)", "name": "netManagementIp"},
{"widget": "text", "label": "Имя веб-сервера", "name": "netServerName"}
]
}

View File

@ -297,7 +297,7 @@ public:
}
}));
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/buclnb", this->auth, http::auth::User::SUPERUSER, [this](const auto& req, auto& rep) {
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/buclnb", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
if (req.method != "POST") {
http::server::stockReply(http::server::bad_request, rep);
return;

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RCSM-101 TDMA</title>
<title>VSAT Модем</title>
<link rel="stylesheet" type="text/css" href="/style.css">
<link rel="stylesheet" type="text/css" href="/fields.css">
<style>
@ -43,7 +43,7 @@
<!-- Последнее обновление: {{ lastUpdateTime }}-->
<span :class="{ value_bad: initState !== 'Успешная инициализация системы' }">{{ initState }}</span>
<div class="tabs-header">
<span style="font-weight:bold">RCSM-101 TDMA</span>
<span style="font-weight:bold">VSAT Модем</span>
<a href="#monitoring" class="tabs-btn" @click="activeTab = 'monitoring'" :class="{ active: activeTab === 'monitoring' }">Мониторинг</a>
<a href="#setup" class="tabs-btn" @click="activeTab = 'setup'" :class="{ active: activeTab === 'setup' }">Настройки</a>
<a href="#admin" class="tabs-btn" @click="activeTab = 'admin'" :class="{ active: activeTab === 'admin' }">Администрирование</a>
@ -131,7 +131,7 @@
<span>Центральная частота, КГц</span>
<input type="text" v-model.lazy="paramRxtx.txCentralFreq" @change="e => paramRxtx.txCentralFreq = inputFormatNumber(inputFormatNumber(e.target.value, {min:900000,step:0.01}), {min:900000,step:0.01})"/>
</label>
<label><span>Ослабление, дБ</span><input type="number" v-model="paramRxtx.txAttenuation" min="-40" step="1"/></label>
<label><span>Ослабление, дБ</span><input type="number" v-model="paramRxtx.txAttenuation" min="-90" step="1"/></label>
</div>
<div class="settings-set-container">
<h3>Настройки приемника</h3>
@ -233,23 +233,15 @@
</div> <div class="tabs-body-item" v-if="activeTab === 'admin' && settingFetchComplete">
<h2>Настройки сети</h2>
<div class="settings-set-container">
<label>
<span>Пароль для входа в сеть ЦЗС</span>
<input v-model="paramNetwork.netCesPassword" type="text">
</label>
<h3>Настройки интерфейса управления</h3>
<label>
<span>Интерфейс управления (/24)</span>
<span>IP Интерфейса управления (/24)</span>
<input v-model="paramNetwork.netManagementIp" required type="text" pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$">
</label>
<label>
<span>Режим сети</span>
<select v-model="paramNetwork.netIsL2">
<option :value="false">Маршрутизатор</option>
<option :value="true">Коммутатор</option>
</select>
</label>
<label v-show="paramNetwork.netIsL2 === false">
<span>Интерфейс данных (/24)</span>
<input v-model="paramNetwork.netDataIp" required type="text" pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$">
</label>
<label><span>MTU интерфейса данных</span><input type="number" v-model="paramNetwork.netDataMtu" min="1500" max="2000" step="1"/></label>
<label>
<span>Имя веб-сервера</span>
<input v-model="paramNetwork.netServerName" type="text">
@ -342,7 +334,7 @@
txEn: false,
txModulatorIsTest: false,
txCentralFreq: 0,
txAttenuation: -40,
txAttenuation: -90,
rxAgcEn: true,
rxManualGain: -40,
rxSpectrumInversion: false,
@ -366,10 +358,8 @@
dpdiDelay: 0,
},
paramNetwork: {
netCesPassword: null,
netManagementIp: null,
netIsL2: false,
netDataIp: null,
netDataMtu: 1500,
netServerName: null,
},
// ========== include end from 'common/all-params-data.js.j2'
@ -547,10 +537,8 @@
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
let query = {
"netCesPassword": this.paramNetwork.netCesPassword,
"netManagementIp": this.paramNetwork.netManagementIp,
"netIsL2": this.paramNetwork.netIsL2,
"netDataIp": this.paramNetwork.netDataIp,
"netDataMtu": this.paramNetwork.netDataMtu,
"netServerName": this.paramNetwork.netServerName,
}
@ -593,10 +581,8 @@
},
updateNetworkSettings(vals) {
this.submitStatus.network = false
this.paramNetwork.netCesPassword = vals["settings"]["netCesPassword"]
this.paramNetwork.netManagementIp = vals["settings"]["netManagementIp"]
this.paramNetwork.netIsL2 = vals["settings"]["netIsL2"]
this.paramNetwork.netDataIp = vals["settings"]["netDataIp"]
this.paramNetwork.netDataMtu = vals["settings"]["netDataMtu"]
this.paramNetwork.netServerName = vals["settings"]["netServerName"]
},
// ========== include end from 'common/all-params-methods.js.j2'