Compare commits

...

3 Commits

16 changed files with 609 additions and 450 deletions

@ -1 +1 @@
Subproject commit 76d6dcdb08d3602ad33f2236a60cc78841b5bdc5
Subproject commit 92fcb8ab674eb592b6237a7b82af2dfb1a0ae00c

View File

@ -316,16 +316,6 @@
]
}
],
"tcpaccel": [
{"widget": "h2", "label": "Настройки TCP-акселерации"},
{
"widget": "settings-container",
"childs": [
{"widget": "checkbox", "label": "Активировать акселерацию", "name": "accelEn"},
{"widget": "number", "label": "Максимальное количество соединений", "name": "accelMaxConnections", "min": 0, "step": 1, "max": 4000}
]
}
],
"network": [
{"widget": "h2", "label": "Настройки сети"},
{

View File

@ -24,7 +24,7 @@
update{{ g['group'] | title }}Settings(vals) {
this.submitStatus.{{ g['group'] }} = false
{% for p in g['params'] %}
{{ build_setter_js(g['group'], p, "vals[\"settings\"][\"" ~ p['name'] ~ "\"]") }}
{{ build_setter_js(g['group'], p, "vals[\"settings\"][\"" ~ g['group'] ~ "\"][\"" ~ p['name'] ~ "\"]") }}
{% endfor %}
},
{% endfor %}

View File

@ -18,69 +18,68 @@
}
this.lastUpdateTime = new Date();
this.initState = vals["mainState"]["initState"]
this.initState = vals["state"]["initState"]
this.testState = vals["state"]["testState"]
{% if modem == 'scpc' %}
this.isCinC = vals["mainState"]["isCinC"]
this.isCinC = vals["state"]["isCinC"]
{% endif %}
this.statRx.state = vals["mainState"]["rx.state"]
this.statRx.sym_sync_lock = vals["mainState"]["rx.sym_sync_lock"]
this.statRx.freq_search_lock = vals["mainState"]["rx.freq_search_lock"]
this.statRx.afc_lock = vals["mainState"]["rx.afc_lock"]
this.statRx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
this.statRx.snr = vals["mainState"]["rx.snr"]
this.statRx.rssi = vals["mainState"]["rx.rssi"]
this.statRx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
this.statRx.frameSizeNormal = vals["mainState"]["rx.frameSizeNormal"]
this.statRx.isPilots = vals["mainState"]["rx.isPilots"]
this.statRx.symError = vals["mainState"]["rx.symError"]
this.statRx.freqErr = vals["mainState"]["rx.freqErr"]
this.statRx.freqErrAcc = vals["mainState"]["rx.freqErrAcc"]
this.statRx.inputSignalLevel = vals["mainState"]["rx.inputSignalLevel"]
this.statRx.pllError = vals["mainState"]["rx.pllError"]
this.statRx.speedOnRxKbit = vals["mainState"]["rx.speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"]
this.statRx.packetsOk = vals["mainState"]["rx.packetsOk"]
this.statRx.packetsBad = vals["mainState"]["rx.packetsBad"]
this.statRx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
this.statRx.state = vals["state"]["rx"]["state"]
this.statRx.sym_sync_lock = vals["state"]["rx"]["sym_sync_lock"]
this.statRx.freq_search_lock = vals["state"]["rx"]["freq_search_lock"]
this.statRx.afc_lock = vals["state"]["rx"]["afc_lock"]
this.statRx.pkt_sync = vals["state"]["rx"]["pkt_sync"]
this.statRx.snr = vals["state"]["rx"]["snr"]
this.statRx.rssi = vals["state"]["rx"]["rssi"]
this.statRx.modcod = modcodToStr(vals["state"]["rx"]["modcod"])
this.statRx.frameSizeNormal = vals["state"]["rx"]["frameSizeNormal"]
this.statRx.isPilots = vals["state"]["rx"]["isPilots"]
this.statRx.symError = vals["state"]["rx"]["symError"]
this.statRx.freqErr = vals["state"]["rx"]["freqErr"]
this.statRx.freqErrAcc = vals["state"]["rx"]["freqErrAcc"]
this.statRx.inputSignalLevel = vals["state"]["rx"]["inputSignalLevel"]
this.statRx.pllError = vals["state"]["rx"]["pllError"]
this.statRx.speedOnRxKbit = vals["state"]["rx"]["speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["state"]["rx"]["speedOnIifKbit"]
this.statRx.packetsOk = vals["state"]["rx"]["packetsOk"]
this.statRx.packetsBad = vals["state"]["rx"]["packetsBad"]
this.statRx.packetsDummy = vals["state"]["rx"]["packetsDummy"]
{% if modem == 'scpc' %}
this.statTx.state = vals["mainState"]["tx.state"]
this.statTx.snr = vals["mainState"]["tx.snr"]
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.statTx.frameSizeNormal = vals["mainState"]["tx.frameSizeNormal"]
this.statTx.isPilots = vals["mainState"]["tx.isPilots"]
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.statTx.state = vals["state"]["tx"]["state"]
this.statTx.snr = vals["state"]["tx"]["snr"]
this.statTx.modcod = modcodToStr(vals["state"]["tx"]["modcod"])
this.statTx.frameSizeNormal = vals["state"]["tx"]["frameSizeNormal"]
this.statTx.isPilots = vals["state"]["tx"]["isPilots"]
this.statTx.speedOnTxKbit = vals["state"]["tx"]["speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["state"]["tx"]["speedOnIifKbit"]
this.statCinc.occ = vals["mainState"]["cinc.occ"]
this.statCinc.correlator = vals["mainState"]["cinc.correlator"]
this.statCinc.correlatorFails = vals["mainState"]["cinc.correlatorFails"]
this.statCinc.freqErr = vals["mainState"]["cinc.freqErr"]
this.statCinc.freqErrAcc = vals["mainState"]["cinc.freqErrAcc"]
this.statCinc.channelDelay = vals["mainState"]["cinc.channelDelay"]
this.statCinc.occ = vals["state"]["cinc"]["occ"]
this.statCinc.correlator = vals["state"]["cinc"]["correlator"]
this.statCinc.correlatorFails = vals["state"]["cinc"]["correlatorFails"]
this.statCinc.freqErr = vals["state"]["cinc"]["freqErr"]
this.statCinc.freqErrAcc = vals["state"]["cinc"]["freqErrAcc"]
this.statCinc.channelDelay = vals["state"]["cinc"]["channelDelay"]
{% else %}
this.statTx.state = vals["mainState"]["tx.state"]
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.statTx.centerFreq = vals["mainState"]["tx.centerFreq"]
this.statTx.symSpeed = vals["mainState"]["tx.symSpeed"]
this.statTx.state = vals["state"]["tx"]["state"]
this.statTx.modcod = modcodToStr(vals["state"]["tx"]["modcod"])
this.statTx.speedOnTxKbit = vals["state"]["tx"]["speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["state"]["tx"]["speedOnIifKbit"]
this.statTx.centerFreq = vals["state"]["tx"]["centerFreq"]
this.statTx.symSpeed = vals["state"]["tx"]["symSpeed"]
{% endif %}
this.statDevice.adrv = vals["mainState"]["device.adrv"]
this.statDevice.zynq = vals["mainState"]["device.zynq"]
this.statDevice.fpga = vals["mainState"]["device.fpga"]
this.statDevice.adrv = vals["state"]["device"]["adrv"]
this.statDevice.zynq = vals["state"]["device"]["zynq"]
this.statDevice.fpga = vals["state"]["device"]["fpga"]
{% if modem == 'tdma' %}
this.statDevice.upgradeStatus = vals["mainState"]["device.upgradeStatus"]
this.statDevice.upgradePercent = vals["mainState"]["device.upgradePercent"]
this.statDevice.upgradeImage = vals["mainState"]["device.upgradeImage"]
this.statDevice.upgradeStatus = vals["state"]["device"]["upgradeStatus"]
this.statDevice.upgradePercent = vals["state"]["device"]["upgradePercent"]
this.statDevice.upgradeImage = vals["state"]["device"]["upgradeImage"]
{% endif %}
this.testState = vals["mainState"]["testState"]
// аптайм приходит в секундах, надо преобразовать его в человеко-читаемый вид
let uptime = vals["sysinfo"]["uptime"]
let uptime = vals["state"]["device"]["uptime"]
if (uptime) {
let secs = uptime % 60; uptime = Math.floor(uptime / 60)
let mins = uptime % 60; uptime = Math.floor(uptime / 60)
@ -92,11 +91,11 @@
} else {
this.statOs.uptime = '?'
}
this.statOs.load1 = vals["sysinfo"]["load1min"]
this.statOs.load5 = vals["sysinfo"]["load5min"]
this.statOs.load15 = vals["sysinfo"]["load15min"]
this.statOs.totalram = vals["sysinfo"]["totalram"]
this.statOs.freeram = vals["sysinfo"]["freeram"]
this.statOs.load1 = vals["state"]["device"]["load1min"]
this.statOs.load5 = vals["state"]["device"]["load5min"]
this.statOs.load15 = vals["state"]["device"]["load15min"]
this.statOs.totalram = vals["state"]["device"]["totalram"]
this.statOs.freeram = vals["state"]["device"]["freeram"]
},
resetPacketsStatistics() {

View File

@ -44,15 +44,17 @@
}
let query = {
"en": this.paramQos.en,
"rt1": [],
"rt2": [],
"rt3": [],
"cd": []
"profile": {
"rt1": [],
"rt2": [],
"rt3": [],
"cd": []
}
}
for (let i = 0; i < this.paramQos.rt1.length; i++) { query.rt1.push(_translateQosClass('rt', this.paramQos.rt1[i])) }
for (let i = 0; i < this.paramQos.rt2.length; i++) { query.rt2.push(_translateQosClass('rt', this.paramQos.rt2[i])) }
for (let i = 0; i < this.paramQos.rt3.length; i++) { query.rt3.push(_translateQosClass('rt', this.paramQos.rt3[i])) }
for (let i = 0; i < this.paramQos.cd.length; i++) { query.cd.push(_translateQosClass('rt', this.paramQos.cd[i])) }
for (let i = 0; i < this.paramQos.rt1.length; i++) { query.profile.rt1.push(_translateQosClass('rt', this.paramQos.rt1[i])) }
for (let i = 0; i < this.paramQos.rt2.length; i++) { query.profile.rt2.push(_translateQosClass('rt', this.paramQos.rt2[i])) }
for (let i = 0; i < this.paramQos.rt3.length; i++) { query.profile.rt3.push(_translateQosClass('rt', this.paramQos.rt3[i])) }
for (let i = 0; i < this.paramQos.cd.length; i++) { query.profile.cd.push(_translateQosClass('rt', this.paramQos.cd[i])) }
//console.log(query)
fetch('/api/set/qos', {
@ -73,9 +75,9 @@
updateQosSettings(vals) {
this.submitStatusQos = false
this.paramQos.en = vals["settings"]["qosEnabled"]
this.paramQos.en = vals["settings"]["qos"]["en"]
const qosProfile = vals["settings"]["qosProfile"]
const qosProfile = vals["settings"]["qos"]["profile"]
if (qosProfile !== null && qosProfile !== undefined) {
this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length)
this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length)

View File

@ -235,11 +235,11 @@
try {
const fr = await fetch("/api/get/aboutFirmware")
const d = await fr.json()
this.about.firmwareVersion = d["fw.version"]
this.about.modemUid = d["fw.modemId"]
this.about.modemSn = d["fw.modemSn"]
this.about.macManagement = d["fw.macMang"]
this.about.macData = d["fw.macData"]
this.about.firmwareVersion = d["firmware"]["version"]
this.about.modemUid = d["firmware"]["modemId"]
this.about.modemSn = d["firmware"]["modemSn"]
this.about.macManagement = d["firmware"]["macMang"]
this.about.macData = d["firmware"]["macData"]
} catch (e) {
console.log('Ошибка загрузки версии ПО', e)
}

View File

@ -105,9 +105,12 @@ void api_driver::TerminalApiDaemon::run() {
#endif
// обновление статистики
{.uo = CpUpdatebleObject([this]() {
std::shared_lock _slock1(this->settingsMutex);
obj::TerminalState tmp(state);
_slock1.release();
obj::TerminalState tmp;
{
std::shared_lock _slock1(this->settingsMutex);
tmp = state;
}
tmp.updateCallback(cp);
std::lock_guard _slock2(this->settingsMutex);
@ -128,9 +131,11 @@ void api_driver::TerminalApiDaemon::run() {
}, CACHE_SETTINGS_UPDATE_MS), .updaterName = "updateRxTxSettings"},
#ifdef API_OBJECT_NETWORK_SETTINGS_ENABLE
{.uo = CpUpdatebleObject([this]() {
std::shared_lock _slock1(this->settingsMutex);
obj::TerminalNetworkSettings net(settingsNetwork);
_slock1.release();
obj::TerminalNetworkSettings net;
{
std::shared_lock _slock1(this->settingsMutex);
net = settingsNetwork;
}
net.updateCallback(cp);
std::lock_guard _slock2(this->settingsMutex);
@ -201,6 +206,51 @@ void api_driver::TerminalApiDaemon::getDeviceState(obj::TerminalDeviceState &des
dest = stateDev;
}
api_driver::obj::TerminalRxTxSettings api_driver::TerminalApiDaemon::getSettingsRxTx() {
obj::TerminalRxTxSettings s;
{
std::shared_lock _olock(this->settingsMutex);
s = settingsRxTx;
}
return s;
}
void api_driver::TerminalApiDaemon::setSettingsRxTx(obj::TerminalRxTxSettings &s) {
std::lock_guard _olock(settingsMutex);
settingsRxTx = s;
}
#ifdef API_OBJECT_NETWORK_SETTINGS_ENABLE
api_driver::obj::TerminalNetworkSettings api_driver::TerminalApiDaemon::getNetworkSettings() {
obj::TerminalNetworkSettings s;
{
std::shared_lock _olock(this->settingsMutex);
s = settingsNetwork;
}
return s;
}
void api_driver::TerminalApiDaemon::setNetworkSettings(obj::TerminalNetworkSettings &s) {
std::lock_guard _olock(settingsMutex);
settingsNetwork = s;
}
#endif
#ifdef API_OBJECT_QOS_SETTINGS_ENABLE
api_driver::obj::TerminalQosSettings api_driver::TerminalApiDaemon::getQosSettings() {
obj::TerminalQosSettings s;
{
std::shared_lock _olock(this->settingsMutex);
s = settingsQos;
}
return s;
}
void api_driver::TerminalApiDaemon::setQosSettings(obj::TerminalQosSettings &s) {
std::lock_guard _olock(settingsMutex);
settingsQos = s;
}
#endif
api_driver::obj::TerminalFirmwareVersion api_driver::TerminalApiDaemon::getFirmware() {
obj::TerminalFirmwareVersion res;

View File

@ -52,17 +52,17 @@ namespace api_driver {
// * Получение настроек, копирует текущие значения в структуры, переданные по указателю. Если передан пустой указатель, копирования не произойдет.
// * Установка настроек просто копирует настройки и устанавливает их текущими
// */
obj::TerminalRxTxSettings getSettingsRxTx() const;
obj::TerminalRxTxSettings getSettingsRxTx();
void setSettingsRxTx(obj::TerminalRxTxSettings &s);
#ifdef API_OBJECT_NETWORK_SETTINGS_ENABLE
obj::TerminalNetworkSettings getNetworkSettings() const;
obj::TerminalNetworkSettings getNetworkSettings();
void setNetworkSettings(obj::TerminalNetworkSettings &s);
#endif
#ifdef API_OBJECT_QOS_SETTINGS_ENABLE
obj::TerminalQosSettings getQosSettings() const;
void setQosSettings(bool enabled, const std::string &str);
obj::TerminalQosSettings getQosSettings();
void setQosSettings(obj::TerminalQosSettings &s);
#endif
obj::TerminalFirmwareVersion getFirmware();

View File

@ -67,6 +67,7 @@ void api_driver::proxy::CpProxy::setDemodSettings(demodulator_settings &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::setDemodSettings", CP_SetDemodulatorSettings, (sid, dest), "struct {...}");
}
#ifdef API_STRUCT_ACM_ENABLE
void api_driver::proxy::CpProxy::getAcmSettings(ACM_parameters_serv_ &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getAcmSettings", CP_GetAcmParams, (sid, &dest), "");
}
@ -74,11 +75,13 @@ void api_driver::proxy::CpProxy::getAcmSettings(ACM_parameters_serv_ &dest) {
void api_driver::proxy::CpProxy::setAcmSettings(ACM_parameters_serv_ &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::setAcmSettings", CP_GetAcmParams, (sid, &dest), "struct {...}");
}
#endif
void api_driver::proxy::CpProxy::getDeviceState(device_state &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getDeviceState", CP_GetDeviceState, (sid, dest), "");
}
#ifdef API_OBJECT_QOS_SETTINGS_ENABLE
std::tuple<std::string, bool> api_driver::proxy::CpProxy::getQosSettings() {
std::string rules;
bool en;
@ -89,7 +92,9 @@ std::tuple<std::string, bool> api_driver::proxy::CpProxy::getQosSettings() {
void api_driver::proxy::CpProxy::setQosSettings(const std::string &rules, bool enable) {
CPAPI_PROXY_CALL_HELPER("CpProxy::setQosSettings", CP_SetQoSSettings, (sid, rules, enable), "`" << rules << "`, " << (enable ? "true" : "false"));
}
#endif
#ifdef API_OBJECT_DPDI_SETTINGS_ENABLE
void api_driver::proxy::CpProxy::getDpdiSettings(DPDI_parmeters &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getDpdiSettings", CP_GetDpdiParams, (sid, &dest), "");
}
@ -97,7 +102,9 @@ void api_driver::proxy::CpProxy::getDpdiSettings(DPDI_parmeters &dest) {
void api_driver::proxy::CpProxy::setDpdiSettings(DPDI_parmeters &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::setDpdiSettings", CP_SetDpdiParams, (sid, dest), "struct {...}");
}
#endif
#ifdef API_OBJECT_BUCLNB_SETTINGS_ENABLE
void api_driver::proxy::CpProxy::getBuclnbSettings(buc_lnb_settings &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getBuclnbSettings", CP_GetBUC_LNB_settings, (sid, dest), "");
}
@ -105,14 +112,25 @@ void api_driver::proxy::CpProxy::getBuclnbSettings(buc_lnb_settings &dest) {
void api_driver::proxy::CpProxy::setBuclnbSettings(buc_lnb_settings &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::setBuclnbSettings", CP_SetBUC_LNB_settings, (sid, dest), "struct {...}");
}
#endif
#ifdef MODEM_IS_SCPC
void api_driver::proxy::CpProxy::getCincState(CinC_state &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getCincState", CP_GetCinCState, (sid, dest), "");
}
#endif
#ifdef API_OBJECT_DEBUG_METRICS_ENABLE
void api_driver::proxy::CpProxy::getDebugMetrics(debug_metrics &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getDebugMetrics", CP_GetDebugMetrics, (sid, dest), "");
}
#endif
#ifdef MODEM_IS_TDMA
void api_driver::proxy::CpProxy::getUpdateStatus(progress_msg &dest) {
CPAPI_PROXY_CALL_HELPER("CpProxy::getUpdateStatus", CP_GetUpdateStatus, (sid, dest), "");
}
#endif
api_driver::proxy::CpProxy::~CpProxy() {
disconnect();

View File

@ -217,7 +217,7 @@ void api_driver::obj::TerminalNetworkSettings::updateCallback(proxy::CpProxy &cp
}
}
void api_driver::obj::TerminalNetworkSettings::updateFromJson(nlohmann::json &data) {
void api_driver::obj::TerminalNetworkSettings::updateFromJson(const nlohmann::json &data) {
managementIp = data.value("managementIp", managementIp);
isL2 = data.value("isL2", isL2);
dataIp = data.value("dataIp", dataIp);
@ -279,7 +279,7 @@ void api_driver::obj::TerminalQosSettings::updateCallback(proxy::CpProxy &cp) {
}
}
void api_driver::obj::TerminalQosSettings::updateFromJson(nlohmann::json &data) {
void api_driver::obj::TerminalQosSettings::updateFromJson(const nlohmann::json &data) {
qosEnabled = data.value("en", qosEnabled);
qosSettingsJson = data.value("profile", qosSettingsJson);
}
@ -402,7 +402,6 @@ nlohmann::json api_driver::obj::TerminalState::asJson() {
res["initState"] = fInitState;
res["testState"] = fIsTest;
res["fTxState"] = fIsTest;
#ifdef MODEM_IS_SCPC
res["isCinC"] = fIsCinC;
#endif
@ -431,6 +430,7 @@ nlohmann::json api_driver::obj::TerminalState::asJson() {
res["rx"]["packetsDummy"] = fRxPacketsDummy;
res["tx"]["modcod"] = fTxModcod;
res["tx"]["state"] = fTxState;
res["tx"]["speedOnTxKbit"] = fTxSpeedOnTxKbit;
res["tx"]["speedOnIifKbit"] = fTxSpeedOnIifKbit;
#ifdef MODEM_IS_SCPC
@ -639,16 +639,16 @@ void api_driver::obj::TerminalRxTxSettings::updateMainSettings(const nlohmann::j
mod.is_cinc = data.value("isCinC", mod.is_cinc);
#endif
mod.tx_is_on = data.value("txEn", mod.tx_is_on);
#ifdef MODEM_IS_SCPC
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
mod.is_save_current_state = data.value("txAutoStart", mod.is_save_current_state);
mod.is_test_data = data.value("txIsTestInput", mod.is_test_data);
#endif
mod.is_carrier = !data.value("txModulatorIsTest", !mod.is_carrier);
mod.central_freq_in_kGz = data.value("txCentralFreq", mod.central_freq_in_kGz);
#ifdef MODEM_IS_SCPC
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
mod.baudrate = data.value("txBaudrate", mod.baudrate);
mod.rollof = data.value("txRolloff", mod.rollof);
mod.gold_seq_is_active = data.value("txGoldan", mod.gold_seq_is_active);
mod.gold_seq_is_active = data.value("txGoldan", mod.gold_seq_is_active ? 1 : 0);
#endif
mod.attenuation = data.value("txAttenuation", mod.attenuation);
@ -660,6 +660,9 @@ void api_driver::obj::TerminalRxTxSettings::updateMainSettings(const nlohmann::j
acmIsPilots = data.value("txIsPilots", acmIsPilots);
mod.modcod_tx = buildModcodFromJson(data, mod.modcod_tx, "dvbCcm", acmIsFrameSizeNormal, acmIsPilots);
#endif
#ifdef MODEM_IS_SHPS
mod.koef_spread = data.value("txSpreadCoef", mod.koef_spread);
#endif
// демодулятор
dem.is_aru_on = data.value("rxAgcEn", dem.is_aru_on);
@ -668,8 +671,11 @@ void api_driver::obj::TerminalRxTxSettings::updateMainSettings(const nlohmann::j
dem.central_freq_in_kGz = data.value("rxCentralFreq", dem.central_freq_in_kGz);
dem.baudrate = data.value("rxBaudrate", dem.baudrate);
dem.rollof = data.value("rxRolloff", dem.rollof);
#ifdef MODEM_IS_SCPC
dem.gold_seq_is_active = data.value("rxGoldan", dem.gold_seq_is_active);
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
dem.gold_seq_is_active = data.value("rxGoldan", dem.gold_seq_is_active ? 1 : 0);
#endif
#ifdef MODEM_IS_SHPS
dem.koef_spread = data.value("rxSpreadCoef", dem.koef_spread);
#endif
#ifdef API_STRUCT_ACM_ENABLE
@ -703,38 +709,38 @@ static std::tuple<uint8_t, uint8_t> translateCoordinates(double abs) {
}
void api_driver::obj::TerminalRxTxSettings::updateDpdiSettings(const nlohmann::json &data) {
dpdi.is_delay_window = !data.value("dpdiIsPositional", !dpdi.is_delay_window);
dpdi.is_delay_window = !data.value("isPositional", !dpdi.is_delay_window);
#ifdef MODEM_IS_SCPC
dpdi.freq_offset = data.value("dpdiSearchBandwidth", dpdi.freq_offset);
dpdi.freq_offset = data.value("searchBandwidth", dpdi.freq_offset);
#endif
if (data["dpdiPositionStationLatitude"]) {
const double pos = data["dpdiPositionStationLatitude"];
if (data.contains("positionStationLatitude")) {
const double pos = data["positionStationLatitude"];
const auto [g, m] = translateCoordinates(pos);
dpdi.latitude_station_grad = g;
dpdi.latitude_station_minute = m;
}
if (data["dpdiPositionStationLongitude"]) {
const double pos = data["dpdiPositionStationLongitude"];
if (data.contains("positionStationLongitude")) {
const double pos = data["positionStationLongitude"];
const auto [g, m] = translateCoordinates(pos);
dpdi.longitude_station_grad = g;
dpdi.longitude_station_minute = m;
}
if (data["dpdiPositionSatelliteLongitude"]) {
const double pos = data["dpdiPositionSatelliteLongitude"];
if (data.contains("positionSatelliteLongitude")) {
const double pos = data["positionSatelliteLongitude"];
const auto [g, m] = translateCoordinates(pos);
dpdi.longitude_sattelite_grad = g;
dpdi.longitude_sattelite_minute = m;
}
#ifdef MODEM_IS_SCPC
dpdi.min_delay = data.value("dpdiDelayMin", dpdi.min_delay);
dpdi.max_delay = data.value("dpdiDelayMax", dpdi.max_delay);
dpdi.min_delay = data.value("delayMin", dpdi.min_delay);
dpdi.max_delay = data.value("delayMax", dpdi.max_delay);
#else
s.min_delay = 0;
s.max_delay = data.value("dpdiDelay", dpdi.max_delay);
dpdi.min_delay = 0;
dpdi.max_delay = data.value("dpdiDelay", dpdi.max_delay);
#endif
}
void api_driver::obj::TerminalRxTxSettings::storeDpdiSettings(proxy::CpProxy &cp) {
@ -817,18 +823,21 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
rxtx["isCinC"] = mod.is_cinc;
#endif
rxtx["txEn"] = mod.tx_is_on;
#ifdef MODEM_IS_SCPC
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
rxtx["txAutoStart"] = mod.is_save_current_state;
rxtx["txIsTestInput"] = mod.is_test_data;
#endif
rxtx["txModulatorIsTest"] = !mod.is_carrier;
rxtx["txCentralFreq"] = mod.central_freq_in_kGz;
#ifdef MODEM_IS_SCPC
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
rxtx["txBaudrate"] = mod.baudrate;
rxtx["txRolloff"] = mod.rollof;
rxtx["txGoldan"] = mod.gold_seq_is_active;
rxtx["txGoldan"] = mod.gold_seq_is_active ? 1 : 0;
#endif
rxtx["txAttenuation"] = mod.attenuation;
#ifdef MODEM_IS_SHPS
rxtx["txSpreadCoef"] = mod.koef_spread;
#endif
#if defined(MODEM_IS_SCPC) || defined(MODEM_IS_SHPS)
const bool acmIsFrameSizeNormal = extractModcodFrameSizeNormal(mod.modcod_tx);
@ -848,8 +857,12 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
rxtx["rxCentralFreq"] = dem.central_freq_in_kGz;
rxtx["rxBaudrate"] = dem.baudrate;
rxtx["rxRolloff"] = dem.rollof;
#ifdef MODEM_IS_SCPC
rxtx["rxGoldan"] = dem.gold_seq_is_active;
#if defined(MODEM_IS_SCPC) || defined (MODEM_IS_SHPS)
rxtx["rxGoldan"] = dem.gold_seq_is_active ? 1 : 0;
#endif
#ifdef MODEM_IS_SHPS
rxtx["txSpreadCoef"] = mod.koef_spread;
rxtx["rxSpreadCoef"] = dem.koef_spread;
#endif
#ifdef API_STRUCT_ACM_ENABLE
@ -879,20 +892,20 @@ nlohmann::json api_driver::obj::TerminalRxTxSettings::asJson() const {
{
auto& dp = res["dpdi"];
dp["dpdiIsPositional"] = !dpdi.is_delay_window;
dp["isPositional"] = !dpdi.is_delay_window;
#ifdef MODEM_IS_SCPC
dp["dpdiSearchBandwidth"] = dpdi.freq_offset;
dp["searchBandwidth"] = dpdi.freq_offset;
#endif
dp["dpdiPositionStationLatitude"] = translateCoordinates(dpdi.latitude_station_grad, dpdi.latitude_station_minute);
dp["dpdiPositionStationLongitude"] = translateCoordinates(dpdi.longitude_station_grad, dpdi.longitude_station_minute);
dp["dpdiPositionSatelliteLongitude"] = translateCoordinates(dpdi.longitude_sattelite_grad, dpdi.longitude_sattelite_minute);
dp["positionStationLatitude"] = translateCoordinates(dpdi.latitude_station_grad, dpdi.latitude_station_minute);
dp["positionStationLongitude"] = translateCoordinates(dpdi.longitude_station_grad, dpdi.longitude_station_minute);
dp["positionSatelliteLongitude"] = translateCoordinates(dpdi.longitude_sattelite_grad, dpdi.longitude_sattelite_minute);
#ifdef MODEM_IS_SCPC
dp["dpdiDelayMin"] = dpdi.min_delay;
dp["dpdiDelayMax"] = dpdi.max_delay;
dp["delayMin"] = dpdi.min_delay;
dp["delayMax"] = dpdi.max_delay;
#else
dp["dpdiDelay"] = dpdi.max_delay;
dp["delay"] = dpdi.max_delay;
#endif
}
#endif

View File

@ -79,7 +79,7 @@ namespace api_driver::obj {
void loadDefaults();
void updateCallback(proxy::CpProxy& cp);
void updateFromJson(nlohmann::json& data);
void updateFromJson(const nlohmann::json& data);
void store(proxy::CpProxy& cp);
nlohmann::json asJson();
@ -101,7 +101,7 @@ namespace api_driver::obj {
void loadDefaults();
void updateCallback(proxy::CpProxy& cp);
void updateFromJson(nlohmann::json& data);
void updateFromJson(const nlohmann::json& data);
void store(proxy::CpProxy& cp);
nlohmann::json asJson();

View File

@ -104,6 +104,8 @@ public:
static constexpr const char* INDEX_HTML = "/main-tdma.html";
#elif defined(MODEM_IS_SCPC)
static constexpr const char* INDEX_HTML = "/main-scpc.html";
#elif defined(MODEM_IS_SHPS)
static constexpr const char* INDEX_HTML = "/main-shps.html";
#else
#error "Modem type not defined!"
#endif
@ -179,7 +181,7 @@ public:
try {
auto reqJson = nlohmann::json::parse(std::string(req.payload.begin(), req.payload.end()));
auto u = auth.doAuth(reqJson["username"], reqJson["username"], req, rep);
auto u = auth.doAuth(reqJson["username"], reqJson["password"], req, rep);
if (u == nullptr) {
throw std::runtime_error("invalid session");
}
@ -217,10 +219,21 @@ public:
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)});
const auto result = api->loadTerminalState();
nlohmann::json resultJson;
try {
resultJson["status"] = "ok";
resultJson["state"] = api->loadTerminalState();
} catch (std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/qos): Can't set QoS settings: " << 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());
}));
@ -229,12 +242,22 @@ public:
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)});
std::string result = R"({"settings":)";
result += api->loadSettings();
result += "}";
nlohmann::json resultJson;
try {
resultJson["status"] = "ok";
resultJson["settings"] = api->loadSettings();
} catch (std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/get/settings): Can't get object: " << e.what();
resultJson.clear();
rep.status = http::server::internal_server_error;
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());
}));
@ -246,7 +269,20 @@ public:
rep.status = http::server::ok;
rep.headers.push_back({.name = "Content-Type", .value = toString(mime_types::json)});
const auto result = api->loadFirmwareVersion();
nlohmann::json resultJson;
try {
resultJson["status"] = "ok";
resultJson["firmware"] = api->loadFirmwareVersion();
} catch (std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/get/aboutFirmware): Can't get object: " << e.what();
resultJson.clear();
rep.status = http::server::internal_server_error;
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());
}));
@ -451,7 +487,13 @@ public:
http::server::stockReply(http::server::bad_request, rep);
return;
}
this->upgradeOrRebootRunning = true;
rep.status = http::server::ok;
rep.headers.push_back({.name = "Content-Type", .value = toString(mime_types::json)});
nlohmann::json resultJson;
try {
this->upgradeOrRebootRunning = true;
#ifdef MODEM_IS_TDMA
if (req.url->params.find("ota") != req.url->params.end()) {
doTerminalUpgradeOta();
@ -461,10 +503,15 @@ public:
#else
doTerminalUpgrade();
#endif
rep.status = http::server::ok;
rep.headers.clear();
rep.headers.push_back({.name = "Content-Type", .value = toString(mime_types::json)});
const auto result = api->loadFirmwareVersion();
resultJson["status"] = "ok";
} catch (std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/doFirmwareUpgrade): Error: " << 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());
}));
@ -483,28 +530,67 @@ public:
return;
}
const auto func = req.url->params["f"];
std::string result = R"({"status":"ok"})";
if (func == "SetDmaDebug") {
if (req.url->params.find("param") == req.url->params.end()) { http::server::stockReply(http::server::bad_request, rep); return; }
if (req.url->params.find("value") == req.url->params.end()) { http::server::stockReply(http::server::bad_request, rep); return; }
this->api->executeInApi([&](auto& cp) {
cp.setDmaDebug(req.url->params["param"], req.url->params["value"]);
});
} else if (func == "GetDmaDebug") {
if (req.url->params.find("param") == req.url->params.end()) { http::server::stockReply(http::server::bad_request, rep); return; }
this->api->executeInApi([&](auto& cp) {
nlohmann::json tmp;
tmp["status"] = "ok";
tmp["result"] = cp.getDmaDebug(req.url->params["param"]);
result = tmp.dump();
});
} else {
http::server::stockReply(http::server::not_implemented, rep);
return;
}
rep.status = http::server::ok;
rep.headers.push_back({.name = "Content-Type", .value = toString(mime_types::json)});
nlohmann::json resultJson;
try {
resultJson["status"] = "error";
if (func == "SetDmaDebug") {
if (req.url->params.find("param") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `param`";
} else if (req.url->params.find("value") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `value`";
} else {
this->api->executeInApi([&](auto& cp) {
cp.setDmaDebug(req.url->params["param"], req.url->params["value"]);
});
}
} else if (func == "GetDmaDebug") {
if (req.url->params.find("param") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `param`";
} else {
this->api->executeInApi([&](auto& cp) {
resultJson["status"] = "ok";
resultJson["result"] = cp.getDmaDebug(req.url->params["param"]);
});
}
} else if (func == "SetNetwork") {
if (req.url->params.find("param") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `param`";
} else if (req.url->params.find("value") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `value`";
} else {
this->api->executeInApi([&](auto& cp) {
cp.setNetwork(req.url->params["param"], req.url->params["value"]);
});
}
} else if (func == "GetNetwork") {
if (req.url->params.find("param") == req.url->params.end()) {
rep.status = http::server::bad_request;
resultJson["error"] = "missing required adgument: `param`";
} else {
this->api->executeInApi([&](auto& cp) {
resultJson["status"] = "ok";
resultJson["result"] = cp.getNetwork(req.url->params["param"]);
});
}
} else {
resultJson["error"] = "function not supported";
}
} catch (std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/qos): Can't set QoS settings: " << 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());
}));
#ifdef API_OBJECT_DEBUG_METRICS_ENABLE

View File

@ -71,10 +71,10 @@ nlohmann::json api_driver::ApiDriver::loadSettings() const {
nlohmann::json res = daemon->getSettingsRxTx().asJson();
#ifdef API_OBJECT_QOS_SETTINGS_ENABLE
res.update(daemon->getQosSettings().asJson());
res["qos"] = (daemon->getQosSettings().asJson());
#endif
#ifdef API_OBJECT_NETWORK_SETTINGS_ENABLE
res.update(daemon->getNetworkSettings().asJson());
res["network"] = (daemon->getNetworkSettings().asJson());
#endif
return res;
}
@ -116,17 +116,53 @@ void api_driver::ApiDriver::setDpdiSettings(const nlohmann::json& data) {
}
#endif
#ifdef API_OBJECT_BUCLNB_SETTINGS_ENABLE
void api_driver::ApiDriver::setBucLnbSettings(const nlohmann::json& data) {
// TODO
}
auto rxtx = daemon->getSettingsRxTx();
rxtx.updateBuclnbSettings(data);
std::lock_guard _lapi(this->daemon->cpApiMutex);
this->daemon->cp.setDmaDebug("begin_save_config", "");
rxtx.storeBuclnbSettings(this->daemon->cp);
this->daemon->cp.setDmaDebug("save_config", "");
rxtx.updateCallback(this->daemon->cp);
{
daemon->setSettingsRxTx(rxtx);
}
}
#endif
#ifdef API_OBJECT_QOS_SETTINGS_ENABLE
void api_driver::ApiDriver::setQosSettings(const nlohmann::json& data) {
// TODO
}
auto qos = daemon->getQosSettings();
qos.updateFromJson(data);
void api_driver::ApiDriver::setNetworkSettings(const nlohmann::json& data) {
// TODO
std::lock_guard _lapi(this->daemon->cpApiMutex);
this->daemon->cp.setDmaDebug("begin_save_config", "");
qos.store(this->daemon->cp);
this->daemon->cp.setDmaDebug("save_config", "");
qos.updateCallback(this->daemon->cp);
{
daemon->setQosSettings(qos);
}
}
#endif
#ifdef API_OBJECT_NETWORK_SETTINGS_ENABLE
void api_driver::ApiDriver::setNetworkSettings(const nlohmann::json& data) {
auto net = daemon->getNetworkSettings();
net.updateFromJson(data);
std::lock_guard _lapi(this->daemon->cpApiMutex);
this->daemon->cp.setDmaDebug("begin_save_config", "");
net.store(this->daemon->cp);
this->daemon->cp.setDmaDebug("save_config", "");
net.updateCallback(this->daemon->cp);
{
daemon->setNetworkSettings(net);
}
}
#endif
void api_driver::ApiDriver::resetDefaultSettings() {
daemon->resetDefaultSettings();

View File

@ -489,15 +489,6 @@
</div>
<button class="action-button" @click="settingsSubmitQoS()">Применить <span class="submit-spinner" v-show="submitStatusQos"></span></button>
<h2>Настройки TCP-акселерации</h2>
<div class="settings-set-container">
<label>
<span>Активировать акселерацию</span>
<span class="toggle-input"><input type="checkbox" v-model="paramTcpaccel.accelEn" /><span class="slider"></span></span>
</label>
<label><span>Максимальное количество соединений</span><input type="number" v-model="paramTcpaccel.accelMaxConnections" max="4000" step="1"/></label>
</div>
<button class="action-button" @click="settingsSubmitTcpaccel()">Сохранить <span class="submit-spinner" v-show="submitStatus.tcpaccel"></span></button>
</div> <div class="tabs-body-item" v-if="activeTab === 'admin' && settingFetchComplete">
<h2>Настройки сети</h2>
<div class="settings-set-container">
@ -595,7 +586,6 @@
rxtx: false,
dpdi: false,
buclnb: false,
tcpaccel: false,
network: false,
firmwareUpload: false,
firmwareUpgrade: false,
@ -655,10 +645,6 @@
srvRefClk10M: false,
bucLnbAutoStart: false,
},
paramTcpaccel: {
accelEn: false,
accelMaxConnections: 0,
},
paramNetwork: {
netManagementIp: null,
netIsL2: false,
@ -875,20 +861,6 @@
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
.finally(() => { this.submitStatus.buclnb = false })
},
settingsSubmitTcpaccel() {
if (this.submitStatus.tcpaccel) { return }
let query = {
"accelEn": this.paramTcpaccel.accelEn,
"accelMaxConnections": this.paramTcpaccel.accelMaxConnections,
}
this.submitStatus.tcpaccel = true
fetch('/api/set/tcpaccel', {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.updateTcpaccelSettings(vals) })
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
.finally(() => { this.submitStatus.tcpaccel = false })
},
settingsSubmitNetwork() {
if (this.submitStatus.network) { return }
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
@ -910,70 +882,65 @@
updateRxtxSettings(vals) {
this.submitStatus.rxtx = false
this.paramRxtx.isCinC = vals["settings"]["isCinC"]
this.paramRxtx.txEn = vals["settings"]["txEn"]
this.paramRxtx.txAutoStart = vals["settings"]["txAutoStart"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["txModulatorIsTest"]
this.paramRxtx.txIsTestInput = vals["settings"]["txIsTestInput"]
this.paramRxtx.txCentralFreq = this.inputFormatNumber(vals["settings"]["txCentralFreq"], {min:950000,max:6000000,step:0.01})
this.paramRxtx.txBaudrate = this.inputFormatNumber(vals["settings"]["txBaudrate"], {min:200000,max:54000000,})
this.paramRxtx.txRolloff = vals["settings"]["txRolloff"]
this.paramRxtx.txGoldan = vals["settings"]["txGoldan"]
this.paramRxtx.txAttenuation = vals["settings"]["txAttenuation"]
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["dvbServicePacketPeriod"]
this.paramRxtx.dvbIsAcm = vals["settings"]["dvbIsAcm"]
this.paramRxtx.txFrameSizeNormal = vals["settings"]["txFrameSizeNormal"]
this.paramRxtx.txIsPilots = vals["settings"]["txIsPilots"]
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcmModulation"]
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcmSpeed"]
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMinModulation"]
this.paramRxtx.dvbAcmMinSpeed = vals["settings"]["dvbAcmMinSpeed"]
this.paramRxtx.dvbAcmMaxModulation = vals["settings"]["dvbAcmMaxModulation"]
this.paramRxtx.dvbAcmMaxSpeed = vals["settings"]["dvbAcmMaxSpeed"]
this.paramRxtx.dvbSnrReserve = vals["settings"]["dvbSnrReserve"]
this.paramRxtx.aupcEn = vals["settings"]["aupcEn"]
this.paramRxtx.aupcMinAttenuation = vals["settings"]["aupcMinAttenuation"]
this.paramRxtx.aupcMaxAttenuation = vals["settings"]["aupcMaxAttenuation"]
this.paramRxtx.aupcRequiredSnr = vals["settings"]["aupcRequiredSnr"]
this.paramRxtx.rxAgcEn = vals["settings"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = this.inputFormatNumber(vals["settings"]["rxCentralFreq"], {min:950000,max:6000000,step:0.01})
this.paramRxtx.rxBaudrate = this.inputFormatNumber(vals["settings"]["rxBaudrate"], {min:200000,max:54000000,})
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
this.paramRxtx.isCinC = vals["settings"]["rxtx"]["isCinC"]
this.paramRxtx.txEn = vals["settings"]["rxtx"]["txEn"]
this.paramRxtx.txAutoStart = vals["settings"]["rxtx"]["txAutoStart"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["rxtx"]["txModulatorIsTest"]
this.paramRxtx.txIsTestInput = vals["settings"]["rxtx"]["txIsTestInput"]
this.paramRxtx.txCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["txCentralFreq"], {min:950000,max:6000000,step:0.01})
this.paramRxtx.txBaudrate = this.inputFormatNumber(vals["settings"]["rxtx"]["txBaudrate"], {min:200000,max:54000000,})
this.paramRxtx.txRolloff = vals["settings"]["rxtx"]["txRolloff"]
this.paramRxtx.txGoldan = vals["settings"]["rxtx"]["txGoldan"]
this.paramRxtx.txAttenuation = vals["settings"]["rxtx"]["txAttenuation"]
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["rxtx"]["dvbServicePacketPeriod"]
this.paramRxtx.dvbIsAcm = vals["settings"]["rxtx"]["dvbIsAcm"]
this.paramRxtx.txFrameSizeNormal = vals["settings"]["rxtx"]["txFrameSizeNormal"]
this.paramRxtx.txIsPilots = vals["settings"]["rxtx"]["txIsPilots"]
this.paramRxtx.dvbCcmModulation = vals["settings"]["rxtx"]["dvbCcmModulation"]
this.paramRxtx.dvbCcmSpeed = vals["settings"]["rxtx"]["dvbCcmSpeed"]
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["rxtx"]["dvbAcmMinModulation"]
this.paramRxtx.dvbAcmMinSpeed = vals["settings"]["rxtx"]["dvbAcmMinSpeed"]
this.paramRxtx.dvbAcmMaxModulation = vals["settings"]["rxtx"]["dvbAcmMaxModulation"]
this.paramRxtx.dvbAcmMaxSpeed = vals["settings"]["rxtx"]["dvbAcmMaxSpeed"]
this.paramRxtx.dvbSnrReserve = vals["settings"]["rxtx"]["dvbSnrReserve"]
this.paramRxtx.aupcEn = vals["settings"]["rxtx"]["aupcEn"]
this.paramRxtx.aupcMinAttenuation = vals["settings"]["rxtx"]["aupcMinAttenuation"]
this.paramRxtx.aupcMaxAttenuation = vals["settings"]["rxtx"]["aupcMaxAttenuation"]
this.paramRxtx.aupcRequiredSnr = vals["settings"]["rxtx"]["aupcRequiredSnr"]
this.paramRxtx.rxAgcEn = vals["settings"]["rxtx"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxtx"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxtx"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["rxCentralFreq"], {min:950000,max:6000000,step:0.01})
this.paramRxtx.rxBaudrate = this.inputFormatNumber(vals["settings"]["rxtx"]["rxBaudrate"], {min:200000,max:54000000,})
this.paramRxtx.rxRolloff = vals["settings"]["rxtx"]["rxRolloff"]
this.paramRxtx.rxGoldan = vals["settings"]["rxtx"]["rxGoldan"]
},
updateDpdiSettings(vals) {
this.submitStatus.dpdi = false
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdiIsPositional"]
this.paramDpdi.dpdiSearchBandwidth = vals["settings"]["dpdiSearchBandwidth"]
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdiPositionStationLatitude"]
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdiPositionStationLongitude"]
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdiPositionSatelliteLongitude"]
this.paramDpdi.dpdiDelayMin = vals["settings"]["dpdiDelayMin"]
this.paramDpdi.dpdiDelayMax = vals["settings"]["dpdiDelayMax"]
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdi"]["dpdiIsPositional"]
this.paramDpdi.dpdiSearchBandwidth = vals["settings"]["dpdi"]["dpdiSearchBandwidth"]
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdi"]["dpdiPositionStationLatitude"]
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdi"]["dpdiPositionStationLongitude"]
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdi"]["dpdiPositionSatelliteLongitude"]
this.paramDpdi.dpdiDelayMin = vals["settings"]["dpdi"]["dpdiDelayMin"]
this.paramDpdi.dpdiDelayMax = vals["settings"]["dpdi"]["dpdiDelayMax"]
},
updateBuclnbSettings(vals) {
this.submitStatus.buclnb = false
this.paramBuclnb.bucRefClk10M = vals["settings"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["lnbPowering"]
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["bucLnbAutoStart"]
},
updateTcpaccelSettings(vals) {
this.submitStatus.tcpaccel = false
this.paramTcpaccel.accelEn = vals["settings"]["accelEn"]
this.paramTcpaccel.accelMaxConnections = vals["settings"]["accelMaxConnections"]
this.paramBuclnb.bucRefClk10M = vals["settings"]["buclnb"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["buclnb"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["buclnb"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["buclnb"]["lnbPowering"]
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"]["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"]
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'
@ -998,53 +965,52 @@
}
this.lastUpdateTime = new Date();
this.initState = vals["mainState"]["initState"]
this.isCinC = vals["mainState"]["isCinC"]
this.initState = vals["state"]["initState"]
this.testState = vals["state"]["testState"]
this.isCinC = vals["state"]["isCinC"]
this.statRx.state = vals["mainState"]["rx.state"]
this.statRx.sym_sync_lock = vals["mainState"]["rx.sym_sync_lock"]
this.statRx.freq_search_lock = vals["mainState"]["rx.freq_search_lock"]
this.statRx.afc_lock = vals["mainState"]["rx.afc_lock"]
this.statRx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
this.statRx.snr = vals["mainState"]["rx.snr"]
this.statRx.rssi = vals["mainState"]["rx.rssi"]
this.statRx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
this.statRx.frameSizeNormal = vals["mainState"]["rx.frameSizeNormal"]
this.statRx.isPilots = vals["mainState"]["rx.isPilots"]
this.statRx.symError = vals["mainState"]["rx.symError"]
this.statRx.freqErr = vals["mainState"]["rx.freqErr"]
this.statRx.freqErrAcc = vals["mainState"]["rx.freqErrAcc"]
this.statRx.inputSignalLevel = vals["mainState"]["rx.inputSignalLevel"]
this.statRx.pllError = vals["mainState"]["rx.pllError"]
this.statRx.speedOnRxKbit = vals["mainState"]["rx.speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"]
this.statRx.packetsOk = vals["mainState"]["rx.packetsOk"]
this.statRx.packetsBad = vals["mainState"]["rx.packetsBad"]
this.statRx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
this.statRx.state = vals["state"]["rx"]["state"]
this.statRx.sym_sync_lock = vals["state"]["rx"]["sym_sync_lock"]
this.statRx.freq_search_lock = vals["state"]["rx"]["freq_search_lock"]
this.statRx.afc_lock = vals["state"]["rx"]["afc_lock"]
this.statRx.pkt_sync = vals["state"]["rx"]["pkt_sync"]
this.statRx.snr = vals["state"]["rx"]["snr"]
this.statRx.rssi = vals["state"]["rx"]["rssi"]
this.statRx.modcod = modcodToStr(vals["state"]["rx"]["modcod"])
this.statRx.frameSizeNormal = vals["state"]["rx"]["frameSizeNormal"]
this.statRx.isPilots = vals["state"]["rx"]["isPilots"]
this.statRx.symError = vals["state"]["rx"]["symError"]
this.statRx.freqErr = vals["state"]["rx"]["freqErr"]
this.statRx.freqErrAcc = vals["state"]["rx"]["freqErrAcc"]
this.statRx.inputSignalLevel = vals["state"]["rx"]["inputSignalLevel"]
this.statRx.pllError = vals["state"]["rx"]["pllError"]
this.statRx.speedOnRxKbit = vals["state"]["rx"]["speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["state"]["rx"]["speedOnIifKbit"]
this.statRx.packetsOk = vals["state"]["rx"]["packetsOk"]
this.statRx.packetsBad = vals["state"]["rx"]["packetsBad"]
this.statRx.packetsDummy = vals["state"]["rx"]["packetsDummy"]
this.statTx.state = vals["mainState"]["tx.state"]
this.statTx.snr = vals["mainState"]["tx.snr"]
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.statTx.frameSizeNormal = vals["mainState"]["tx.frameSizeNormal"]
this.statTx.isPilots = vals["mainState"]["tx.isPilots"]
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.statTx.state = vals["state"]["tx"]["state"]
this.statTx.snr = vals["state"]["tx"]["snr"]
this.statTx.modcod = modcodToStr(vals["state"]["tx"]["modcod"])
this.statTx.frameSizeNormal = vals["state"]["tx"]["frameSizeNormal"]
this.statTx.isPilots = vals["state"]["tx"]["isPilots"]
this.statTx.speedOnTxKbit = vals["state"]["tx"]["speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["state"]["tx"]["speedOnIifKbit"]
this.statCinc.occ = vals["mainState"]["cinc.occ"]
this.statCinc.correlator = vals["mainState"]["cinc.correlator"]
this.statCinc.correlatorFails = vals["mainState"]["cinc.correlatorFails"]
this.statCinc.freqErr = vals["mainState"]["cinc.freqErr"]
this.statCinc.freqErrAcc = vals["mainState"]["cinc.freqErrAcc"]
this.statCinc.channelDelay = vals["mainState"]["cinc.channelDelay"]
this.statCinc.occ = vals["state"]["cinc"]["occ"]
this.statCinc.correlator = vals["state"]["cinc"]["correlator"]
this.statCinc.correlatorFails = vals["state"]["cinc"]["correlatorFails"]
this.statCinc.freqErr = vals["state"]["cinc"]["freqErr"]
this.statCinc.freqErrAcc = vals["state"]["cinc"]["freqErrAcc"]
this.statCinc.channelDelay = vals["state"]["cinc"]["channelDelay"]
this.statDevice.adrv = vals["mainState"]["device.adrv"]
this.statDevice.zynq = vals["mainState"]["device.zynq"]
this.statDevice.fpga = vals["mainState"]["device.fpga"]
this.testState = vals["mainState"]["testState"]
this.statDevice.adrv = vals["state"]["device"]["adrv"]
this.statDevice.zynq = vals["state"]["device"]["zynq"]
this.statDevice.fpga = vals["state"]["device"]["fpga"]
// аптайм приходит в секундах, надо преобразовать его в человеко-читаемый вид
let uptime = vals["sysinfo"]["uptime"]
let uptime = vals["state"]["device"]["uptime"]
if (uptime) {
let secs = uptime % 60; uptime = Math.floor(uptime / 60)
let mins = uptime % 60; uptime = Math.floor(uptime / 60)
@ -1056,11 +1022,11 @@
} else {
this.statOs.uptime = '?'
}
this.statOs.load1 = vals["sysinfo"]["load1min"]
this.statOs.load5 = vals["sysinfo"]["load5min"]
this.statOs.load15 = vals["sysinfo"]["load15min"]
this.statOs.totalram = vals["sysinfo"]["totalram"]
this.statOs.freeram = vals["sysinfo"]["freeram"]
this.statOs.load1 = vals["state"]["device"]["load1min"]
this.statOs.load5 = vals["state"]["device"]["load5min"]
this.statOs.load15 = vals["state"]["device"]["load15min"]
this.statOs.totalram = vals["state"]["device"]["totalram"]
this.statOs.freeram = vals["state"]["device"]["freeram"]
},
resetPacketsStatistics() {
@ -1156,15 +1122,17 @@
}
let query = {
"en": this.paramQos.en,
"rt1": [],
"rt2": [],
"rt3": [],
"cd": []
"profile": {
"rt1": [],
"rt2": [],
"rt3": [],
"cd": []
}
}
for (let i = 0; i < this.paramQos.rt1.length; i++) { query.rt1.push(_translateQosClass('rt', this.paramQos.rt1[i])) }
for (let i = 0; i < this.paramQos.rt2.length; i++) { query.rt2.push(_translateQosClass('rt', this.paramQos.rt2[i])) }
for (let i = 0; i < this.paramQos.rt3.length; i++) { query.rt3.push(_translateQosClass('rt', this.paramQos.rt3[i])) }
for (let i = 0; i < this.paramQos.cd.length; i++) { query.cd.push(_translateQosClass('rt', this.paramQos.cd[i])) }
for (let i = 0; i < this.paramQos.rt1.length; i++) { query.profile.rt1.push(_translateQosClass('rt', this.paramQos.rt1[i])) }
for (let i = 0; i < this.paramQos.rt2.length; i++) { query.profile.rt2.push(_translateQosClass('rt', this.paramQos.rt2[i])) }
for (let i = 0; i < this.paramQos.rt3.length; i++) { query.profile.rt3.push(_translateQosClass('rt', this.paramQos.rt3[i])) }
for (let i = 0; i < this.paramQos.cd.length; i++) { query.profile.cd.push(_translateQosClass('rt', this.paramQos.cd[i])) }
//console.log(query)
fetch('/api/set/qos', {
@ -1185,9 +1153,9 @@
updateQosSettings(vals) {
this.submitStatusQos = false
this.paramQos.en = vals["settings"]["qosEnabled"]
this.paramQos.en = vals["settings"]["qos"]["en"]
const qosProfile = vals["settings"]["qosProfile"]
const qosProfile = vals["settings"]["qos"]["profile"]
if (qosProfile !== null && qosProfile !== undefined) {
this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length)
this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length)
@ -1406,7 +1374,6 @@
this.updateRxtxSettings(vals)
this.updateDpdiSettings(vals)
this.updateBuclnbSettings(vals)
this.updateTcpaccelSettings(vals)
this.updateNetworkSettings(vals)
this.updateQosSettings(vals)
@ -1443,11 +1410,11 @@
try {
const fr = await fetch("/api/get/aboutFirmware")
const d = await fr.json()
this.about.firmwareVersion = d["fw.version"]
this.about.modemUid = d["fw.modemId"]
this.about.modemSn = d["fw.modemSn"]
this.about.macManagement = d["fw.macMang"]
this.about.macData = d["fw.macData"]
this.about.firmwareVersion = d["firmware"]["version"]
this.about.modemUid = d["firmware"]["modemId"]
this.about.modemSn = d["firmware"]["modemSn"]
this.about.macManagement = d["firmware"]["macMang"]
this.about.macData = d["firmware"]["macData"]
} catch (e) {
console.log('Ошибка загрузки версии ПО', e)
}

View File

@ -513,33 +513,33 @@
updateRxtxSettings(vals) {
this.submitStatus.rxtx = false
this.paramRxtx.txEn = vals["settings"]["txEn"]
this.paramRxtx.txAutoStart = vals["settings"]["txAutoStart"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["txModulatorIsTest"]
this.paramRxtx.txIsTestInput = vals["settings"]["txIsTestInput"]
this.paramRxtx.txCentralFreq = vals["settings"]["txCentralFreq"]
this.paramRxtx.txBaudrate = vals["settings"]["txBaudrate"]
this.paramRxtx.txRolloff = vals["settings"]["txRolloff"]
this.paramRxtx.txSpreadCoef = vals["settings"]["txSpreadCoef"]
this.paramRxtx.txGoldan = vals["settings"]["txGoldan"]
this.paramRxtx.txAttenuation = vals["settings"]["txAttenuation"]
this.paramRxtx.rxAgcEn = vals["settings"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = vals["settings"]["rxCentralFreq"]
this.paramRxtx.rxBaudrate = vals["settings"]["rxBaudrate"]
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
this.paramRxtx.rxSpreadCoef = vals["settings"]["rxSpreadCoef"]
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
this.paramRxtx.txEn = vals["settings"]["rxtx"]["txEn"]
this.paramRxtx.txAutoStart = vals["settings"]["rxtx"]["txAutoStart"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["rxtx"]["txModulatorIsTest"]
this.paramRxtx.txIsTestInput = vals["settings"]["rxtx"]["txIsTestInput"]
this.paramRxtx.txCentralFreq = vals["settings"]["rxtx"]["txCentralFreq"]
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"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxtx"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = vals["settings"]["rxtx"]["rxCentralFreq"]
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
this.paramBuclnb.bucRefClk10M = vals["settings"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["lnbPowering"]
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["bucLnbAutoStart"]
this.paramBuclnb.bucRefClk10M = vals["settings"]["buclnb"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["buclnb"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["buclnb"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["buclnb"]["lnbPowering"]
this.paramBuclnb.srvRefClk10M = vals["settings"]["buclnb"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["buclnb"]["bucLnbAutoStart"]
},
// ========== include end from 'common/all-params-methods.js.j2'
@ -564,44 +564,43 @@
}
this.lastUpdateTime = new Date();
this.initState = vals["mainState"]["initState"]
this.initState = vals["state"]["initState"]
this.testState = vals["state"]["testState"]
this.statRx.state = vals["mainState"]["rx.state"]
this.statRx.sym_sync_lock = vals["mainState"]["rx.sym_sync_lock"]
this.statRx.freq_search_lock = vals["mainState"]["rx.freq_search_lock"]
this.statRx.afc_lock = vals["mainState"]["rx.afc_lock"]
this.statRx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
this.statRx.snr = vals["mainState"]["rx.snr"]
this.statRx.rssi = vals["mainState"]["rx.rssi"]
this.statRx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
this.statRx.frameSizeNormal = vals["mainState"]["rx.frameSizeNormal"]
this.statRx.isPilots = vals["mainState"]["rx.isPilots"]
this.statRx.symError = vals["mainState"]["rx.symError"]
this.statRx.freqErr = vals["mainState"]["rx.freqErr"]
this.statRx.freqErrAcc = vals["mainState"]["rx.freqErrAcc"]
this.statRx.inputSignalLevel = vals["mainState"]["rx.inputSignalLevel"]
this.statRx.pllError = vals["mainState"]["rx.pllError"]
this.statRx.speedOnRxKbit = vals["mainState"]["rx.speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"]
this.statRx.packetsOk = vals["mainState"]["rx.packetsOk"]
this.statRx.packetsBad = vals["mainState"]["rx.packetsBad"]
this.statRx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
this.statRx.state = vals["state"]["rx"]["state"]
this.statRx.sym_sync_lock = vals["state"]["rx"]["sym_sync_lock"]
this.statRx.freq_search_lock = vals["state"]["rx"]["freq_search_lock"]
this.statRx.afc_lock = vals["state"]["rx"]["afc_lock"]
this.statRx.pkt_sync = vals["state"]["rx"]["pkt_sync"]
this.statRx.snr = vals["state"]["rx"]["snr"]
this.statRx.rssi = vals["state"]["rx"]["rssi"]
this.statRx.modcod = modcodToStr(vals["state"]["rx"]["modcod"])
this.statRx.frameSizeNormal = vals["state"]["rx"]["frameSizeNormal"]
this.statRx.isPilots = vals["state"]["rx"]["isPilots"]
this.statRx.symError = vals["state"]["rx"]["symError"]
this.statRx.freqErr = vals["state"]["rx"]["freqErr"]
this.statRx.freqErrAcc = vals["state"]["rx"]["freqErrAcc"]
this.statRx.inputSignalLevel = vals["state"]["rx"]["inputSignalLevel"]
this.statRx.pllError = vals["state"]["rx"]["pllError"]
this.statRx.speedOnRxKbit = vals["state"]["rx"]["speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["state"]["rx"]["speedOnIifKbit"]
this.statRx.packetsOk = vals["state"]["rx"]["packetsOk"]
this.statRx.packetsBad = vals["state"]["rx"]["packetsBad"]
this.statRx.packetsDummy = vals["state"]["rx"]["packetsDummy"]
this.statTx.state = vals["mainState"]["tx.state"]
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.statTx.centerFreq = vals["mainState"]["tx.centerFreq"]
this.statTx.symSpeed = vals["mainState"]["tx.symSpeed"]
this.statTx.state = vals["state"]["tx"]["state"]
this.statTx.modcod = modcodToStr(vals["state"]["tx"]["modcod"])
this.statTx.speedOnTxKbit = vals["state"]["tx"]["speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["state"]["tx"]["speedOnIifKbit"]
this.statTx.centerFreq = vals["state"]["tx"]["centerFreq"]
this.statTx.symSpeed = vals["state"]["tx"]["symSpeed"]
this.statDevice.adrv = vals["mainState"]["device.adrv"]
this.statDevice.zynq = vals["mainState"]["device.zynq"]
this.statDevice.fpga = vals["mainState"]["device.fpga"]
this.testState = vals["mainState"]["testState"]
this.statDevice.adrv = vals["state"]["device"]["adrv"]
this.statDevice.zynq = vals["state"]["device"]["zynq"]
this.statDevice.fpga = vals["state"]["device"]["fpga"]
// аптайм приходит в секундах, надо преобразовать его в человеко-читаемый вид
let uptime = vals["sysinfo"]["uptime"]
let uptime = vals["state"]["device"]["uptime"]
if (uptime) {
let secs = uptime % 60; uptime = Math.floor(uptime / 60)
let mins = uptime % 60; uptime = Math.floor(uptime / 60)
@ -613,11 +612,11 @@
} else {
this.statOs.uptime = '?'
}
this.statOs.load1 = vals["sysinfo"]["load1min"]
this.statOs.load5 = vals["sysinfo"]["load5min"]
this.statOs.load15 = vals["sysinfo"]["load15min"]
this.statOs.totalram = vals["sysinfo"]["totalram"]
this.statOs.freeram = vals["sysinfo"]["freeram"]
this.statOs.load1 = vals["state"]["device"]["load1min"]
this.statOs.load5 = vals["state"]["device"]["load5min"]
this.statOs.load15 = vals["state"]["device"]["load15min"]
this.statOs.totalram = vals["state"]["device"]["totalram"]
this.statOs.freeram = vals["state"]["device"]["freeram"]
},
resetPacketsStatistics() {
@ -740,11 +739,11 @@
try {
const fr = await fetch("/api/get/aboutFirmware")
const d = await fr.json()
this.about.firmwareVersion = d["fw.version"]
this.about.modemUid = d["fw.modemId"]
this.about.modemSn = d["fw.modemSn"]
this.about.macManagement = d["fw.macMang"]
this.about.macData = d["fw.macData"]
this.about.firmwareVersion = d["firmware"]["version"]
this.about.modemUid = d["firmware"]["modemId"]
this.about.modemSn = d["firmware"]["modemSn"]
this.about.macManagement = d["firmware"]["macMang"]
this.about.macData = d["firmware"]["macData"]
} catch (e) {
console.log('Ошибка загрузки версии ПО', e)
}

View File

@ -551,39 +551,39 @@
updateRxtxSettings(vals) {
this.submitStatus.rxtx = false
this.paramRxtx.txEn = vals["settings"]["txEn"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["txModulatorIsTest"]
this.paramRxtx.txCentralFreq = this.inputFormatNumber(vals["settings"]["txCentralFreq"], {min:900000,step:0.01})
this.paramRxtx.txAttenuation = vals["settings"]["txAttenuation"]
this.paramRxtx.rxAgcEn = vals["settings"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = this.inputFormatNumber(vals["settings"]["rxCentralFreq"], {min:900000,step:0.01})
this.paramRxtx.rxBaudrate = this.inputFormatNumber(vals["settings"]["rxBaudrate"], {min:200000,max:54000000,step:1})
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
this.paramRxtx.txEn = vals["settings"]["rxtx"]["txEn"]
this.paramRxtx.txModulatorIsTest = vals["settings"]["rxtx"]["txModulatorIsTest"]
this.paramRxtx.txCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["txCentralFreq"], {min:900000,step:0.01})
this.paramRxtx.txAttenuation = vals["settings"]["rxtx"]["txAttenuation"]
this.paramRxtx.rxAgcEn = vals["settings"]["rxtx"]["rxAgcEn"]
this.paramRxtx.rxManualGain = vals["settings"]["rxtx"]["rxManualGain"]
this.paramRxtx.rxSpectrumInversion = vals["settings"]["rxtx"]["rxSpectrumInversion"]
this.paramRxtx.rxCentralFreq = this.inputFormatNumber(vals["settings"]["rxtx"]["rxCentralFreq"], {min:900000,step:0.01})
this.paramRxtx.rxBaudrate = this.inputFormatNumber(vals["settings"]["rxtx"]["rxBaudrate"], {min:200000,max:54000000,step:1})
this.paramRxtx.rxRolloff = vals["settings"]["rxtx"]["rxRolloff"]
},
updateBuclnbSettings(vals) {
this.submitStatus.buclnb = false
this.paramBuclnb.bucRefClk10M = vals["settings"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["lnbPowering"]
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["bucLnbAutoStart"]
this.paramBuclnb.bucRefClk10M = vals["settings"]["buclnb"]["bucRefClk10M"]
this.paramBuclnb.bucPowering = vals["settings"]["buclnb"]["bucPowering"]
this.paramBuclnb.lnbRefClk10M = vals["settings"]["buclnb"]["lnbRefClk10M"]
this.paramBuclnb.lnbPowering = vals["settings"]["buclnb"]["lnbPowering"]
this.paramBuclnb.srvRefClk10M = vals["settings"]["buclnb"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["buclnb"]["bucLnbAutoStart"]
},
updateDpdiSettings(vals) {
this.submitStatus.dpdi = false
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdiIsPositional"]
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdiPositionStationLatitude"]
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdiPositionStationLongitude"]
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdiPositionSatelliteLongitude"]
this.paramDpdi.dpdiDelay = vals["settings"]["dpdiDelay"]
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdi"]["dpdiIsPositional"]
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdi"]["dpdiPositionStationLatitude"]
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdi"]["dpdiPositionStationLongitude"]
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdi"]["dpdiPositionSatelliteLongitude"]
this.paramDpdi.dpdiDelay = vals["settings"]["dpdi"]["dpdiDelay"]
},
updateNetworkSettings(vals) {
this.submitStatus.network = false
this.paramNetwork.netCesPassword = vals["settings"]["netCesPassword"]
this.paramNetwork.netManagementIp = vals["settings"]["netManagementIp"]
this.paramNetwork.netServerName = vals["settings"]["netServerName"]
this.paramNetwork.netCesPassword = vals["settings"]["network"]["netCesPassword"]
this.paramNetwork.netManagementIp = vals["settings"]["network"]["netManagementIp"]
this.paramNetwork.netServerName = vals["settings"]["network"]["netServerName"]
},
// ========== include end from 'common/all-params-methods.js.j2'
@ -608,47 +608,46 @@
}
this.lastUpdateTime = new Date();
this.initState = vals["mainState"]["initState"]
this.initState = vals["state"]["initState"]
this.testState = vals["state"]["testState"]
this.statRx.state = vals["mainState"]["rx.state"]
this.statRx.sym_sync_lock = vals["mainState"]["rx.sym_sync_lock"]
this.statRx.freq_search_lock = vals["mainState"]["rx.freq_search_lock"]
this.statRx.afc_lock = vals["mainState"]["rx.afc_lock"]
this.statRx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
this.statRx.snr = vals["mainState"]["rx.snr"]
this.statRx.rssi = vals["mainState"]["rx.rssi"]
this.statRx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
this.statRx.frameSizeNormal = vals["mainState"]["rx.frameSizeNormal"]
this.statRx.isPilots = vals["mainState"]["rx.isPilots"]
this.statRx.symError = vals["mainState"]["rx.symError"]
this.statRx.freqErr = vals["mainState"]["rx.freqErr"]
this.statRx.freqErrAcc = vals["mainState"]["rx.freqErrAcc"]
this.statRx.inputSignalLevel = vals["mainState"]["rx.inputSignalLevel"]
this.statRx.pllError = vals["mainState"]["rx.pllError"]
this.statRx.speedOnRxKbit = vals["mainState"]["rx.speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"]
this.statRx.packetsOk = vals["mainState"]["rx.packetsOk"]
this.statRx.packetsBad = vals["mainState"]["rx.packetsBad"]
this.statRx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
this.statRx.state = vals["state"]["rx"]["state"]
this.statRx.sym_sync_lock = vals["state"]["rx"]["sym_sync_lock"]
this.statRx.freq_search_lock = vals["state"]["rx"]["freq_search_lock"]
this.statRx.afc_lock = vals["state"]["rx"]["afc_lock"]
this.statRx.pkt_sync = vals["state"]["rx"]["pkt_sync"]
this.statRx.snr = vals["state"]["rx"]["snr"]
this.statRx.rssi = vals["state"]["rx"]["rssi"]
this.statRx.modcod = modcodToStr(vals["state"]["rx"]["modcod"])
this.statRx.frameSizeNormal = vals["state"]["rx"]["frameSizeNormal"]
this.statRx.isPilots = vals["state"]["rx"]["isPilots"]
this.statRx.symError = vals["state"]["rx"]["symError"]
this.statRx.freqErr = vals["state"]["rx"]["freqErr"]
this.statRx.freqErrAcc = vals["state"]["rx"]["freqErrAcc"]
this.statRx.inputSignalLevel = vals["state"]["rx"]["inputSignalLevel"]
this.statRx.pllError = vals["state"]["rx"]["pllError"]
this.statRx.speedOnRxKbit = vals["state"]["rx"]["speedOnRxKbit"]
this.statRx.speedOnIifKbit = vals["state"]["rx"]["speedOnIifKbit"]
this.statRx.packetsOk = vals["state"]["rx"]["packetsOk"]
this.statRx.packetsBad = vals["state"]["rx"]["packetsBad"]
this.statRx.packetsDummy = vals["state"]["rx"]["packetsDummy"]
this.statTx.state = vals["mainState"]["tx.state"]
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.statTx.centerFreq = vals["mainState"]["tx.centerFreq"]
this.statTx.symSpeed = vals["mainState"]["tx.symSpeed"]
this.statTx.state = vals["state"]["tx"]["state"]
this.statTx.modcod = modcodToStr(vals["state"]["tx"]["modcod"])
this.statTx.speedOnTxKbit = vals["state"]["tx"]["speedOnTxKbit"]
this.statTx.speedOnIifKbit = vals["state"]["tx"]["speedOnIifKbit"]
this.statTx.centerFreq = vals["state"]["tx"]["centerFreq"]
this.statTx.symSpeed = vals["state"]["tx"]["symSpeed"]
this.statDevice.adrv = vals["mainState"]["device.adrv"]
this.statDevice.zynq = vals["mainState"]["device.zynq"]
this.statDevice.fpga = vals["mainState"]["device.fpga"]
this.statDevice.upgradeStatus = vals["mainState"]["device.upgradeStatus"]
this.statDevice.upgradePercent = vals["mainState"]["device.upgradePercent"]
this.statDevice.upgradeImage = vals["mainState"]["device.upgradeImage"]
this.testState = vals["mainState"]["testState"]
this.statDevice.adrv = vals["state"]["device"]["adrv"]
this.statDevice.zynq = vals["state"]["device"]["zynq"]
this.statDevice.fpga = vals["state"]["device"]["fpga"]
this.statDevice.upgradeStatus = vals["state"]["device"]["upgradeStatus"]
this.statDevice.upgradePercent = vals["state"]["device"]["upgradePercent"]
this.statDevice.upgradeImage = vals["state"]["device"]["upgradeImage"]
// аптайм приходит в секундах, надо преобразовать его в человеко-читаемый вид
let uptime = vals["sysinfo"]["uptime"]
let uptime = vals["state"]["device"]["uptime"]
if (uptime) {
let secs = uptime % 60; uptime = Math.floor(uptime / 60)
let mins = uptime % 60; uptime = Math.floor(uptime / 60)
@ -660,11 +659,11 @@
} else {
this.statOs.uptime = '?'
}
this.statOs.load1 = vals["sysinfo"]["load1min"]
this.statOs.load5 = vals["sysinfo"]["load5min"]
this.statOs.load15 = vals["sysinfo"]["load15min"]
this.statOs.totalram = vals["sysinfo"]["totalram"]
this.statOs.freeram = vals["sysinfo"]["freeram"]
this.statOs.load1 = vals["state"]["device"]["load1min"]
this.statOs.load5 = vals["state"]["device"]["load5min"]
this.statOs.load15 = vals["state"]["device"]["load15min"]
this.statOs.totalram = vals["state"]["device"]["totalram"]
this.statOs.freeram = vals["state"]["device"]["freeram"]
},
resetPacketsStatistics() {
@ -799,11 +798,11 @@
try {
const fr = await fetch("/api/get/aboutFirmware")
const d = await fr.json()
this.about.firmwareVersion = d["fw.version"]
this.about.modemUid = d["fw.modemId"]
this.about.modemSn = d["fw.modemSn"]
this.about.macManagement = d["fw.macMang"]
this.about.macData = d["fw.macData"]
this.about.firmwareVersion = d["firmware"]["version"]
this.about.modemUid = d["firmware"]["modemId"]
this.about.modemSn = d["firmware"]["modemSn"]
this.about.macManagement = d["firmware"]["macMang"]
this.about.macData = d["firmware"]["macData"]
} catch (e) {
console.log('Ошибка загрузки версии ПО', e)
}