Compare commits
10 Commits
32720ca365
...
master
Author | SHA1 | Date | |
---|---|---|---|
89004bcf31 | |||
b580ac6b37 | |||
7cd096a269 | |||
beca00ff70 | |||
ed6694b99d | |||
305a8c54fa | |||
297e681b75 | |||
33bbdafc3d | |||
bfcdc88da9 | |||
760a6858ee |
@@ -8,9 +8,9 @@ test for build:
|
|||||||
- cpp-test-universal
|
- cpp-test-universal
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
variables:
|
||||||
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
script:
|
script:
|
||||||
- git submodule init
|
|
||||||
- git submodule update
|
|
||||||
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=TDMA -B cmake-build-debug-tdma
|
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=TDMA -B cmake-build-debug-tdma
|
||||||
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=SCPC -B cmake-build-debug-scpc
|
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=SCPC -B cmake-build-debug-scpc
|
||||||
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=SHPS -B cmake-build-debug-shps
|
- cmake -DCMAKE_BUILD_TYPE=Debug -DMODEM_TYPE=SHPS -B cmake-build-debug-shps
|
||||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -1,3 +1,9 @@
|
|||||||
[submodule "dependencies/control_system_client"]
|
[submodule "dependencies/control_system_client"]
|
||||||
path = dependencies/control_system_client
|
path = dependencies/control_system_client
|
||||||
url = http://gitlab.devrss.vg/mf-tdma/protocol_processing/control_system_client.git
|
url = http://gitlab.devrss.vg/mf-tdma/protocol_processing/control_system_client.git
|
||||||
|
[submodule "dependencies/control_system_client_tdma"]
|
||||||
|
path = dependencies/control_system_client_tdma
|
||||||
|
url = http://gitlab.devrss.vg/mf-tdma/protocol_processing/control_system_client.git
|
||||||
|
[submodule "dependencies/control_system_client_shps"]
|
||||||
|
path = dependencies/control_system_client_shps
|
||||||
|
url = http://gitlab.devrss.vg/mf-tdma/protocol_processing/control_system_client.git
|
||||||
|
@@ -18,12 +18,15 @@ endif()
|
|||||||
if("${MODEM_TYPE}" STREQUAL "SCPC")
|
if("${MODEM_TYPE}" STREQUAL "SCPC")
|
||||||
add_definitions(-DMODEM_IS_SCPC)
|
add_definitions(-DMODEM_IS_SCPC)
|
||||||
message(STATUS "Selected SCPC modem")
|
message(STATUS "Selected SCPC modem")
|
||||||
|
add_subdirectory(dependencies/control_system_client) # подключение правильного control system client SCPC, ветка main
|
||||||
elseif ("${MODEM_TYPE}" STREQUAL "TDMA")
|
elseif ("${MODEM_TYPE}" STREQUAL "TDMA")
|
||||||
add_definitions(-DMODEM_IS_TDMA)
|
add_definitions(-DMODEM_IS_TDMA)
|
||||||
message(STATUS "Selected TDMA modem")
|
message(STATUS "Selected TDMA modem")
|
||||||
|
add_subdirectory(dependencies/control_system_client_tdma) # подключение правильного control system client TDMA, ветка terminal-tdma
|
||||||
elseif ("${MODEM_TYPE}" STREQUAL "SHPS")
|
elseif ("${MODEM_TYPE}" STREQUAL "SHPS")
|
||||||
add_definitions(-DMODEM_IS_SHPS)
|
add_definitions(-DMODEM_IS_SHPS)
|
||||||
message(STATUS "Selected SHPS modem")
|
message(STATUS "Selected SHPS modem")
|
||||||
|
add_subdirectory(dependencies/control_system_client_shps) # подключение правильного control system client SHPS, ветка shps
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "You must set `MODEM_TYPE` \"SCPC\" or \"TDMA\" or \"SHPS\"!")
|
message(FATAL_ERROR "You must set `MODEM_TYPE` \"SCPC\" or \"TDMA\" or \"SHPS\"!")
|
||||||
endif()
|
endif()
|
||||||
@@ -52,7 +55,6 @@ add_compile_options(-Wall -Wextra -Wsign-conversion -DPROJECT_GIT_REVISION="${PR
|
|||||||
# максимальный размер тела запроса 200mb
|
# максимальный размер тела запроса 200mb
|
||||||
add_definitions(-DHTTP_MAX_PAYLOAD=200000000)
|
add_definitions(-DHTTP_MAX_PAYLOAD=200000000)
|
||||||
|
|
||||||
add_subdirectory(dependencies/control_system_client)
|
|
||||||
|
|
||||||
include_directories(src/)
|
include_directories(src/)
|
||||||
|
|
||||||
|
2
dependencies/control_system_client
vendored
2
dependencies/control_system_client
vendored
Submodule dependencies/control_system_client updated: 92fcb8ab67...76d6dcdb08
1
dependencies/control_system_client_shps
vendored
Submodule
1
dependencies/control_system_client_shps
vendored
Submodule
Submodule dependencies/control_system_client_shps added at 9241716931
1
dependencies/control_system_client_tdma
vendored
Submodule
1
dependencies/control_system_client_tdma
vendored
Submodule
Submodule dependencies/control_system_client_tdma added at 78694fd775
@@ -65,7 +65,8 @@
|
|||||||
{"label": "Выкл", "value": "0"},
|
{"label": "Выкл", "value": "0"},
|
||||||
{"label": "24В", "value": "24"}
|
{"label": "24В", "value": "24"}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
{"widget": "number-int", "label": "Частота LO, кГц", "name": "bucLoKhz", "min": 0, "max": 40000000, "step": 1}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -81,7 +82,8 @@
|
|||||||
{"label": "18В", "value": "18"},
|
{"label": "18В", "value": "18"},
|
||||||
{"label": "24В", "value": "24"}
|
{"label": "24В", "value": "24"}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
{"widget": "number-int", "label": "Частота LO, кГц", "name": "lnbLoKhz", "min": 0, "max": 40000000, "step": 1}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -101,17 +103,17 @@
|
|||||||
"widget": "settings-container",
|
"widget": "settings-container",
|
||||||
"childs": [
|
"childs": [
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Метод расчета задержки", "name": "dpdiIsPositional",
|
"widget": "select", "label": "Метод расчета задержки", "name": "isPositional",
|
||||||
"values": [
|
"values": [
|
||||||
{"label": "Позиционированием", "value": "true"},
|
{"label": "Позиционированием", "value": "true"},
|
||||||
{"label": "Окном задержки", "value": "false"}
|
{"label": "Окном задержки", "value": "false"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.dpdiIsPositional === true"},
|
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.isPositional === true"},
|
||||||
{"widget": "number", "label": "Широта станции", "name": "dpdiPositionStationLatitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Широта станции", "name": "positionStationLatitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "number", "label": "Долгота станции", "name": "dpdiPositionStationLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Долгота станции", "name": "positionStationLongitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "number", "label": "Подспутниковая точка", "name": "dpdiPositionSatelliteLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Подспутниковая точка", "name": "positionSatelliteLongitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "number", "label": "Задержка до спутника, мс", "name": "dpdiDelay", "v_show": "paramDpdi.dpdiIsPositional === false", "min": 0, "step": 0.1, "max": 400}]
|
{"widget": "number", "label": "Задержка до спутника, мс", "name": "delay", "v_show": "paramDpdi.isPositional === false", "min": 0, "step": 0.1, "max": 400}]
|
||||||
},
|
},
|
||||||
{"widget": "submit"}
|
{"widget": "submit"}
|
||||||
],
|
],
|
||||||
@@ -120,7 +122,6 @@
|
|||||||
{
|
{
|
||||||
"widget": "settings-container",
|
"widget": "settings-container",
|
||||||
"childs": [
|
"childs": [
|
||||||
{"widget": "text", "label": "Пароль для входа в сеть ЦЗС", "name": "cesPassword"},
|
|
||||||
{"widget": "h3", "label": "Настройки интерфейса управления"},
|
{"widget": "h3", "label": "Настройки интерфейса управления"},
|
||||||
{"widget": "ip-address-mask", "label": "Интерфейс управления (a.d.d.r/mask)", "name": "managementIp"},
|
{"widget": "ip-address-mask", "label": "Интерфейс управления (a.d.d.r/mask)", "name": "managementIp"},
|
||||||
{"widget": "text", "label": "Имя веб-сервера", "name": "serverName"}
|
{"widget": "text", "label": "Имя веб-сервера", "name": "serverName"}
|
||||||
@@ -252,20 +253,20 @@
|
|||||||
"widget": "settings-container", "v_show": "paramRxtx.isCinC",
|
"widget": "settings-container", "v_show": "paramRxtx.isCinC",
|
||||||
"childs": [
|
"childs": [
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Метод расчета задержки", "name": "dpdiIsPositional",
|
"widget": "select", "label": "Метод расчета задержки", "name": "isPositional",
|
||||||
"values": [
|
"values": [
|
||||||
{"label": "Позиционированием", "value": "true"},
|
{"label": "Позиционированием", "value": "true"},
|
||||||
{"label": "Окном задержки", "value": "false"}
|
{"label": "Окном задержки", "value": "false"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{"widget": "number", "label": "Полоса поиска, КГц ±", "name": "dpdiSearchBandwidth", "min": 0, "step": 1, "max": 100},
|
{"widget": "number", "label": "Полоса поиска, КГц ±", "name": "searchBandwidth", "min": 0, "step": 1, "max": 100},
|
||||||
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.dpdiIsPositional === true"},
|
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.isPositional === true"},
|
||||||
{"widget": "number", "label": "Широта станции", "name": "dpdiPositionStationLatitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Широта станции", "name": "positionStationLatitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "number", "label": "Долгота станции", "name": "dpdiPositionStationLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Долгота станции", "name": "positionStationLongitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "number", "label": "Подспутниковая точка", "name": "dpdiPositionSatelliteLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Подспутниковая точка", "name": "positionSatelliteLongitude", "v_show": "paramDpdi.isPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "h2", "label": "Задержка до спутника", "v_show": "paramDpdi.dpdiIsPositional === false"},
|
{"widget": "h2", "label": "Задержка до спутника", "v_show": "paramDpdi.isPositional === false"},
|
||||||
{"widget": "number", "label": "от, мс", "name": "dpdiDelayMin", "v_show": "paramDpdi.dpdiIsPositional === false", "min": 0, "step": 0.1, "max": 400},
|
{"widget": "number", "label": "от, мс", "name": "delayMin", "v_show": "paramDpdi.isPositional === false", "min": 0, "step": 0.1, "max": 400},
|
||||||
{"widget": "number", "label": "до, мс", "name": "dpdiDelayMax", "v_show": "paramDpdi.dpdiIsPositional === false", "min": 0, "step": 0.1, "max": 400}]
|
{"widget": "number", "label": "до, мс", "name": "delayMax", "v_show": "paramDpdi.isPositional === false", "min": 0, "step": 0.1, "max": 400}]
|
||||||
},
|
},
|
||||||
{"widget": "submit", "v_show": "paramRxtx.isCinC"}
|
{"widget": "submit", "v_show": "paramRxtx.isCinC"}
|
||||||
],
|
],
|
||||||
@@ -363,19 +364,20 @@
|
|||||||
"widget": "select", "label": "Режим работы модулятора", "name": "txModulatorIsTest",
|
"widget": "select", "label": "Режим работы модулятора", "name": "txModulatorIsTest",
|
||||||
"values": [{"label": "Нормальный", "value": "false"}, {"label": "Тест (CW)", "value": "true"}]
|
"values": [{"label": "Нормальный", "value": "false"}, {"label": "Тест (CW)", "value": "true"}]
|
||||||
},
|
},
|
||||||
|
{"widget": "number", "label": "Ослабление, дБ", "name": "txAttenuation", "max": 0, "min": -40, "step": 0.25},
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Входные данные", "name": "txIsTestInput",
|
"widget": "select", "label": "Входные данные", "name": "txIsTestInput",
|
||||||
"values": [{"label": "Ethernet", "value": "false"}, {"label": "Тест", "value": "true"}]
|
"values": [{"label": "Ethernet", "value": "false"}, {"label": "Тест", "value": "true"}]
|
||||||
},
|
},
|
||||||
{"widget": "h3", "label": "Параметры передачи"},
|
{"widget": "h3", "label": "Параметры передачи"},
|
||||||
{"widget": "number", "label": "Центральная частота, КГц", "name": "txCentralFreq", "min": 100000, "max": 6000000, "step": 0.01},
|
{"widget": "number-int", "label": "Центральная частота, КГц", "name": "txCentralFreq", "min": 70000, "max": 6000000, "step": 100},
|
||||||
{"widget": "number", "label": "Символьная скорость, Бод", "name": "txBaudrate", "min": 200000, "max": 54000000},
|
{"widget": "number-int", "label": "Символьная скорость, Бод", "name": "txBaudrate", "min": 128000, "max": 30000000},
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Roll-off", "name": "txRolloff",
|
"widget": "select", "label": "Roll-off", "name": "txRolloff",
|
||||||
"values": [{"label": "0.02", "value": "20"}, {"label": "0.05", "value": "50"}, {"label": "0.10", "value": "100"}, {"label": "0.15", "value": "150"}, {"label": "0.20", "value": "200"}, {"label": "0.25", "value": "250"}]
|
"values": [{"label": "0.02", "value": "20"}, {"label": "0.05", "value": "50"}, {"label": "0.10", "value": "100"}, {"label": "0.15", "value": "150"}, {"label": "0.20", "value": "200"}, {"label": "0.25", "value": "250"}, {"label": "0.30", "value": "300"}, {"label": "0.35", "value": "350"}]
|
||||||
},
|
},
|
||||||
{"widget": "number", "label": "Коэф. расширения", "name": "txSpreadCoef", "max": 1000, "min": -1000, "step": 0.01},
|
{"widget": "number", "label": "Коэф. расширения", "name": "txSpreadCoef", "max": 1024, "min": 8, "step": 2},
|
||||||
{"widget": "number", "label": "Ослабление, дБ", "name": "txAttenuation", "max": 0, "min": -40, "step": 0.25}
|
{"widget": "number", "label": "Кол-во пакетов на преамбулу", "name": "txFieldsDataPreamble", "max": 255, "min": 1, "step": 1}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -399,13 +401,15 @@
|
|||||||
{"widget": "number", "label": "Усиление, дБ", "name": "rxManualGain", "min": -40, "step": 0.01, "max": 40, "v_show": "paramRxtx.rxAgcEn === false"},
|
{"widget": "number", "label": "Усиление, дБ", "name": "rxManualGain", "min": -40, "step": 0.01, "max": 40, "v_show": "paramRxtx.rxAgcEn === false"},
|
||||||
{"widget": "watch-expr", "label": "Текущее усиление", "expr": "paramRxtx.rxManualGain", "v_show": "paramRxtx.rxAgcEn === true"},
|
{"widget": "watch-expr", "label": "Текущее усиление", "expr": "paramRxtx.rxManualGain", "v_show": "paramRxtx.rxAgcEn === true"},
|
||||||
{"widget": "checkbox", "label": "Инверсия спектра", "name": "rxSpectrumInversion"},
|
{"widget": "checkbox", "label": "Инверсия спектра", "name": "rxSpectrumInversion"},
|
||||||
{"widget": "number", "label": "Центральная частота, КГц", "name": "rxCentralFreq", "min": 100000, "max": 6000000, "step": 0.01},
|
{"widget": "number-int", "label": "Центральная частота, КГц", "name": "rxCentralFreq", "min": 70000, "max": 6000000, "step": 100},
|
||||||
{"widget": "number", "label": "Символьная скорость, Бод", "name": "rxBaudrate", "min": 200000, "max": 54000000},
|
{"widget": "number-int", "label": "Символьная скорость, Бод", "name": "rxBaudrate", "min": 128000, "max": 30000000},
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Roll-off", "name": "rxRolloff",
|
"widget": "select", "label": "Roll-off", "name": "rxRolloff",
|
||||||
"values": [{"label": "0.02", "value": "20"}, {"label": "0.05", "value": "50"}, {"label": "0.10", "value": "100"}, {"label": "0.15", "value": "150"}, {"label": "0.20", "value": "200"}, {"label": "0.25", "value": "250"}]
|
"values": [{"label": "0.02", "value": "20"}, {"label": "0.05", "value": "50"}, {"label": "0.10", "value": "100"}, {"label": "0.15", "value": "150"}, {"label": "0.20", "value": "200"}, {"label": "0.25", "value": "250"}, {"label": "0.30", "value": "300"}, {"label": "0.35", "value": "350"}]
|
||||||
},
|
},
|
||||||
{"widget": "number", "label": "Коэф. расширения", "name": "rxSpreadCoef", "max": 1000, "min": -1000, "step": 0.01}
|
{"widget": "number", "label": "Коэф. расширения", "name": "rxSpreadCoef", "max": 1024, "min": 8, "step": 2},
|
||||||
|
{"widget": "number", "label": "Порог коррелятора", "name": "rxFftShift", "max": 4096, "min": 256, "step": 1},
|
||||||
|
{"widget": "number", "label": "Кол-во пакетов на преамбулу", "name": "rxFieldsDataPreamble", "max": 255, "min": 1, "step": 1}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -63,6 +63,22 @@
|
|||||||
}
|
}
|
||||||
this.submitStatus.firmwareUpgradeOta = false
|
this.submitStatus.firmwareUpgradeOta = false
|
||||||
},
|
},
|
||||||
|
async settingsPerformSetCesPassword() {
|
||||||
|
if (this.submitStatus.cesPassword) { return }
|
||||||
|
this.submitStatus.cesPassword = true
|
||||||
|
try {
|
||||||
|
await fetch('/api/set/cesPassword', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify({'password': this.cesPasswordValue})
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
console.log("failed to perform set CES password: ", e)
|
||||||
|
}
|
||||||
|
this.submitStatus.cesPassword = false
|
||||||
|
},
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
doModemReboot() {
|
doModemReboot() {
|
||||||
|
@@ -23,7 +23,16 @@
|
|||||||
</div>
|
</div>
|
||||||
<button class="action-button" @click="dumpAllSettings()">Сохранить бекап конфигурации</button>
|
<button class="action-button" @click="dumpAllSettings()">Сохранить бекап конфигурации</button>
|
||||||
<button class="dangerous-button" @click="restoreAllSettings()">Восстановить бекап конфигурации</button>
|
<button class="dangerous-button" @click="restoreAllSettings()">Восстановить бекап конфигурации</button>
|
||||||
</div>
|
</div>{% endraw %}{% if modem == 'tdma' %}
|
||||||
|
|
||||||
|
<h2>Вход в сеть ЦЗС</h2>
|
||||||
|
<div class="settings-set-container statistics-container">
|
||||||
|
<label>
|
||||||
|
<span>Хеш-строка пароля (выдается оператором NMS)</span>
|
||||||
|
<input v-model="cesPasswordValue" type="text">
|
||||||
|
</label>
|
||||||
|
<button class="action-button" @click="settingsPerformSetCesPassword()">Установить пароль<span class="submit-spinner" v-show="submitStatus.cesPassword"></span></button>
|
||||||
|
</div>{% endif %}{% raw %}
|
||||||
|
|
||||||
<h2>Обновление ПО</h2>
|
<h2>Обновление ПО</h2>
|
||||||
<div class="settings-set-container statistics-container">
|
<div class="settings-set-container statistics-container">
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
<div class="settings-set-container statistics-container">
|
<div class="settings-set-container statistics-container">
|
||||||
<h2>Статистика приема</h2>
|
<h2>Статистика приема</h2>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>{% endraw %}{% if modem != 'shps' %}{% raw %}
|
||||||
<tr><th>Прием</th><td><span :class="{ indicator_bad: statRx.state === false, indicator_good: statRx.state === true, indicator: true }"></span></td></tr>
|
<tr><th>Прием</th><td><span :class="{ indicator_bad: statRx.state === false, indicator_good: statRx.state === true, indicator: true }"></span></td></tr>
|
||||||
<tr><th>Захват символьной</th><td><span :class="{ indicator_bad: statRx.sym_sync_lock === false, indicator_good: statRx.sym_sync_lock === true, indicator: true }"></span></td></tr>
|
<tr><th>Захват символьной</th><td><span :class="{ indicator_bad: statRx.sym_sync_lock === false, indicator_good: statRx.sym_sync_lock === true, indicator: true }"></span></td></tr>
|
||||||
<tr><th>Захват ФАПЧ</th><td><span :class="{ indicator_bad: statRx.afc_lock === false, indicator_good: statRx.afc_lock === true, indicator: true }"></span></td></tr>
|
<tr><th>Захват ФАПЧ</th><td><span :class="{ indicator_bad: statRx.afc_lock === false, indicator_good: statRx.afc_lock === true, indicator: true }"></span></td></tr>
|
||||||
@@ -22,7 +22,17 @@
|
|||||||
<tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
|
<tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
|
||||||
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
|
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
|
||||||
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
|
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
|
||||||
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>
|
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>{% endraw %}{% else %}{% raw %}
|
||||||
|
<tr><th>Прием</th><td><span :class="{ indicator_bad: statRx.state === false, indicator_good: statRx.state === true, indicator: true }"></span></td></tr>
|
||||||
|
<tr><th>ОСШ/RSSI</th><td>{{ statRx.snr }} / {{ statRx.rssi }}</td></tr>
|
||||||
|
<tr><th>Частотная ошибка, Гц</th><td>{{ statRx.freqErrAcc }}</td></tr>
|
||||||
|
<tr><th>Ур. входного сигнала</th><td>{{ statRx.inputSignalLevel }}</td></tr>
|
||||||
|
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
|
||||||
|
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
|
||||||
|
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr>
|
||||||
|
<tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
|
||||||
|
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
|
||||||
|
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>{% endraw %}{% endif %}{% raw %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<button class="action-button" @click="resetPacketsStatistics()"> Сброс статистики </button>
|
<button class="action-button" @click="resetPacketsStatistics()"> Сброс статистики </button>
|
||||||
@@ -39,7 +49,7 @@
|
|||||||
<tr><th>Инф. скорость на передаче</th><td>{{ statTx.speedOnTxKbit }} кбит/с</td></tr>
|
<tr><th>Инф. скорость на передаче</th><td>{{ statTx.speedOnTxKbit }} кбит/с</td></tr>
|
||||||
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statTx.speedOnIifKbit }} кбит/с</td></tr>
|
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statTx.speedOnIifKbit }} кбит/с</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>{% endraw %}{% else %}{% raw %}
|
</table>{% endraw %}{% elif modem == 'tdma' %}{% raw %}
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><th>Передача</th><td><span :class="{ indicator_bad: statTx.state === false, indicator_good: statTx.state === true, indicator: true }"></span></td></tr>
|
<tr><th>Передача</th><td><span :class="{ indicator_bad: statTx.state === false, indicator_good: statTx.state === true, indicator: true }"></span></td></tr>
|
||||||
@@ -49,6 +59,15 @@
|
|||||||
<tr><th>Центральная частота</th><td>{{ statTx.centerFreq }} кГц</td></tr>
|
<tr><th>Центральная частота</th><td>{{ statTx.centerFreq }} кГц</td></tr>
|
||||||
<tr><th>Символьная скорость</th><td>{{ statTx.symSpeed }} ksymb</td></tr>
|
<tr><th>Символьная скорость</th><td>{{ statTx.symSpeed }} ksymb</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
</table>{% endraw %}{% elif modem == 'shps' %}{% raw %}
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr><th>Передача</th><td><span :class="{ indicator_bad: statTx.state === false, indicator_good: statTx.state === true, indicator: true }"></span></td></tr>
|
||||||
|
<tr><th>Инф. скорость на передаче</th><td>{{ statTx.speedOnTxKbit }} кбит/с</td></tr>
|
||||||
|
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statTx.speedOnIifKbit }} кбит/с</td></tr>
|
||||||
|
<tr><th>Центральная частота</th><td>{{ statTx.centerFreq }} кГц</td></tr>
|
||||||
|
<tr><th>Символьная скорость</th><td>{{ statTx.symSpeed }} ksymb</td></tr>
|
||||||
|
</tbody>
|
||||||
</table>{% endraw %}{% endif %}{% raw %}
|
</table>{% endraw %}{% endif %}{% raw %}
|
||||||
</div>{% endraw %}{% if modem == 'scpc' %}{% raw %}
|
</div>{% endraw %}{% if modem == 'scpc' %}{% raw %}
|
||||||
<div class="settings-set-container statistics-container" v-if="paramRxtx.isCinC === true">
|
<div class="settings-set-container statistics-container" v-if="paramRxtx.isCinC === true">
|
||||||
|
@@ -99,10 +99,14 @@
|
|||||||
firmwareUpgrade: false,
|
firmwareUpgrade: false,
|
||||||
{% if modem == 'tdma' %}
|
{% if modem == 'tdma' %}
|
||||||
firmwareUpgradeOta: false,
|
firmwareUpgradeOta: false,
|
||||||
|
cesPassword: false,
|
||||||
{% endif %}
|
{% endif %}
|
||||||
// когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю
|
// когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю
|
||||||
modemReboot: null
|
modemReboot: null
|
||||||
},
|
},
|
||||||
|
{% if modem == 'tdma' %}
|
||||||
|
cesPasswordValue: '',
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
// ========== include from 'common/all-params-data.js.j2'
|
// ========== include from 'common/all-params-data.js.j2'
|
||||||
{% include 'common/all-params-data.js.j2' %}
|
{% include 'common/all-params-data.js.j2' %}
|
||||||
|
@@ -354,19 +354,23 @@ void api_driver::obj::TerminalState::updateCallback(proxy::CpProxy& cp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fRxState = demod.locks.sym_sync_lock && demod.locks.freq_lock && demod.locks.afc_lock && demod.locks.pkt_sync;
|
fRxState = demod.locks.sym_sync_lock && demod.locks.freq_lock && demod.locks.afc_lock && demod.locks.pkt_sync;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
fRxSymSyncLock = demod.locks.sym_sync_lock;
|
fRxSymSyncLock = demod.locks.sym_sync_lock;
|
||||||
fRxFreqSearchLock = demod.locks.freq_lock;
|
fRxFreqSearchLock = demod.locks.freq_lock;
|
||||||
fRxAfcLock = demod.locks.afc_lock;
|
fRxAfcLock = demod.locks.afc_lock;
|
||||||
fRxPktSync = demod.locks.pkt_sync;
|
fRxPktSync = demod.locks.pkt_sync;
|
||||||
|
#endif
|
||||||
|
|
||||||
fRxSnr = demod.snr;
|
fRxSnr = demod.snr;
|
||||||
fRxRssi = demod.rssi;
|
fRxRssi = demod.rssi;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
fRxModcod = demod.modcod;
|
fRxModcod = demod.modcod;
|
||||||
fRxFrameSizeNormal = !demod.is_short;
|
fRxFrameSizeNormal = !demod.is_short;
|
||||||
fRxIsPilots = demod.is_pilots;
|
fRxIsPilots = demod.is_pilots;
|
||||||
|
|
||||||
fRxSymError = demod.sym_err;
|
fRxSymError = demod.sym_err;
|
||||||
fRxFreqErr = demod.crs_freq_err;
|
fRxFreqErr = demod.crs_freq_err;
|
||||||
|
#endif
|
||||||
fRxFreqErrAcc = demod.fine_freq_err;
|
fRxFreqErrAcc = demod.fine_freq_err;
|
||||||
fRxInputSignalLevel = demod.if_overload;
|
fRxInputSignalLevel = demod.if_overload;
|
||||||
fRxPllError = demod.afc_err;
|
fRxPllError = demod.afc_err;
|
||||||
@@ -374,9 +378,10 @@ void api_driver::obj::TerminalState::updateCallback(proxy::CpProxy& cp) {
|
|||||||
fRxSpeedOnIifKbit = static_cast<double>(demod.speed_in_bytes_rx_iface) / 128.0;
|
fRxSpeedOnIifKbit = static_cast<double>(demod.speed_in_bytes_rx_iface) / 128.0;
|
||||||
fRxPacketsOk = demod.packet_ok_cnt;
|
fRxPacketsOk = demod.packet_ok_cnt;
|
||||||
fRxPacketsBad = demod.packet_bad_cnt;
|
fRxPacketsBad = demod.packet_bad_cnt;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
fRxPacketsDummy = demod.dummy_cnt;
|
fRxPacketsDummy = demod.dummy_cnt;
|
||||||
|
|
||||||
fTxModcod = mod.modcod;
|
fTxModcod = mod.modcod;
|
||||||
|
#endif
|
||||||
fTxSpeedOnTxKbit = static_cast<double>(mod.speed_in_bytes_tx) / 128.0;
|
fTxSpeedOnTxKbit = static_cast<double>(mod.speed_in_bytes_tx) / 128.0;
|
||||||
fTxSpeedOnIifKbit = static_cast<double>(mod.speed_in_bytes_tx_iface) / 128.0;
|
fTxSpeedOnIifKbit = static_cast<double>(mod.speed_in_bytes_tx_iface) / 128.0;
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
@@ -404,19 +409,23 @@ nlohmann::json api_driver::obj::TerminalState::asJson() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
res["rx"]["state"] = fRxState;
|
res["rx"]["state"] = fRxState;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
res["rx"]["sym_sync_lock"] = fRxSymSyncLock;
|
res["rx"]["sym_sync_lock"] = fRxSymSyncLock;
|
||||||
res["rx"]["freq_search_lock"] = fRxFreqSearchLock;
|
res["rx"]["freq_search_lock"] = fRxFreqSearchLock;
|
||||||
res["rx"]["afc_lock"] = fRxAfcLock;
|
res["rx"]["afc_lock"] = fRxAfcLock;
|
||||||
res["rx"]["pkt_sync"] = fRxPktSync;
|
res["rx"]["pkt_sync"] = fRxPktSync;
|
||||||
|
#endif
|
||||||
|
|
||||||
res["rx"]["snr"] = fRxSnr;
|
res["rx"]["snr"] = fRxSnr;
|
||||||
res["rx"]["rssi"] = fRxRssi;
|
res["rx"]["rssi"] = fRxRssi;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
res["rx"]["modcod"] = fRxModcod;
|
res["rx"]["modcod"] = fRxModcod;
|
||||||
res["rx"]["frameSizeNormal"] = fRxFrameSizeNormal;
|
res["rx"]["frameSizeNormal"] = fRxFrameSizeNormal;
|
||||||
res["rx"]["isPilots"] = fRxIsPilots;
|
res["rx"]["isPilots"] = fRxIsPilots;
|
||||||
|
|
||||||
res["rx"]["symError"] = fRxSymError;
|
res["rx"]["symError"] = fRxSymError;
|
||||||
res["rx"]["freqErr"] = fRxFreqErr;
|
res["rx"]["freqErr"] = fRxFreqErr;
|
||||||
|
#endif
|
||||||
res["rx"]["freqErrAcc"] = fRxFreqErrAcc;
|
res["rx"]["freqErrAcc"] = fRxFreqErrAcc;
|
||||||
res["rx"]["inputSignalLevel"] = fRxInputSignalLevel;
|
res["rx"]["inputSignalLevel"] = fRxInputSignalLevel;
|
||||||
res["rx"]["pllError"] = fRxPllError;
|
res["rx"]["pllError"] = fRxPllError;
|
||||||
@@ -424,9 +433,10 @@ nlohmann::json api_driver::obj::TerminalState::asJson() {
|
|||||||
res["rx"]["speedOnIifKbit"] = fRxSpeedOnIifKbit;
|
res["rx"]["speedOnIifKbit"] = fRxSpeedOnIifKbit;
|
||||||
res["rx"]["packetsOk"] = fRxPacketsOk;
|
res["rx"]["packetsOk"] = fRxPacketsOk;
|
||||||
res["rx"]["packetsBad"] = fRxPacketsBad;
|
res["rx"]["packetsBad"] = fRxPacketsBad;
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
res["rx"]["packetsDummy"] = fRxPacketsDummy;
|
res["rx"]["packetsDummy"] = fRxPacketsDummy;
|
||||||
|
|
||||||
res["tx"]["modcod"] = fTxModcod;
|
res["tx"]["modcod"] = fTxModcod;
|
||||||
|
#endif
|
||||||
res["tx"]["state"] = fTxState;
|
res["tx"]["state"] = fTxState;
|
||||||
res["tx"]["speedOnTxKbit"] = fTxSpeedOnTxKbit;
|
res["tx"]["speedOnTxKbit"] = fTxSpeedOnTxKbit;
|
||||||
res["tx"]["speedOnIifKbit"] = fTxSpeedOnIifKbit;
|
res["tx"]["speedOnIifKbit"] = fTxSpeedOnIifKbit;
|
||||||
@@ -657,6 +667,7 @@ void api_driver::obj::TerminalRxTxSettings::updateMainSettings(const nlohmann::j
|
|||||||
#endif
|
#endif
|
||||||
#ifdef MODEM_IS_SHPS
|
#ifdef MODEM_IS_SHPS
|
||||||
mod.koef_spread = data.value("txSpreadCoef", mod.koef_spread);
|
mod.koef_spread = data.value("txSpreadCoef", mod.koef_spread);
|
||||||
|
mod.txFieldsDataPreamble = data.value("txFieldsDataPreamble", mod.txFieldsDataPreamble);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// демодулятор
|
// демодулятор
|
||||||
@@ -671,6 +682,7 @@ void api_driver::obj::TerminalRxTxSettings::updateMainSettings(const nlohmann::j
|
|||||||
#endif
|
#endif
|
||||||
#ifdef MODEM_IS_SHPS
|
#ifdef MODEM_IS_SHPS
|
||||||
dem.koef_spread = data.value("rxSpreadCoef", dem.koef_spread);
|
dem.koef_spread = data.value("rxSpreadCoef", dem.koef_spread);
|
||||||
|
dem.rxFftShift = data.value("rxFftShift", dem.rxFftShift);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef API_STRUCT_ACM_ENABLE
|
#ifdef API_STRUCT_ACM_ENABLE
|
||||||
@@ -735,7 +747,7 @@ void api_driver::obj::TerminalRxTxSettings::updateDpdiSettings(const nlohmann::j
|
|||||||
dpdi.max_delay = data.value("delayMax", dpdi.max_delay);
|
dpdi.max_delay = data.value("delayMax", dpdi.max_delay);
|
||||||
#else
|
#else
|
||||||
dpdi.min_delay = 0;
|
dpdi.min_delay = 0;
|
||||||
dpdi.max_delay = data.value("dpdiDelay", dpdi.max_delay);
|
dpdi.max_delay = data.value("delay", dpdi.max_delay);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
void api_driver::obj::TerminalRxTxSettings::storeDpdiSettings(proxy::CpProxy &cp) {
|
void api_driver::obj::TerminalRxTxSettings::storeDpdiSettings(proxy::CpProxy &cp) {
|
||||||
@@ -765,6 +777,9 @@ void api_driver::obj::TerminalRxTxSettings::updateBuclnbSettings(const nlohmann:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
buclnb.is_ref_10MHz_buc = data.value("bucRefClk10M", buclnb.is_ref_10MHz_buc);
|
buclnb.is_ref_10MHz_buc = data.value("bucRefClk10M", buclnb.is_ref_10MHz_buc);
|
||||||
|
#ifdef MODEM_IS_TDMA
|
||||||
|
buclnb.lo_buc_inkHz = data.value("bucLoKhz", buclnb.lo_buc_inkHz);
|
||||||
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
// напряжение lnb
|
// напряжение lnb
|
||||||
@@ -784,8 +799,10 @@ void api_driver::obj::TerminalRxTxSettings::updateBuclnbSettings(const nlohmann:
|
|||||||
default: buclnb.lnb = voltage_lnb::DISABLE;
|
default: buclnb.lnb = voltage_lnb::DISABLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buclnb.is_ref_10MHz_lnb = data.value("lnbRefClk10M", buclnb.is_ref_10MHz_lnb);
|
buclnb.is_ref_10MHz_lnb = data.value("lnbRefClk10M", buclnb.is_ref_10MHz_lnb);
|
||||||
|
#ifdef MODEM_IS_TDMA
|
||||||
|
buclnb.lo_lnb_inkHz = data.value("lnbLoKhz", buclnb.lo_lnb_inkHz);
|
||||||
|
#endif
|
||||||
|
|
||||||
buclnb.is_ref_10MHz_output = data.value("srvRefClk10M", buclnb.is_ref_10MHz_output);
|
buclnb.is_ref_10MHz_output = data.value("srvRefClk10M", buclnb.is_ref_10MHz_output);
|
||||||
buclnb.is_save_current_state = data.value("bucLnbAutoStart", buclnb.is_save_current_state);
|
buclnb.is_save_current_state = data.value("bucLnbAutoStart", buclnb.is_save_current_state);
|
||||||
@@ -832,6 +849,7 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
|
|||||||
rxtx["txAttenuation"] = mod.attenuation;
|
rxtx["txAttenuation"] = mod.attenuation;
|
||||||
#ifdef MODEM_IS_SHPS
|
#ifdef MODEM_IS_SHPS
|
||||||
rxtx["txSpreadCoef"] = mod.koef_spread;
|
rxtx["txSpreadCoef"] = mod.koef_spread;
|
||||||
|
rxtx["txFieldsDataPreamble"] = mod.txFieldsDataPreamble;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MODEM_IS_SCPC) || defined(MODEM_IS_SHPS)
|
#if defined(MODEM_IS_SCPC) || defined(MODEM_IS_SHPS)
|
||||||
@@ -856,8 +874,8 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
|
|||||||
rxtx["rxGoldan"] = dem.gold_seq_is_active ? 1 : 0;
|
rxtx["rxGoldan"] = dem.gold_seq_is_active ? 1 : 0;
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODEM_IS_SHPS
|
#ifdef MODEM_IS_SHPS
|
||||||
rxtx["txSpreadCoef"] = mod.koef_spread;
|
|
||||||
rxtx["rxSpreadCoef"] = dem.koef_spread;
|
rxtx["rxSpreadCoef"] = dem.koef_spread;
|
||||||
|
rxtx["rxFftShift"] = dem.rxFftShift;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef API_STRUCT_ACM_ENABLE
|
#ifdef API_STRUCT_ACM_ENABLE
|
||||||
@@ -916,6 +934,9 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
|
|||||||
#endif
|
#endif
|
||||||
default: bl["bucPowering"] = 0;
|
default: bl["bucPowering"] = 0;
|
||||||
}
|
}
|
||||||
|
#ifdef MODEM_IS_TDMA
|
||||||
|
bl["bucLoKhz"] = buclnb.lo_buc_inkHz;
|
||||||
|
#endif
|
||||||
|
|
||||||
bl["bucRefClk10M"] = buclnb.is_ref_10MHz_buc;
|
bl["bucRefClk10M"] = buclnb.is_ref_10MHz_buc;
|
||||||
switch (buclnb.lnb) {
|
switch (buclnb.lnb) {
|
||||||
@@ -925,6 +946,9 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
|
|||||||
default: bl["lnbPowering"] = 0;
|
default: bl["lnbPowering"] = 0;
|
||||||
}
|
}
|
||||||
bl["lnbRefClk10M"] = buclnb.is_ref_10MHz_lnb;
|
bl["lnbRefClk10M"] = buclnb.is_ref_10MHz_lnb;
|
||||||
|
#ifdef MODEM_IS_TDMA
|
||||||
|
bl["lnbLoKhz"] = buclnb.lo_lnb_inkHz;
|
||||||
|
#endif
|
||||||
|
|
||||||
bl["srvRefClk10M"] = buclnb.is_ref_10MHz_output;
|
bl["srvRefClk10M"] = buclnb.is_ref_10MHz_output;
|
||||||
bl["bucLnbAutoStart"] = buclnb.is_save_current_state;
|
bl["bucLnbAutoStart"] = buclnb.is_save_current_state;
|
||||||
|
@@ -134,19 +134,22 @@ namespace api_driver::obj {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool fRxState{};
|
bool fRxState{};
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
bool fRxSymSyncLock{};
|
bool fRxSymSyncLock{};
|
||||||
bool fRxFreqSearchLock{};
|
bool fRxFreqSearchLock{};
|
||||||
bool fRxAfcLock{};
|
bool fRxAfcLock{};
|
||||||
bool fRxPktSync{};
|
bool fRxPktSync{};
|
||||||
|
#endif
|
||||||
|
|
||||||
float fRxSnr{};
|
float fRxSnr{};
|
||||||
float fRxRssi{};
|
float fRxRssi{};
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
uint16_t fRxModcod{};
|
uint16_t fRxModcod{};
|
||||||
bool fRxFrameSizeNormal{};
|
bool fRxFrameSizeNormal{};
|
||||||
bool fRxIsPilots{};
|
bool fRxIsPilots{};
|
||||||
|
|
||||||
double fRxSymError{};
|
double fRxSymError{};
|
||||||
double fRxFreqErr{};
|
double fRxFreqErr{};
|
||||||
|
#endif
|
||||||
double fRxFreqErrAcc{};
|
double fRxFreqErrAcc{};
|
||||||
double fRxInputSignalLevel{};
|
double fRxInputSignalLevel{};
|
||||||
double fRxPllError{};
|
double fRxPllError{};
|
||||||
@@ -154,9 +157,10 @@ namespace api_driver::obj {
|
|||||||
double fRxSpeedOnIifKbit{};
|
double fRxSpeedOnIifKbit{};
|
||||||
uint32_t fRxPacketsOk{};
|
uint32_t fRxPacketsOk{};
|
||||||
uint32_t fRxPacketsBad{};
|
uint32_t fRxPacketsBad{};
|
||||||
|
#ifndef MODEM_IS_SHPS
|
||||||
uint32_t fRxPacketsDummy{};
|
uint32_t fRxPacketsDummy{};
|
||||||
|
|
||||||
uint16_t fTxModcod{};
|
uint16_t fTxModcod{};
|
||||||
|
#endif
|
||||||
double fTxSpeedOnTxKbit{};
|
double fTxSpeedOnTxKbit{};
|
||||||
double fTxSpeedOnIifKbit{};
|
double fTxSpeedOnIifKbit{};
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
|
32
src/main.cpp
32
src/main.cpp
@@ -227,7 +227,7 @@ public:
|
|||||||
resultJson["status"] = "ok";
|
resultJson["status"] = "ok";
|
||||||
resultJson["state"] = api->loadTerminalState();
|
resultJson["state"] = api->loadTerminalState();
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/qos): Can't set QoS settings: " << e.what();
|
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/get/statistics): Can't get terminal state: " << e.what();
|
||||||
resultJson.clear();
|
resultJson.clear();
|
||||||
resultJson["status"] = "error";
|
resultJson["status"] = "error";
|
||||||
resultJson["error"] = e.what();
|
resultJson["error"] = e.what();
|
||||||
@@ -436,6 +436,36 @@ public:
|
|||||||
auto result = resultJson.dump();
|
auto result = resultJson.dump();
|
||||||
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
||||||
}));
|
}));
|
||||||
|
#ifdef MODEM_IS_TDMA
|
||||||
|
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/cesPassword", this->auth, http::auth::User::EDIT_SETTINGS, [this](const http::server::Request& req, auto& rep) {
|
||||||
|
if (req.method != "POST") {
|
||||||
|
http::server::stockReply(http::server::bad_request, rep);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rep.status = http::server::ok;
|
||||||
|
rep.headers.push_back({.name = "Content-Type", .value = toString(mime_types::json)});
|
||||||
|
nlohmann::json resultJson;
|
||||||
|
|
||||||
|
try {
|
||||||
|
auto reqJson = nlohmann::json::parse(std::string(req.payload.begin(), req.payload.end()));
|
||||||
|
auto password = reqJson["password"].get<std::string>();
|
||||||
|
|
||||||
|
this->api->executeInApi([&password](auto& cp) {
|
||||||
|
cp.setNetwork("ces_password", password);
|
||||||
|
});
|
||||||
|
resultJson["status"] = "ok";
|
||||||
|
} catch (std::exception& e) {
|
||||||
|
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/cesPassword): Can't set CES password: " << e.what();
|
||||||
|
resultJson.clear();
|
||||||
|
resultJson["status"] = "error";
|
||||||
|
resultJson["error"] = e.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto result = resultJson.dump();
|
||||||
|
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
||||||
|
}));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/reboot", this->auth, 0, [this](const auto& req, auto& rep) {
|
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/reboot", this->auth, 0, [this](const auto& req, auto& rep) {
|
||||||
|
@@ -107,7 +107,7 @@ void api_driver::ApiDriver::setDpdiSettings(const nlohmann::json& data) {
|
|||||||
|
|
||||||
std::lock_guard _lapi(this->daemon->cpApiMutex);
|
std::lock_guard _lapi(this->daemon->cpApiMutex);
|
||||||
this->daemon->cp.setDmaDebug("begin_save_config", "");
|
this->daemon->cp.setDmaDebug("begin_save_config", "");
|
||||||
rxtx.storeMainSettings(this->daemon->cp);
|
rxtx.storeDpdiSettings(this->daemon->cp);
|
||||||
this->daemon->cp.setDmaDebug("save_config", "");
|
this->daemon->cp.setDmaDebug("save_config", "");
|
||||||
rxtx.updateCallback(this->daemon->cp);
|
rxtx.updateCallback(this->daemon->cp);
|
||||||
{
|
{
|
||||||
|
@@ -326,19 +326,19 @@
|
|||||||
<div class="settings-set-container" v-show="paramRxtx.isCinC">
|
<div class="settings-set-container" v-show="paramRxtx.isCinC">
|
||||||
<label>
|
<label>
|
||||||
<span>Метод расчета задержки</span>
|
<span>Метод расчета задержки</span>
|
||||||
<select v-model="paramDpdi.dpdiIsPositional">
|
<select v-model="paramDpdi.isPositional">
|
||||||
<option :value="true">Позиционированием</option>
|
<option :value="true">Позиционированием</option>
|
||||||
<option :value="false">Окном задержки</option>
|
<option :value="false">Окном задержки</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label><span>Полоса поиска, КГц ±</span><input type="number" v-model="paramDpdi.dpdiSearchBandwidth" max="100" step="1"/></label>
|
<label><span>Полоса поиска, КГц ±</span><input type="number" v-model="paramDpdi.searchBandwidth" max="100" step="1"/></label>
|
||||||
<h2 v-show="paramDpdi.dpdiIsPositional === true">Настройки позиционирования</h2>
|
<h2 v-show="paramDpdi.isPositional === true">Настройки позиционирования</h2>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.positionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.positionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.dpdiPositionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.positionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<h2 v-show="paramDpdi.dpdiIsPositional === false">Задержка до спутника</h2>
|
<h2 v-show="paramDpdi.isPositional === false">Задержка до спутника</h2>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === false"><span>от, мс</span><input type="number" v-model="paramDpdi.dpdiDelayMin" max="400" step="0.1"/></label>
|
<label v-show="paramDpdi.isPositional === false"><span>от, мс</span><input type="number" v-model="paramDpdi.delayMin" max="400" step="0.1"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === false"><span>до, мс</span><input type="number" v-model="paramDpdi.dpdiDelayMax" max="400" step="0.1"/></label>
|
<label v-show="paramDpdi.isPositional === false"><span>до, мс</span><input type="number" v-model="paramDpdi.delayMax" max="400" step="0.1"/></label>
|
||||||
</div>
|
</div>
|
||||||
<button class="action-button" @click="settingsSubmitDpdi()" v-show="paramRxtx.isCinC">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
<button class="action-button" @click="settingsSubmitDpdi()" v-show="paramRxtx.isCinC">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
||||||
<h2>Настройки питания и опорного генератора</h2>
|
<h2>Настройки питания и опорного генератора</h2>
|
||||||
@@ -631,13 +631,13 @@
|
|||||||
rxGoldan: 0,
|
rxGoldan: 0,
|
||||||
},
|
},
|
||||||
paramDpdi: {
|
paramDpdi: {
|
||||||
dpdiIsPositional: true,
|
isPositional: true,
|
||||||
dpdiSearchBandwidth: 0,
|
searchBandwidth: 0,
|
||||||
dpdiPositionStationLatitude: -180,
|
positionStationLatitude: -180,
|
||||||
dpdiPositionStationLongitude: -180,
|
positionStationLongitude: -180,
|
||||||
dpdiPositionSatelliteLongitude: -180,
|
positionSatelliteLongitude: -180,
|
||||||
dpdiDelayMin: 0,
|
delayMin: 0,
|
||||||
dpdiDelayMax: 0,
|
delayMax: 0,
|
||||||
},
|
},
|
||||||
paramBuclnb: {
|
paramBuclnb: {
|
||||||
bucRefClk10M: false,
|
bucRefClk10M: false,
|
||||||
@@ -829,13 +829,13 @@
|
|||||||
if (this.submitStatus.dpdi) { return }
|
if (this.submitStatus.dpdi) { return }
|
||||||
|
|
||||||
let query = {
|
let query = {
|
||||||
"dpdiIsPositional": this.paramDpdi.dpdiIsPositional,
|
"isPositional": this.paramDpdi.isPositional,
|
||||||
"dpdiSearchBandwidth": this.paramDpdi.dpdiSearchBandwidth,
|
"searchBandwidth": this.paramDpdi.searchBandwidth,
|
||||||
"dpdiPositionStationLatitude": this.paramDpdi.dpdiPositionStationLatitude,
|
"positionStationLatitude": this.paramDpdi.positionStationLatitude,
|
||||||
"dpdiPositionStationLongitude": this.paramDpdi.dpdiPositionStationLongitude,
|
"positionStationLongitude": this.paramDpdi.positionStationLongitude,
|
||||||
"dpdiPositionSatelliteLongitude": this.paramDpdi.dpdiPositionSatelliteLongitude,
|
"positionSatelliteLongitude": this.paramDpdi.positionSatelliteLongitude,
|
||||||
"dpdiDelayMin": this.paramDpdi.dpdiDelayMin,
|
"delayMin": this.paramDpdi.delayMin,
|
||||||
"dpdiDelayMax": this.paramDpdi.dpdiDelayMax,
|
"delayMax": this.paramDpdi.delayMax,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.submitStatus.dpdi = true
|
this.submitStatus.dpdi = true
|
||||||
@@ -919,13 +919,13 @@
|
|||||||
},
|
},
|
||||||
updateDpdiSettings(vals) {
|
updateDpdiSettings(vals) {
|
||||||
this.submitStatus.dpdi = false
|
this.submitStatus.dpdi = false
|
||||||
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdi"]["dpdiIsPositional"]
|
this.paramDpdi.isPositional = vals["settings"]["dpdi"]["isPositional"]
|
||||||
this.paramDpdi.dpdiSearchBandwidth = vals["settings"]["dpdi"]["dpdiSearchBandwidth"]
|
this.paramDpdi.searchBandwidth = vals["settings"]["dpdi"]["searchBandwidth"]
|
||||||
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdi"]["dpdiPositionStationLatitude"]
|
this.paramDpdi.positionStationLatitude = vals["settings"]["dpdi"]["positionStationLatitude"]
|
||||||
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdi"]["dpdiPositionStationLongitude"]
|
this.paramDpdi.positionStationLongitude = vals["settings"]["dpdi"]["positionStationLongitude"]
|
||||||
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdi"]["dpdiPositionSatelliteLongitude"]
|
this.paramDpdi.positionSatelliteLongitude = vals["settings"]["dpdi"]["positionSatelliteLongitude"]
|
||||||
this.paramDpdi.dpdiDelayMin = vals["settings"]["dpdi"]["dpdiDelayMin"]
|
this.paramDpdi.delayMin = vals["settings"]["dpdi"]["delayMin"]
|
||||||
this.paramDpdi.dpdiDelayMax = vals["settings"]["dpdi"]["dpdiDelayMax"]
|
this.paramDpdi.delayMax = vals["settings"]["dpdi"]["delayMax"]
|
||||||
},
|
},
|
||||||
updateBuclnbSettings(vals) {
|
updateBuclnbSettings(vals) {
|
||||||
this.submitStatus.buclnb = false
|
this.submitStatus.buclnb = false
|
||||||
|
@@ -58,16 +58,8 @@
|
|||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><th>Прием</th><td><span :class="{ indicator_bad: statRx.state === false, indicator_good: statRx.state === true, indicator: true }"></span></td></tr>
|
<tr><th>Прием</th><td><span :class="{ indicator_bad: statRx.state === false, indicator_good: statRx.state === true, indicator: true }"></span></td></tr>
|
||||||
<tr><th>Захват символьной</th><td><span :class="{ indicator_bad: statRx.sym_sync_lock === false, indicator_good: statRx.sym_sync_lock === true, indicator: true }"></span></td></tr>
|
|
||||||
<tr><th>Захват ФАПЧ</th><td><span :class="{ indicator_bad: statRx.afc_lock === false, indicator_good: statRx.afc_lock === true, indicator: true }"></span></td></tr>
|
|
||||||
<tr><th>Захват поиска по частоте</th><td><span :class="{ indicator_bad: statRx.freq_search_lock === false, indicator_good: statRx.freq_search_lock === true, indicator: true }"></span></td></tr>
|
|
||||||
<tr><th>Захват пакетной синхр.</th><td><span :class="{ indicator_bad: statRx.pkt_sync === false, indicator_good: statRx.pkt_sync === true, indicator: true }"></span></td></tr>
|
|
||||||
<tr><th>ОСШ/RSSI</th><td>{{ statRx.snr }} / {{ statRx.rssi }}</td></tr>
|
<tr><th>ОСШ/RSSI</th><td>{{ statRx.snr }} / {{ statRx.rssi }}</td></tr>
|
||||||
<tr><th>Modcod</th><td>{{ statRx.modcod }}</td></tr>
|
<tr><th>Частотная ошибка, Гц</th><td>{{ statRx.freqErrAcc }}</td></tr>
|
||||||
<tr><th>Размер кадра</th><td>{{ statRx.frameSizeNormal ? 'normal' : 'short' }}</td></tr>
|
|
||||||
<tr><th>Пилот-символы</th><td>{{ statRx.isPilots ? 'pilots' : 'no pilots' }}</td></tr>
|
|
||||||
<tr><th>Символьная ошибка</th><td>{{ statRx.symError }}</td></tr>
|
|
||||||
<tr><th>Грубая/точная част. ошибка, Гц</th><td>{{ statRx.freqErr }} / {{ statRx.freqErrAcc }}</td></tr>
|
|
||||||
<tr><th>Ур. входного сигнала</th><td>{{ statRx.inputSignalLevel }}</td></tr>
|
<tr><th>Ур. входного сигнала</th><td>{{ statRx.inputSignalLevel }}</td></tr>
|
||||||
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
|
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
|
||||||
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
|
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
|
||||||
@@ -75,7 +67,6 @@
|
|||||||
<tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
|
<tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
|
||||||
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
|
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
|
||||||
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
|
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
|
||||||
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<button class="action-button" @click="resetPacketsStatistics()"> Сброс статистики </button>
|
<button class="action-button" @click="resetPacketsStatistics()"> Сброс статистики </button>
|
||||||
@@ -85,7 +76,6 @@
|
|||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><th>Передача</th><td><span :class="{ indicator_bad: statTx.state === false, indicator_good: statTx.state === true, indicator: true }"></span></td></tr>
|
<tr><th>Передача</th><td><span :class="{ indicator_bad: statTx.state === false, indicator_good: statTx.state === true, indicator: true }"></span></td></tr>
|
||||||
<tr><th>Modcod</th><td>{{ statTx.modcod }}</td></tr>
|
|
||||||
<tr><th>Инф. скорость на передаче</th><td>{{ statTx.speedOnTxKbit }} кбит/с</td></tr>
|
<tr><th>Инф. скорость на передаче</th><td>{{ statTx.speedOnTxKbit }} кбит/с</td></tr>
|
||||||
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statTx.speedOnIifKbit }} кбит/с</td></tr>
|
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statTx.speedOnIifKbit }} кбит/с</td></tr>
|
||||||
<tr><th>Центральная частота</th><td>{{ statTx.centerFreq }} кГц</td></tr>
|
<tr><th>Центральная частота</th><td>{{ statTx.centerFreq }} кГц</td></tr>
|
||||||
@@ -127,6 +117,7 @@
|
|||||||
<option :value="true">Тест (CW)</option>
|
<option :value="true">Тест (CW)</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
<label><span>Ослабление, дБ</span><input type="number" v-model="paramRxtx.txAttenuation" min="-40" step="0.25"/></label>
|
||||||
<label>
|
<label>
|
||||||
<span>Входные данные</span>
|
<span>Входные данные</span>
|
||||||
<select v-model="paramRxtx.txIsTestInput">
|
<select v-model="paramRxtx.txIsTestInput">
|
||||||
@@ -135,8 +126,14 @@
|
|||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<h3>Параметры передачи</h3>
|
<h3>Параметры передачи</h3>
|
||||||
<label><span>Центральная частота, КГц</span><input type="number" v-model="paramRxtx.txCentralFreq" min="100000" max="6000000" step="0.01"/></label>
|
<label>
|
||||||
<label><span>Символьная скорость, Бод</span><input type="number" v-model="paramRxtx.txBaudrate" min="200000" max="54000000"/></label>
|
<span>Центральная частота, КГц</span>
|
||||||
|
<input type="text" v-model.lazy="paramRxtx.txCentralFreq" @change="e => paramRxtx.txCentralFreq = inputFormatNumber(inputFormatNumber(e.target.value, {min:70000,max:6000000,step:100}), {min:70000,max:6000000,step:100})"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span>Символьная скорость, Бод</span>
|
||||||
|
<input type="text" v-model.lazy="paramRxtx.txBaudrate" @change="e => paramRxtx.txBaudrate = inputFormatNumber(inputFormatNumber(e.target.value, {min:128000,max:30000000,}), {min:128000,max:30000000,})"/>
|
||||||
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<span>Roll-off</span>
|
<span>Roll-off</span>
|
||||||
<select v-model="paramRxtx.txRolloff">
|
<select v-model="paramRxtx.txRolloff">
|
||||||
@@ -146,10 +143,12 @@
|
|||||||
<option :value="150">0.15</option>
|
<option :value="150">0.15</option>
|
||||||
<option :value="200">0.20</option>
|
<option :value="200">0.20</option>
|
||||||
<option :value="250">0.25</option>
|
<option :value="250">0.25</option>
|
||||||
|
<option :value="300">0.30</option>
|
||||||
|
<option :value="350">0.35</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label><span>Коэф. расширения</span><input type="number" v-model="paramRxtx.txSpreadCoef" min="-1000" max="1000" step="0.01"/></label>
|
<label><span>Коэф. расширения</span><input type="number" v-model="paramRxtx.txSpreadCoef" min="8" max="1024" step="2"/></label>
|
||||||
<label><span>Ослабление, дБ</span><input type="number" v-model="paramRxtx.txAttenuation" min="-40" step="0.25"/></label>
|
<label><span>Кол-во пакетов на преамбулу</span><input type="number" v-model="paramRxtx.txFieldsDataPreamble" min="1" max="255" step="1"/></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
<h3>Авто-регулировка мощности</h3>
|
<h3>Авто-регулировка мощности</h3>
|
||||||
@@ -178,8 +177,14 @@
|
|||||||
<span>Инверсия спектра</span>
|
<span>Инверсия спектра</span>
|
||||||
<span class="toggle-input"><input type="checkbox" v-model="paramRxtx.rxSpectrumInversion" /><span class="slider"></span></span>
|
<span class="toggle-input"><input type="checkbox" v-model="paramRxtx.rxSpectrumInversion" /><span class="slider"></span></span>
|
||||||
</label>
|
</label>
|
||||||
<label><span>Центральная частота, КГц</span><input type="number" v-model="paramRxtx.rxCentralFreq" min="100000" max="6000000" step="0.01"/></label>
|
<label>
|
||||||
<label><span>Символьная скорость, Бод</span><input type="number" v-model="paramRxtx.rxBaudrate" min="200000" max="54000000"/></label>
|
<span>Центральная частота, КГц</span>
|
||||||
|
<input type="text" v-model.lazy="paramRxtx.rxCentralFreq" @change="e => paramRxtx.rxCentralFreq = inputFormatNumber(inputFormatNumber(e.target.value, {min:70000,max:6000000,step:100}), {min:70000,max:6000000,step:100})"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span>Символьная скорость, Бод</span>
|
||||||
|
<input type="text" v-model.lazy="paramRxtx.rxBaudrate" @change="e => paramRxtx.rxBaudrate = inputFormatNumber(inputFormatNumber(e.target.value, {min:128000,max:30000000,}), {min:128000,max:30000000,})"/>
|
||||||
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<span>Roll-off</span>
|
<span>Roll-off</span>
|
||||||
<select v-model="paramRxtx.rxRolloff">
|
<select v-model="paramRxtx.rxRolloff">
|
||||||
@@ -189,9 +194,13 @@
|
|||||||
<option :value="150">0.15</option>
|
<option :value="150">0.15</option>
|
||||||
<option :value="200">0.20</option>
|
<option :value="200">0.20</option>
|
||||||
<option :value="250">0.25</option>
|
<option :value="250">0.25</option>
|
||||||
|
<option :value="300">0.30</option>
|
||||||
|
<option :value="350">0.35</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label><span>Коэф. расширения</span><input type="number" v-model="paramRxtx.rxSpreadCoef" min="-1000" max="1000" step="0.01"/></label>
|
<label><span>Коэф. расширения</span><input type="number" v-model="paramRxtx.rxSpreadCoef" min="8" max="1024" step="2"/></label>
|
||||||
|
<label><span>Порог коррелятора</span><input type="number" v-model="paramRxtx.rxFftShift" min="256" max="4096" step="1"/></label>
|
||||||
|
<label><span>Кол-во пакетов на преамбулу</span><input type="number" v-model="paramRxtx.rxFieldsDataPreamble" min="1" max="255" step="1"/></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="action-button" @click="settingsSubmitRxtx()">Сохранить <span class="submit-spinner" v-show="submitStatus.rxtx"></span></button>
|
<button class="action-button" @click="settingsSubmitRxtx()">Сохранить <span class="submit-spinner" v-show="submitStatus.rxtx"></span></button>
|
||||||
@@ -351,12 +360,13 @@
|
|||||||
txEn: false,
|
txEn: false,
|
||||||
txAutoStart: false,
|
txAutoStart: false,
|
||||||
txModulatorIsTest: false,
|
txModulatorIsTest: false,
|
||||||
txIsTestInput: false,
|
|
||||||
txCentralFreq: 100000,
|
|
||||||
txBaudrate: 200000,
|
|
||||||
txRolloff: 20,
|
|
||||||
txSpreadCoef: -1000,
|
|
||||||
txAttenuation: -40,
|
txAttenuation: -40,
|
||||||
|
txIsTestInput: false,
|
||||||
|
txCentralFreq: 0,
|
||||||
|
txBaudrate: 0,
|
||||||
|
txRolloff: 20,
|
||||||
|
txSpreadCoef: 8,
|
||||||
|
txFieldsDataPreamble: 1,
|
||||||
aupcEn: false,
|
aupcEn: false,
|
||||||
aupcMinAttenuation: 0,
|
aupcMinAttenuation: 0,
|
||||||
aupcMaxAttenuation: 0,
|
aupcMaxAttenuation: 0,
|
||||||
@@ -364,10 +374,12 @@
|
|||||||
rxAgcEn: false,
|
rxAgcEn: false,
|
||||||
rxManualGain: -40,
|
rxManualGain: -40,
|
||||||
rxSpectrumInversion: false,
|
rxSpectrumInversion: false,
|
||||||
rxCentralFreq: 100000,
|
rxCentralFreq: 0,
|
||||||
rxBaudrate: 200000,
|
rxBaudrate: 0,
|
||||||
rxRolloff: 20,
|
rxRolloff: 20,
|
||||||
rxSpreadCoef: -1000,
|
rxSpreadCoef: 8,
|
||||||
|
rxFftShift: 256,
|
||||||
|
rxFieldsDataPreamble: 1,
|
||||||
},
|
},
|
||||||
paramBuclnb: {
|
paramBuclnb: {
|
||||||
bucRefClk10M: false,
|
bucRefClk10M: false,
|
||||||
@@ -501,12 +513,13 @@
|
|||||||
"txEn": this.paramRxtx.txEn,
|
"txEn": this.paramRxtx.txEn,
|
||||||
"txAutoStart": this.paramRxtx.txAutoStart,
|
"txAutoStart": this.paramRxtx.txAutoStart,
|
||||||
"txModulatorIsTest": this.paramRxtx.txModulatorIsTest,
|
"txModulatorIsTest": this.paramRxtx.txModulatorIsTest,
|
||||||
|
"txAttenuation": this.paramRxtx.txAttenuation,
|
||||||
"txIsTestInput": this.paramRxtx.txIsTestInput,
|
"txIsTestInput": this.paramRxtx.txIsTestInput,
|
||||||
"txCentralFreq": this.paramRxtx.txCentralFreq,
|
"txCentralFreq": parseFloat(this.paramRxtx.txCentralFreq.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"txBaudrate": this.paramRxtx.txBaudrate,
|
"txBaudrate": parseFloat(this.paramRxtx.txBaudrate.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"txRolloff": this.paramRxtx.txRolloff,
|
"txRolloff": this.paramRxtx.txRolloff,
|
||||||
"txSpreadCoef": this.paramRxtx.txSpreadCoef,
|
"txSpreadCoef": this.paramRxtx.txSpreadCoef,
|
||||||
"txAttenuation": this.paramRxtx.txAttenuation,
|
"txFieldsDataPreamble": this.paramRxtx.txFieldsDataPreamble,
|
||||||
"aupcEn": this.paramRxtx.aupcEn,
|
"aupcEn": this.paramRxtx.aupcEn,
|
||||||
"aupcMinAttenuation": this.paramRxtx.aupcMinAttenuation,
|
"aupcMinAttenuation": this.paramRxtx.aupcMinAttenuation,
|
||||||
"aupcMaxAttenuation": this.paramRxtx.aupcMaxAttenuation,
|
"aupcMaxAttenuation": this.paramRxtx.aupcMaxAttenuation,
|
||||||
@@ -514,10 +527,12 @@
|
|||||||
"rxAgcEn": this.paramRxtx.rxAgcEn,
|
"rxAgcEn": this.paramRxtx.rxAgcEn,
|
||||||
"rxManualGain": this.paramRxtx.rxManualGain,
|
"rxManualGain": this.paramRxtx.rxManualGain,
|
||||||
"rxSpectrumInversion": this.paramRxtx.rxSpectrumInversion,
|
"rxSpectrumInversion": this.paramRxtx.rxSpectrumInversion,
|
||||||
"rxCentralFreq": this.paramRxtx.rxCentralFreq,
|
"rxCentralFreq": parseFloat(this.paramRxtx.rxCentralFreq.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"rxBaudrate": this.paramRxtx.rxBaudrate,
|
"rxBaudrate": parseFloat(this.paramRxtx.rxBaudrate.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"rxRolloff": this.paramRxtx.rxRolloff,
|
"rxRolloff": this.paramRxtx.rxRolloff,
|
||||||
"rxSpreadCoef": this.paramRxtx.rxSpreadCoef,
|
"rxSpreadCoef": this.paramRxtx.rxSpreadCoef,
|
||||||
|
"rxFftShift": this.paramRxtx.rxFftShift,
|
||||||
|
"rxFieldsDataPreamble": this.paramRxtx.rxFieldsDataPreamble,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.submitStatus.rxtx = true
|
this.submitStatus.rxtx = true
|
||||||
@@ -569,12 +584,13 @@
|
|||||||
this.paramRxtx.txEn = vals["settings"]["rxtx"]["txEn"]
|
this.paramRxtx.txEn = vals["settings"]["rxtx"]["txEn"]
|
||||||
this.paramRxtx.txAutoStart = vals["settings"]["rxtx"]["txAutoStart"]
|
this.paramRxtx.txAutoStart = vals["settings"]["rxtx"]["txAutoStart"]
|
||||||
this.paramRxtx.txModulatorIsTest = vals["settings"]["rxtx"]["txModulatorIsTest"]
|
this.paramRxtx.txModulatorIsTest = vals["settings"]["rxtx"]["txModulatorIsTest"]
|
||||||
|
this.paramRxtx.txAttenuation = vals["settings"]["rxtx"]["txAttenuation"]
|
||||||
this.paramRxtx.txIsTestInput = vals["settings"]["rxtx"]["txIsTestInput"]
|
this.paramRxtx.txIsTestInput = vals["settings"]["rxtx"]["txIsTestInput"]
|
||||||
this.paramRxtx.txCentralFreq = vals["settings"]["rxtx"]["txCentralFreq"]
|
this.paramRxtx.txCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["txCentralFreq"], {min:70000,max:6000000,step:100})
|
||||||
this.paramRxtx.txBaudrate = vals["settings"]["rxtx"]["txBaudrate"]
|
this.paramRxtx.txBaudrate = this.inputFormatNumber(vals["settings"]["rxtx"]["txBaudrate"], {min:128000,max:30000000,})
|
||||||
this.paramRxtx.txRolloff = vals["settings"]["rxtx"]["txRolloff"]
|
this.paramRxtx.txRolloff = vals["settings"]["rxtx"]["txRolloff"]
|
||||||
this.paramRxtx.txSpreadCoef = vals["settings"]["rxtx"]["txSpreadCoef"]
|
this.paramRxtx.txSpreadCoef = vals["settings"]["rxtx"]["txSpreadCoef"]
|
||||||
this.paramRxtx.txAttenuation = vals["settings"]["rxtx"]["txAttenuation"]
|
this.paramRxtx.txFieldsDataPreamble = vals["settings"]["rxtx"]["txFieldsDataPreamble"]
|
||||||
this.paramRxtx.aupcEn = vals["settings"]["rxtx"]["aupcEn"]
|
this.paramRxtx.aupcEn = vals["settings"]["rxtx"]["aupcEn"]
|
||||||
this.paramRxtx.aupcMinAttenuation = vals["settings"]["rxtx"]["aupcMinAttenuation"]
|
this.paramRxtx.aupcMinAttenuation = vals["settings"]["rxtx"]["aupcMinAttenuation"]
|
||||||
this.paramRxtx.aupcMaxAttenuation = vals["settings"]["rxtx"]["aupcMaxAttenuation"]
|
this.paramRxtx.aupcMaxAttenuation = vals["settings"]["rxtx"]["aupcMaxAttenuation"]
|
||||||
@@ -582,10 +598,12 @@
|
|||||||
this.paramRxtx.rxAgcEn = vals["settings"]["rxtx"]["rxAgcEn"]
|
this.paramRxtx.rxAgcEn = vals["settings"]["rxtx"]["rxAgcEn"]
|
||||||
this.paramRxtx.rxManualGain = vals["settings"]["rxtx"]["rxManualGain"]
|
this.paramRxtx.rxManualGain = vals["settings"]["rxtx"]["rxManualGain"]
|
||||||
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxtx"]["rxSpectrumInversion"]
|
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxtx"]["rxSpectrumInversion"]
|
||||||
this.paramRxtx.rxCentralFreq = vals["settings"]["rxtx"]["rxCentralFreq"]
|
this.paramRxtx.rxCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["rxCentralFreq"], {min:70000,max:6000000,step:100})
|
||||||
this.paramRxtx.rxBaudrate = vals["settings"]["rxtx"]["rxBaudrate"]
|
this.paramRxtx.rxBaudrate = this.inputFormatNumber(vals["settings"]["rxtx"]["rxBaudrate"], {min:128000,max:30000000,})
|
||||||
this.paramRxtx.rxRolloff = vals["settings"]["rxtx"]["rxRolloff"]
|
this.paramRxtx.rxRolloff = vals["settings"]["rxtx"]["rxRolloff"]
|
||||||
this.paramRxtx.rxSpreadCoef = vals["settings"]["rxtx"]["rxSpreadCoef"]
|
this.paramRxtx.rxSpreadCoef = vals["settings"]["rxtx"]["rxSpreadCoef"]
|
||||||
|
this.paramRxtx.rxFftShift = vals["settings"]["rxtx"]["rxFftShift"]
|
||||||
|
this.paramRxtx.rxFieldsDataPreamble = vals["settings"]["rxtx"]["rxFieldsDataPreamble"]
|
||||||
},
|
},
|
||||||
updateBuclnbSettings(vals) {
|
updateBuclnbSettings(vals) {
|
||||||
this.submitStatus.buclnb = false
|
this.submitStatus.buclnb = false
|
||||||
|
@@ -173,16 +173,16 @@
|
|||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
<label>
|
<label>
|
||||||
<span>Метод расчета задержки</span>
|
<span>Метод расчета задержки</span>
|
||||||
<select v-model="paramDpdi.dpdiIsPositional">
|
<select v-model="paramDpdi.isPositional">
|
||||||
<option :value="true">Позиционированием</option>
|
<option :value="true">Позиционированием</option>
|
||||||
<option :value="false">Окном задержки</option>
|
<option :value="false">Окном задержки</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<h2 v-show="paramDpdi.dpdiIsPositional === true">Настройки позиционирования</h2>
|
<h2 v-show="paramDpdi.isPositional === true">Настройки позиционирования</h2>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.positionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.positionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.dpdiPositionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.isPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.positionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramDpdi.dpdiIsPositional === false"><span>Задержка до спутника, мс</span><input type="number" v-model="paramDpdi.dpdiDelay" max="400" step="0.1"/></label>
|
<label v-show="paramDpdi.isPositional === false"><span>Задержка до спутника, мс</span><input type="number" v-model="paramDpdi.delay" max="400" step="0.1"/></label>
|
||||||
</div>
|
</div>
|
||||||
<button class="action-button" @click="settingsSubmitDpdi()">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
<button class="action-button" @click="settingsSubmitDpdi()">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
||||||
<h2>Настройки питания и опорного генератора</h2>
|
<h2>Настройки питания и опорного генератора</h2>
|
||||||
@@ -200,6 +200,10 @@
|
|||||||
<option :value="24">24В</option>
|
<option :value="24">24В</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
<label>
|
||||||
|
<span>Частота LO, кГц</span>
|
||||||
|
<input type="text" v-model.lazy="paramBuclnb.bucLoKhz" @change="e => paramBuclnb.bucLoKhz = inputFormatNumber(inputFormatNumber(e.target.value, {max:40000000,step:1}), {max:40000000,step:1})"/>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
<h3>Настройки LNB</h3>
|
<h3>Настройки LNB</h3>
|
||||||
@@ -216,6 +220,10 @@
|
|||||||
<option :value="24">24В</option>
|
<option :value="24">24В</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
<label>
|
||||||
|
<span>Частота LO, кГц</span>
|
||||||
|
<input type="text" v-model.lazy="paramBuclnb.lnbLoKhz" @change="e => paramBuclnb.lnbLoKhz = inputFormatNumber(inputFormatNumber(e.target.value, {max:40000000,step:1}), {max:40000000,step:1})"/>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
<h3>Сервисные настройки</h3>
|
<h3>Сервисные настройки</h3>
|
||||||
@@ -233,10 +241,6 @@
|
|||||||
</div> <div class="tabs-body-item" v-if="activeTab === 'admin' && settingFetchComplete">
|
</div> <div class="tabs-body-item" v-if="activeTab === 'admin' && settingFetchComplete">
|
||||||
<h2>Настройки сети</h2>
|
<h2>Настройки сети</h2>
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
<label>
|
|
||||||
<span>Пароль для входа в сеть ЦЗС</span>
|
|
||||||
<input v-model="paramNetwork.cesPassword" type="text">
|
|
||||||
</label>
|
|
||||||
<h3>Настройки интерфейса управления</h3>
|
<h3>Настройки интерфейса управления</h3>
|
||||||
<label>
|
<label>
|
||||||
<span>Интерфейс управления (a.d.d.r/mask)</span>
|
<span>Интерфейс управления (a.d.d.r/mask)</span>
|
||||||
@@ -269,6 +273,14 @@
|
|||||||
<button class="action-button" @click="dumpAllSettings()">Сохранить бекап конфигурации</button>
|
<button class="action-button" @click="dumpAllSettings()">Сохранить бекап конфигурации</button>
|
||||||
<button class="dangerous-button" @click="restoreAllSettings()">Восстановить бекап конфигурации</button>
|
<button class="dangerous-button" @click="restoreAllSettings()">Восстановить бекап конфигурации</button>
|
||||||
</div>
|
</div>
|
||||||
|
<h2>Вход в сеть ЦЗС</h2>
|
||||||
|
<div class="settings-set-container statistics-container">
|
||||||
|
<label>
|
||||||
|
<span>Хеш-строка пароля (выдается оператором NMS)</span>
|
||||||
|
<input v-model="cesPasswordValue" type="text">
|
||||||
|
</label>
|
||||||
|
<button class="action-button" @click="settingsPerformSetCesPassword()">Установить пароль<span class="submit-spinner" v-show="submitStatus.cesPassword"></span></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h2>Обновление ПО</h2>
|
<h2>Обновление ПО</h2>
|
||||||
<div class="settings-set-container statistics-container">
|
<div class="settings-set-container statistics-container">
|
||||||
@@ -327,9 +339,11 @@
|
|||||||
firmwareUpload: false,
|
firmwareUpload: false,
|
||||||
firmwareUpgrade: false,
|
firmwareUpgrade: false,
|
||||||
firmwareUpgradeOta: false,
|
firmwareUpgradeOta: false,
|
||||||
|
cesPassword: false,
|
||||||
// когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю
|
// когда модем перезагружается, тут должен быть счетчик. Направление счета - к нулю
|
||||||
modemReboot: null
|
modemReboot: null
|
||||||
},
|
},
|
||||||
|
cesPasswordValue: '',
|
||||||
|
|
||||||
// ========== include from 'common/all-params-data.js.j2'
|
// ========== include from 'common/all-params-data.js.j2'
|
||||||
paramRxtx: {
|
paramRxtx: {
|
||||||
@@ -347,20 +361,21 @@
|
|||||||
paramBuclnb: {
|
paramBuclnb: {
|
||||||
bucRefClk10M: false,
|
bucRefClk10M: false,
|
||||||
bucPowering: 0,
|
bucPowering: 0,
|
||||||
|
bucLoKhz: 0,
|
||||||
lnbRefClk10M: false,
|
lnbRefClk10M: false,
|
||||||
lnbPowering: 0,
|
lnbPowering: 0,
|
||||||
|
lnbLoKhz: 0,
|
||||||
srvRefClk10M: false,
|
srvRefClk10M: false,
|
||||||
bucLnbAutoStart: false,
|
bucLnbAutoStart: false,
|
||||||
},
|
},
|
||||||
paramDpdi: {
|
paramDpdi: {
|
||||||
dpdiIsPositional: true,
|
isPositional: true,
|
||||||
dpdiPositionStationLatitude: -180,
|
positionStationLatitude: -180,
|
||||||
dpdiPositionStationLongitude: -180,
|
positionStationLongitude: -180,
|
||||||
dpdiPositionSatelliteLongitude: -180,
|
positionSatelliteLongitude: -180,
|
||||||
dpdiDelay: 0,
|
delay: 0,
|
||||||
},
|
},
|
||||||
paramNetwork: {
|
paramNetwork: {
|
||||||
cesPassword: null,
|
|
||||||
managementIp: null,
|
managementIp: null,
|
||||||
serverName: null,
|
serverName: null,
|
||||||
},
|
},
|
||||||
@@ -505,8 +520,10 @@
|
|||||||
let query = {
|
let query = {
|
||||||
"bucRefClk10M": this.paramBuclnb.bucRefClk10M,
|
"bucRefClk10M": this.paramBuclnb.bucRefClk10M,
|
||||||
"bucPowering": this.paramBuclnb.bucPowering,
|
"bucPowering": this.paramBuclnb.bucPowering,
|
||||||
|
"bucLoKhz": parseFloat(this.paramBuclnb.bucLoKhz.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"lnbRefClk10M": this.paramBuclnb.lnbRefClk10M,
|
"lnbRefClk10M": this.paramBuclnb.lnbRefClk10M,
|
||||||
"lnbPowering": this.paramBuclnb.lnbPowering,
|
"lnbPowering": this.paramBuclnb.lnbPowering,
|
||||||
|
"lnbLoKhz": parseFloat(this.paramBuclnb.lnbLoKhz.replace(/[^0-9,.]/g, '').replace(',', '.')),
|
||||||
"srvRefClk10M": this.paramBuclnb.srvRefClk10M,
|
"srvRefClk10M": this.paramBuclnb.srvRefClk10M,
|
||||||
"bucLnbAutoStart": this.paramBuclnb.bucLnbAutoStart,
|
"bucLnbAutoStart": this.paramBuclnb.bucLnbAutoStart,
|
||||||
}
|
}
|
||||||
@@ -521,11 +538,11 @@
|
|||||||
if (this.submitStatus.dpdi) { return }
|
if (this.submitStatus.dpdi) { return }
|
||||||
|
|
||||||
let query = {
|
let query = {
|
||||||
"dpdiIsPositional": this.paramDpdi.dpdiIsPositional,
|
"isPositional": this.paramDpdi.isPositional,
|
||||||
"dpdiPositionStationLatitude": this.paramDpdi.dpdiPositionStationLatitude,
|
"positionStationLatitude": this.paramDpdi.positionStationLatitude,
|
||||||
"dpdiPositionStationLongitude": this.paramDpdi.dpdiPositionStationLongitude,
|
"positionStationLongitude": this.paramDpdi.positionStationLongitude,
|
||||||
"dpdiPositionSatelliteLongitude": this.paramDpdi.dpdiPositionSatelliteLongitude,
|
"positionSatelliteLongitude": this.paramDpdi.positionSatelliteLongitude,
|
||||||
"dpdiDelay": this.paramDpdi.dpdiDelay,
|
"delay": this.paramDpdi.delay,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.submitStatus.dpdi = true
|
this.submitStatus.dpdi = true
|
||||||
@@ -539,7 +556,6 @@
|
|||||||
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
|
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
|
||||||
|
|
||||||
let query = {
|
let query = {
|
||||||
"cesPassword": this.paramNetwork.cesPassword,
|
|
||||||
"managementIp": this.paramNetwork.managementIp,
|
"managementIp": this.paramNetwork.managementIp,
|
||||||
"serverName": this.paramNetwork.serverName,
|
"serverName": this.paramNetwork.serverName,
|
||||||
}
|
}
|
||||||
@@ -568,22 +584,23 @@
|
|||||||
this.submitStatus.buclnb = false
|
this.submitStatus.buclnb = false
|
||||||
this.paramBuclnb.bucRefClk10M = vals["settings"]["buclnb"]["bucRefClk10M"]
|
this.paramBuclnb.bucRefClk10M = vals["settings"]["buclnb"]["bucRefClk10M"]
|
||||||
this.paramBuclnb.bucPowering = vals["settings"]["buclnb"]["bucPowering"]
|
this.paramBuclnb.bucPowering = vals["settings"]["buclnb"]["bucPowering"]
|
||||||
|
this.paramBuclnb.bucLoKhz = this.inputFormatNumber(vals["settings"]["buclnb"]["bucLoKhz"], {max:40000000,step:1})
|
||||||
this.paramBuclnb.lnbRefClk10M = vals["settings"]["buclnb"]["lnbRefClk10M"]
|
this.paramBuclnb.lnbRefClk10M = vals["settings"]["buclnb"]["lnbRefClk10M"]
|
||||||
this.paramBuclnb.lnbPowering = vals["settings"]["buclnb"]["lnbPowering"]
|
this.paramBuclnb.lnbPowering = vals["settings"]["buclnb"]["lnbPowering"]
|
||||||
|
this.paramBuclnb.lnbLoKhz = this.inputFormatNumber(vals["settings"]["buclnb"]["lnbLoKhz"], {max:40000000,step:1})
|
||||||
this.paramBuclnb.srvRefClk10M = vals["settings"]["buclnb"]["srvRefClk10M"]
|
this.paramBuclnb.srvRefClk10M = vals["settings"]["buclnb"]["srvRefClk10M"]
|
||||||
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["buclnb"]["bucLnbAutoStart"]
|
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["buclnb"]["bucLnbAutoStart"]
|
||||||
},
|
},
|
||||||
updateDpdiSettings(vals) {
|
updateDpdiSettings(vals) {
|
||||||
this.submitStatus.dpdi = false
|
this.submitStatus.dpdi = false
|
||||||
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdi"]["dpdiIsPositional"]
|
this.paramDpdi.isPositional = vals["settings"]["dpdi"]["isPositional"]
|
||||||
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdi"]["dpdiPositionStationLatitude"]
|
this.paramDpdi.positionStationLatitude = vals["settings"]["dpdi"]["positionStationLatitude"]
|
||||||
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdi"]["dpdiPositionStationLongitude"]
|
this.paramDpdi.positionStationLongitude = vals["settings"]["dpdi"]["positionStationLongitude"]
|
||||||
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdi"]["dpdiPositionSatelliteLongitude"]
|
this.paramDpdi.positionSatelliteLongitude = vals["settings"]["dpdi"]["positionSatelliteLongitude"]
|
||||||
this.paramDpdi.dpdiDelay = vals["settings"]["dpdi"]["dpdiDelay"]
|
this.paramDpdi.delay = vals["settings"]["dpdi"]["delay"]
|
||||||
},
|
},
|
||||||
updateNetworkSettings(vals) {
|
updateNetworkSettings(vals) {
|
||||||
this.submitStatus.network = false
|
this.submitStatus.network = false
|
||||||
this.paramNetwork.cesPassword = vals["settings"]["network"]["cesPassword"]
|
|
||||||
this.paramNetwork.managementIp = vals["settings"]["network"]["managementIp"]
|
this.paramNetwork.managementIp = vals["settings"]["network"]["managementIp"]
|
||||||
this.paramNetwork.serverName = vals["settings"]["network"]["serverName"]
|
this.paramNetwork.serverName = vals["settings"]["network"]["serverName"]
|
||||||
},
|
},
|
||||||
@@ -747,6 +764,22 @@
|
|||||||
}
|
}
|
||||||
this.submitStatus.firmwareUpgradeOta = false
|
this.submitStatus.firmwareUpgradeOta = false
|
||||||
},
|
},
|
||||||
|
async settingsPerformSetCesPassword() {
|
||||||
|
if (this.submitStatus.cesPassword) { return }
|
||||||
|
this.submitStatus.cesPassword = true
|
||||||
|
try {
|
||||||
|
await fetch('/api/set/cesPassword', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify({'password': this.cesPasswordValue})
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
console.log("failed to perform set CES password: ", e)
|
||||||
|
}
|
||||||
|
this.submitStatus.cesPassword = false
|
||||||
|
},
|
||||||
|
|
||||||
doModemReboot() {
|
doModemReboot() {
|
||||||
if (this.submitStatus.modemReboot !== null) {
|
if (this.submitStatus.modemReboot !== null) {
|
||||||
|
Reference in New Issue
Block a user