diff --git a/dependencies/control_system_client b/dependencies/control_system_client
index 1780093..72bc52d 160000
--- a/dependencies/control_system_client
+++ b/dependencies/control_system_client
@@ -1 +1 @@
-Subproject commit 1780093e8bee4de09d68e702c8d5ee759d8f4de0
+Subproject commit 72bc52d7ae64cea480768efeb8a24e9cda21fda5
diff --git a/front-generator/render-params.json b/front-generator/render-params.json
index 363845e..dc89edf 100644
--- a/front-generator/render-params.json
+++ b/front-generator/render-params.json
@@ -47,13 +47,6 @@
]
}
]
- },
- {
- "widget": "settings-container",
- "childs": [
- {"widget": "h3", "label": "Настройки позиционирования"},
- {"widget": "number", "label": "Задержка до спутника, мс", "name": "rxTxSatDelay", "min": 0, "step": 1, "max": 600}
- ]
}
],
"buclnb": [
@@ -102,6 +95,26 @@
]
}
],
+ "dpdi": [
+ {"widget": "h2", "label": "Настройки DPDI"},
+ {
+ "widget": "settings-container",
+ "childs": [
+ {
+ "widget": "select", "label": "Метод расчета задержки", "name": "dpdiIsPositional",
+ "values": [
+ {"label": "Позиционированием", "value": "true"},
+ {"label": "Окном задержки", "value": "false"}
+ ]
+ },
+ {"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.dpdiIsPositional === true"},
+ {"widget": "number", "label": "Широта станции", "name": "dpdiPositionStationLatitude", "v_show": "paramDpdi.dpdiIsPositional === 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": "dpdiPositionSatelliteLongitude", "v_show": "paramDpdi.dpdiIsPositional === 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": "submit"}
+ ],
"network": [
{"widget": "h2", "label": "Настройки сети"},
{
@@ -237,26 +250,26 @@
]
}
],
- "cinc": [
+ "dpdi": [
{"widget": "h2", "label": "Настройки режима CinC", "v_show": "paramRxtx.isCinC"},
{
"widget": "settings-container", "v_show": "paramRxtx.isCinC",
"childs": [
{
- "widget": "select", "label": "Метод расчета задержки", "name": "cincIsPositional",
+ "widget": "select", "label": "Метод расчета задержки", "name": "dpdiIsPositional",
"values": [
{"label": "Позиционированием", "value": "true"},
{"label": "Окном задержки", "value": "false"}
]
},
- {"widget": "number", "label": "Полоса поиска, КГц ±", "name": "cincSearchBandwidth", "min": 0, "step": 1, "max": 100},
- {"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramCinc.cincIsPositional === true"},
- {"widget": "number", "label": "Широта станции", "name": "cincPositionStationLatitude", "v_show": "paramCinc.cincIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
- {"widget": "number", "label": "Долгота станции", "name": "cincPositionStationLongitude", "v_show": "paramCinc.cincIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
- {"widget": "number", "label": "Подспутниковая точка", "name": "cincPositionSatelliteLongitude", "v_show": "paramCinc.cincIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
- {"widget": "h2", "label": "Задержка до спутника", "v_show": "paramCinc.cincIsPositional === false"},
- {"widget": "number", "label": "от, мс", "name": "cincDelayMin", "v_show": "paramCinc.cincIsPositional === false", "min": 0, "step": 0.1, "max": 400},
- {"widget": "number", "label": "до, мс", "name": "cincDelayMax", "v_show": "paramCinc.cincIsPositional === false", "min": 0, "step": 0.1, "max": 400}]
+ {"widget": "number", "label": "Полоса поиска, КГц ±", "name": "dpdiSearchBandwidth", "min": 0, "step": 1, "max": 100},
+ {"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.dpdiIsPositional === true"},
+ {"widget": "number", "label": "Широта станции", "name": "dpdiPositionStationLatitude", "v_show": "paramDpdi.dpdiIsPositional === 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": "dpdiPositionSatelliteLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
+ {"widget": "h2", "label": "Задержка до спутника", "v_show": "paramDpdi.dpdiIsPositional === false"},
+ {"widget": "number", "label": "от, мс", "name": "dpdiDelayMin", "v_show": "paramDpdi.dpdiIsPositional === 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": "submit", "v_show": "paramRxtx.isCinC"}
],
diff --git a/front-generator/template/common/setup.html.j2 b/front-generator/template/common/setup.html.j2
index 6587bc8..9d79feb 100644
--- a/front-generator/template/common/setup.html.j2
+++ b/front-generator/template/common/setup.html.j2
@@ -1,6 +1,6 @@
{% from 'common/widgets.j2' import build_widget %}
- {% for cat in ['rxtx', 'cinc', 'buclnb'] %}
+ {% for cat in ['rxtx', 'dpdi', 'buclnb'] %}
{% if cat in params %}
{% for w in params[cat] %}{{ build_widget(cat, w) | indent(12, true) }}{% endfor %}
{% endif %}
diff --git a/src/main.cpp b/src/main.cpp
index 4078bc2..3dc34de 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -297,8 +297,8 @@ public:
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
}
}));
-#ifdef MODEM_IS_SCPC
- s.resources.emplace_back(std::make_unique
("/api/set/cinc", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
+
+ s.resources.emplace_back(std::make_unique("/api/set/dpdi", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
if (req.method != "POST") {
http::server::stockReply(http::server::bad_request, rep);
return;
@@ -313,19 +313,19 @@ public:
boost::property_tree::ptree pt;
read_json(ss, pt);
- api->setCincSettings(pt);
+ api->setDpdiSettings(pt);
std::string result = R"({"status":"ok","settings":)";
result += api->loadSettings();
result += "}";
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
} catch (std::exception& e) {
- BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/cinc): Can't set CinC settings: " << e.what();
+ BOOST_LOG_TRIVIAL(error) << "WebHandle(/api/set/dpdi): Can't set DPDI settings: " << e.what();
const std::string result = R"({"status": "error", "error": )" + api_driver::buildEscapedString(e.what()) + "}";
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
}
}));
-#endif
+
s.resources.emplace_back(std::make_unique("/api/set/rxtx", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
if (req.method != "POST") {
http::server::stockReply(http::server::bad_request, rep);
diff --git a/src/terminal_api_driver.cpp b/src/terminal_api_driver.cpp
index d968de0..bf2cfa4 100644
--- a/src/terminal_api_driver.cpp
+++ b/src/terminal_api_driver.cpp
@@ -298,8 +298,8 @@ private:
demodulator_settings demod{};
#ifdef MODEM_IS_SCPC
ACM_parameters_serv_ acm{};
- DPDI_parmeters dpdi{};
#endif
+ DPDI_parmeters dpdi{};
buc_lnb_settings bucLnb{};
std::lock_guard lock(this->cpApiMutex);
@@ -307,8 +307,8 @@ private:
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDemodulatorSettings()", CP_GetDemodulatorSettings(sid, demod));
#ifdef MODEM_IS_SCPC
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetAcmParams()", CP_GetAcmParams(sid, &acm));
- logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDpdiParams()", CP_GetDpdiParams(sid, &dpdi));
#endif
+ logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDpdiParams()", CP_GetDpdiParams(sid, &dpdi));
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetBUC_LNB_settings()", CP_GetBUC_LNB_settings(sid, bucLnb));
{
@@ -317,8 +317,8 @@ private:
this->demodSettings = demod;
#ifdef MODEM_IS_SCPC
this->acmSettings = acm;
- this->dpdiSettings = dpdi;
#endif
+ this->dpdiSettings = dpdi;
this->bucLnbSettings = bucLnb;
}
}
@@ -544,8 +544,8 @@ private:
demodulator_settings demodSettings{};
#ifdef MODEM_IS_SCPC
ACM_parameters_serv_ acmSettings{};
- DPDI_parmeters dpdiSettings{};
#endif
+ DPDI_parmeters dpdiSettings{};
buc_lnb_settings bucLnbSettings{};
std::shared_mutex networkSettingsMutex;
@@ -611,27 +611,27 @@ public:
/**
* Получение настроек, копирует текущие значения в структуры, переданные по указателю. Если передан пустой указатель, копирования не произойдет.
*/
+ void getSettings(
+ modulator_settings* mod, demodulator_settings* demod,
#ifdef MODEM_IS_SCPC
- void getSettings(modulator_settings* mod, demodulator_settings* demod, ACM_parameters_serv_* acm, DPDI_parmeters* dpdi, buc_lnb_settings* bucLnb) {
- if (mod || demod || acm || dpdi || bucLnb) {
+ ACM_parameters_serv_* acm,
+#endif
+ DPDI_parmeters* dpdi, buc_lnb_settings* bucLnb) {
+ if (mod || demod ||
+#ifdef MODEM_IS_SCPC
+ acm ||
+#endif
+ dpdi || bucLnb) {
std::shared_lock lock(this->settingsMutex);
if (mod) { *mod = this->modSettings; }
if (demod) { *demod = this->demodSettings; }
+#ifdef MODEM_IS_SCPC
if (acm) { *acm = this->acmSettings; }
+#endif
if (dpdi) { *dpdi = this->dpdiSettings; }
if (bucLnb) { *bucLnb = this->bucLnbSettings; }
}
}
-#else
- void getSettings(modulator_settings* mod, demodulator_settings* demod, buc_lnb_settings* bucLnb) {
- if (mod || demod || bucLnb) {
- std::shared_lock lock(this->settingsMutex);
- if (mod) { *mod = this->modSettings; }
- if (demod) { *demod = this->demodSettings; }
- if (bucLnb) { *bucLnb = this->bucLnbSettings; }
- }
- }
-#endif
#ifdef MODEM_IS_SCPC
bool getIsCinC() {
@@ -699,21 +699,19 @@ public:
}
#endif
-#ifdef MODEM_IS_SCPC
- void setSettingsCinc(DPDI_parmeters& s, bool readback = true) {
+ void setSettingsDpdi(DPDI_parmeters& s, bool readback = true) {
std::lock_guard lock(this->cpApiMutex);
- logCpApiError("api_driver::TerminalApiDaemon::setSettingsCinc()->CP_SetDmaDebug(begin_save_config)", CP_SetDmaDebug(sid, "begin_save_config", ""));
- logCpApiError("api_driver::TerminalApiDaemon::setSettingsCinc()->CP_SetDpdiParams()", CP_SetDpdiParams(sid, s));
+ logCpApiError("api_driver::TerminalApiDaemon::setSettingsDpdi()->CP_SetDmaDebug(begin_save_config)", CP_SetDmaDebug(sid, "begin_save_config", ""));
+ logCpApiError("api_driver::TerminalApiDaemon::setSettingsDpdi()->CP_SetDpdiParams()", CP_SetDpdiParams(sid, s));
if (readback) {
- logCpApiError("api_driver::TerminalApiDaemon::setSettingsCinc()->CP_GetDpdiParams()", CP_GetDpdiParams(this->sid, &s));
+ logCpApiError("api_driver::TerminalApiDaemon::setSettingsDpdi()->CP_GetDpdiParams()", CP_GetDpdiParams(this->sid, &s));
{
std::lock_guard lock2{this->settingsMutex};
this->dpdiSettings = s;
}
}
- logCpApiError("api_driver::TerminalApiDaemon::setSettingsCinc()->CP_SetDmaDebug(save_config)", CP_SetDmaDebug(sid, "save_config", ""));
+ logCpApiError("api_driver::TerminalApiDaemon::setSettingsDpdi()->CP_SetDmaDebug(save_config)", CP_SetDmaDebug(sid, "save_config", ""));
}
-#endif
void setSettingsBucLnb(buc_lnb_settings& bucLnb, bool readback = true) {
std::lock_guard lock(this->cpApiMutex);
@@ -824,7 +822,7 @@ static void writeDouble(std::ostream& out, double value, int prec = 2) {
out << std::fixed << std::setprecision(prec) << value;
}
}
-#ifdef MODEM_IS_SCPC
+
double translateCoordinates(uint8_t deg, uint8_t min) {
return static_cast(deg) + static_cast(min) / 60;
}
@@ -835,7 +833,6 @@ std::tuple translateCoordinates(double abs) {
auto min = static_cast(min_double);
return std::make_tuple(deg, min);
}
-#endif
std::string api_driver::ApiDriver::loadTerminalState() const {
@@ -876,7 +873,7 @@ std::string api_driver::ApiDriver::loadTerminalState() const {
#else
{
modulator_settings modSet{};
- daemon->getSettings(&modSet, nullptr, nullptr);
+ daemon->getSettings(&modSet, nullptr, nullptr, nullptr);
result << ",\"tx.centerFreq\":"; writeDouble(result, modSet.central_freq_in_kGz);
result << ",\"tx.symSpeed\":"; writeDouble(result, (static_cast(modSet.baudrate) / 1000.0));
}
@@ -1018,12 +1015,12 @@ std::string api_driver::ApiDriver::loadSettings() const {
demodulator_settings demodSettings{};
buc_lnb_settings bucLnb{};
TerminalNetworkSettings network;
+ DPDI_parmeters dpdiSettings{};
#ifdef MODEM_IS_SCPC
ACM_parameters_serv_ acmSettings{};
- DPDI_parmeters dpdiSettings{};
daemon->getSettings(&modSettings, &demodSettings, &acmSettings, &dpdiSettings, &bucLnb);
#else
- daemon->getSettings(&modSettings, &demodSettings, &bucLnb);
+ daemon->getSettings(&modSettings, &demodSettings, &dpdiSettings, &bucLnb);
#endif
daemon->getNetworkSettings(network);
@@ -1060,16 +1057,23 @@ std::string api_driver::ApiDriver::loadSettings() const {
result << ",\"aupcMinAttenuation\":"; writeDouble(result, acmSettings.min_attenuation_aupc);
result << ",\"aupcMaxAttenuation\":"; writeDouble(result, acmSettings.max_attenuation_aupc);
result << ",\"aupcRequiredSnr\":"; writeDouble(result, acmSettings.snr_threashold_aupc);
-
- result << ",\n\"cincIsPositional\":" << boolAsStr(!dpdiSettings.is_delay_window);
- result << ",\"cincSearchBandwidth\":" << dpdiSettings.freq_offset; // полоса поиска в кГц
- result << ",\"cincPositionStationLatitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.latitude_station_grad, dpdiSettings.latitude_station_minute), 6);
- result << ",\"cincPositionStationLongitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.longitude_station_grad, dpdiSettings.longitude_station_minute), 6);
- result << ",\"cincPositionSatelliteLongitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.longitude_sattelite_grad, dpdiSettings.longitude_sattelite_minute), 6);
- result << ",\"cincDelayMin\":" << dpdiSettings.min_delay;
- result << ",\"cincDelayMax\":" << dpdiSettings.max_delay;
#endif
+ result << ",\n\"dpdiIsPositional\":" << boolAsStr(!dpdiSettings.is_delay_window);
+#ifdef MODEM_IS_SCPC
+ result << ",\"dpdiSearchBandwidth\":" << dpdiSettings.freq_offset; // полоса поиска в кГц
+#endif
+ result << ",\"dpdiPositionStationLatitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.latitude_station_grad, dpdiSettings.latitude_station_minute), 6);
+ result << ",\"dpdiPositionStationLongitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.longitude_station_grad, dpdiSettings.longitude_station_minute), 6);
+ result << ",\"dpdiPositionSatelliteLongitude\":"; writeDouble(result, translateCoordinates(dpdiSettings.longitude_sattelite_grad, dpdiSettings.longitude_sattelite_minute), 6);
+#ifdef MODEM_IS_SCPC
+ result << ",\"dpdiDelayMin\":" << dpdiSettings.min_delay;
+ result << ",\"dpdiDelayMax\":" << dpdiSettings.max_delay;
+#else
+ result << ",\"dpdiDelay\":" << dpdiSettings.max_delay;
+#endif
+
+
#ifdef MODEM_IS_TDMA
result << ",\n\"rxTxSatDelay\":" << static_cast(demodSettings.delay_ms);
#endif
@@ -1168,7 +1172,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
ACM_parameters_serv_ acm{};
daemon->getSettings(&mod, &demod, &acm, nullptr, nullptr);
#else
- daemon->getSettings(&mod, &demod, nullptr);
+ daemon->getSettings(&mod, &demod, nullptr, nullptr);
#endif
// для модулятора
@@ -1227,38 +1231,48 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
#endif
}
-#ifdef MODEM_IS_SCPC
-void api_driver::ApiDriver::setCincSettings(boost::property_tree::ptree &pt) {
+void api_driver::ApiDriver::setDpdiSettings(boost::property_tree::ptree &pt) {
DPDI_parmeters s{};
+#ifdef MODEM_IS_SCPC
+ this->daemon->getSettings(nullptr, nullptr, nullptr, &s, nullptr);
+#else
+ this->daemon->getSettings(nullptr, nullptr, &s, nullptr);
+#endif
- s.is_delay_window = !pt.get("cincIsPositional");
- s.freq_offset = pt.get("cincSearchBandwidth");
+ s.is_delay_window = !pt.get("dpdiIsPositional");
+#ifdef MODEM_IS_SCPC
+ s.freq_offset = pt.get("dpdiSearchBandwidth");
+#endif
- auto ctmp = translateCoordinates(pt.get("cincPositionStationLatitude"));
+ auto ctmp = translateCoordinates(pt.get("dpdiPositionStationLatitude"));
s.latitude_station_grad = std::get<0>(ctmp);
s.latitude_station_minute = std::get<1>(ctmp);
- ctmp = translateCoordinates(pt.get("cincPositionStationLongitude"));
+ ctmp = translateCoordinates(pt.get("dpdiPositionStationLongitude"));
s.longitude_station_grad = std::get<0>(ctmp);
s.longitude_station_minute = std::get<1>(ctmp);
- ctmp = translateCoordinates(pt.get("cincPositionSatelliteLongitude"));
+ ctmp = translateCoordinates(pt.get("dpdiPositionSatelliteLongitude"));
s.longitude_sattelite_grad = std::get<0>(ctmp);
s.longitude_sattelite_minute = std::get<1>(ctmp);
- s.min_delay = pt.get("cincDelayMin");
- s.max_delay = pt.get("cincDelayMax");
-
- this->daemon->setSettingsCinc(s);
-}
+#ifdef MODEM_IS_SCPC
+ s.min_delay = pt.get("dpdiDelayMin");
+ s.max_delay = pt.get("dpdiDelayMax");
+#else
+ s.min_delay = 0;
+ s.max_delay = pt.get("dpdiDelay");
#endif
+ this->daemon->setSettingsDpdi(s);
+}
+
void api_driver::ApiDriver::setBucLnbSettings(boost::property_tree::ptree &pt) {
buc_lnb_settings s{};
#ifdef MODEM_IS_SCPC
daemon->getSettings(nullptr, nullptr, nullptr, nullptr, &s);
#else
- daemon->getSettings(nullptr, nullptr, &s);
+ daemon->getSettings(nullptr, nullptr, nullptr, &s);
#endif
auto tmp = pt.get("bucPowering");
diff --git a/src/terminal_api_driver.h b/src/terminal_api_driver.h
index 3b9ec44..dcb316a 100644
--- a/src/terminal_api_driver.h
+++ b/src/terminal_api_driver.h
@@ -48,12 +48,13 @@ namespace api_driver {
*/
void setRxTxSettings(boost::property_tree::ptree &pt);
-#ifdef MODEM_IS_SCPC
+
/**
- * Установить настройки CinC, readback можно получить используя loadTerminalState.
+ * Установить настройки DPDI, readback можно получить используя loadTerminalState.
+ * @note Для TDMA и SCPC модемов эти настройки доступны
*/
- void setCincSettings(boost::property_tree::ptree &pt);
-#endif
+ void setDpdiSettings(boost::property_tree::ptree &pt);
+
/**
* Установить настройки BUC и LNB, readback можно получить используя loadTerminalState.
*/
diff --git a/static/main-scpc.html b/static/main-scpc.html
index 0bf34ea..d6ab325 100644
--- a/static/main-scpc.html
+++ b/static/main-scpc.html
@@ -322,21 +322,21 @@
-
-
Настройки позиционирования
-
-
-
- Задержка до спутника
-
-
+
+ Настройки позиционирования
+
+
+
+ Задержка до спутника
+
+
-
+
Настройки питания и опорного генератора
@@ -573,7 +573,7 @@
// false - означает что статистика не отправляется, true - отправляется
submitStatus: {
rxtx: false,
- cinc: false,
+ dpdi: false,
buclnb: false,
tcpaccel: false,
network: false,
@@ -617,14 +617,14 @@
rxRolloff: 2,
rxGoldan: 0,
},
- paramCinc: {
- cincIsPositional: true,
- cincSearchBandwidth: 0,
- cincPositionStationLatitude: -180,
- cincPositionStationLongitude: -180,
- cincPositionSatelliteLongitude: -180,
- cincDelayMin: 0,
- cincDelayMax: 0,
+ paramDpdi: {
+ dpdiIsPositional: true,
+ dpdiSearchBandwidth: 0,
+ dpdiPositionStationLatitude: -180,
+ dpdiPositionStationLongitude: -180,
+ dpdiPositionSatelliteLongitude: -180,
+ dpdiDelayMin: 0,
+ dpdiDelayMax: 0,
},
paramBuclnb: {
bucRefClk10M: false,
@@ -815,24 +815,24 @@
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
.finally(() => { this.submitStatus.rxtx = false })
},
- settingsSubmitCinc() {
- if (this.submitStatus.cinc) { return }
+ settingsSubmitDpdi() {
+ if (this.submitStatus.dpdi) { return }
let query = {
- "cincIsPositional": this.paramCinc.cincIsPositional,
- "cincSearchBandwidth": this.paramCinc.cincSearchBandwidth,
- "cincPositionStationLatitude": this.paramCinc.cincPositionStationLatitude,
- "cincPositionStationLongitude": this.paramCinc.cincPositionStationLongitude,
- "cincPositionSatelliteLongitude": this.paramCinc.cincPositionSatelliteLongitude,
- "cincDelayMin": this.paramCinc.cincDelayMin,
- "cincDelayMax": this.paramCinc.cincDelayMax,
+ "dpdiIsPositional": this.paramDpdi.dpdiIsPositional,
+ "dpdiSearchBandwidth": this.paramDpdi.dpdiSearchBandwidth,
+ "dpdiPositionStationLatitude": this.paramDpdi.dpdiPositionStationLatitude,
+ "dpdiPositionStationLongitude": this.paramDpdi.dpdiPositionStationLongitude,
+ "dpdiPositionSatelliteLongitude": this.paramDpdi.dpdiPositionSatelliteLongitude,
+ "dpdiDelayMin": this.paramDpdi.dpdiDelayMin,
+ "dpdiDelayMax": this.paramDpdi.dpdiDelayMax,
}
- this.submitStatus.cinc = true
- fetch('/api/set/cinc', {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.updateCincSettings(vals) })
+ this.submitStatus.dpdi = true
+ fetch('/api/set/dpdi', {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.updateDpdiSettings(vals) })
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
- .finally(() => { this.submitStatus.cinc = false })
+ .finally(() => { this.submitStatus.dpdi = false })
},
settingsSubmitBuclnb() {
if (this.submitStatus.buclnb) { return }
@@ -920,15 +920,15 @@
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
},
- updateCincSettings(vals) {
- this.submitStatus.cinc = false
- this.paramCinc.cincIsPositional = vals["settings"]["cincIsPositional"]
- this.paramCinc.cincSearchBandwidth = vals["settings"]["cincSearchBandwidth"]
- this.paramCinc.cincPositionStationLatitude = vals["settings"]["cincPositionStationLatitude"]
- this.paramCinc.cincPositionStationLongitude = vals["settings"]["cincPositionStationLongitude"]
- this.paramCinc.cincPositionSatelliteLongitude = vals["settings"]["cincPositionSatelliteLongitude"]
- this.paramCinc.cincDelayMin = vals["settings"]["cincDelayMin"]
- this.paramCinc.cincDelayMax = vals["settings"]["cincDelayMax"]
+ 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"]
},
updateBuclnbSettings(vals) {
this.submitStatus.buclnb = false
@@ -1381,7 +1381,7 @@
let vals = await d.json()
this.settingFetchComplete = true
this.updateRxtxSettings(vals)
- this.updateCincSettings(vals)
+ this.updateDpdiSettings(vals)
this.updateBuclnbSettings(vals)
this.updateTcpaccelSettings(vals)
this.updateNetworkSettings(vals)
diff --git a/static/main-tdma.html b/static/main-tdma.html
index f55bc29..e6953f3 100644
--- a/static/main-tdma.html
+++ b/static/main-tdma.html
@@ -155,11 +155,23 @@
-
-
Настройки позиционирования
-
-
+ Настройки DPDI
+
+
+
Настройки позиционирования
+
+
+
+
+
+
Настройки питания и опорного генератора
@@ -285,6 +297,7 @@
submitStatus: {
rxtx: false,
buclnb: false,
+ dpdi: false,
network: false,
firmwareUpload: false,
firmwareUpgrade: false,
@@ -304,7 +317,6 @@
rxCentralFreq: 900000,
rxBaudrate: 0,
rxRolloff: 2,
- rxTxSatDelay: 0,
},
paramBuclnb: {
bucRefClk10M: false,
@@ -314,6 +326,13 @@
srvRefClk10M: false,
bucLnbAutoStart: false,
},
+ paramDpdi: {
+ dpdiIsPositional: true,
+ dpdiPositionStationLatitude: -180,
+ dpdiPositionStationLongitude: -180,
+ dpdiPositionSatelliteLongitude: -180,
+ dpdiDelay: 0,
+ },
paramNetwork: {
netManagementIp: null,
netIsL2: false,
@@ -445,7 +464,6 @@
"rxCentralFreq": this.paramRxtx.rxCentralFreq,
"rxBaudrate": this.paramRxtx.rxBaudrate,
"rxRolloff": this.paramRxtx.rxRolloff,
- "rxTxSatDelay": this.paramRxtx.rxTxSatDelay,
}
this.submitStatus.rxtx = true
@@ -473,6 +491,23 @@
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
.finally(() => { this.submitStatus.buclnb = false })
},
+ settingsSubmitDpdi() {
+ if (this.submitStatus.dpdi) { return }
+
+ let query = {
+ "dpdiIsPositional": this.paramDpdi.dpdiIsPositional,
+ "dpdiPositionStationLatitude": this.paramDpdi.dpdiPositionStationLatitude,
+ "dpdiPositionStationLongitude": this.paramDpdi.dpdiPositionStationLongitude,
+ "dpdiPositionSatelliteLongitude": this.paramDpdi.dpdiPositionSatelliteLongitude,
+ "dpdiDelay": this.paramDpdi.dpdiDelay,
+ }
+
+ this.submitStatus.dpdi = true
+ fetch('/api/set/dpdi', {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.updateDpdiSettings(vals) })
+ .catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
+ .finally(() => { this.submitStatus.dpdi = false })
+ },
settingsSubmitNetwork() {
if (this.submitStatus.network) { return }
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
@@ -504,7 +539,6 @@
this.paramRxtx.rxCentralFreq = vals["settings"]["rxCentralFreq"]
this.paramRxtx.rxBaudrate = vals["settings"]["rxBaudrate"]
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
- this.paramRxtx.rxTxSatDelay = vals["settings"]["rxTxSatDelay"]
},
updateBuclnbSettings(vals) {
this.submitStatus.buclnb = false
@@ -515,6 +549,14 @@
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["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"]
+ },
updateNetworkSettings(vals) {
this.submitStatus.network = false
this.paramNetwork.netManagementIp = vals["settings"]["netManagementIp"]
@@ -688,6 +730,7 @@
this.settingFetchComplete = true
this.updateRxtxSettings(vals)
this.updateBuclnbSettings(vals)
+ this.updateDpdiSettings(vals)
this.updateNetworkSettings(vals)
if ('netServerName' in vals['settings']) {