изменил везде настройки CinC на настройки DPDI, что верно и что используется теперь в TDMA модеме
This commit is contained in:
parent
fe3b45dc9e
commit
1b6b8b5329
2
dependencies/control_system_client
vendored
2
dependencies/control_system_client
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 1780093e8bee4de09d68e702c8d5ee759d8f4de0
|
Subproject commit 72bc52d7ae64cea480768efeb8a24e9cda21fda5
|
@ -47,13 +47,6 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"widget": "settings-container",
|
|
||||||
"childs": [
|
|
||||||
{"widget": "h3", "label": "Настройки позиционирования"},
|
|
||||||
{"widget": "number", "label": "Задержка до спутника, мс", "name": "rxTxSatDelay", "min": 0, "step": 1, "max": 600}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"buclnb": [
|
"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": [
|
"network": [
|
||||||
{"widget": "h2", "label": "Настройки сети"},
|
{"widget": "h2", "label": "Настройки сети"},
|
||||||
{
|
{
|
||||||
@ -237,26 +250,26 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"cinc": [
|
"dpdi": [
|
||||||
{"widget": "h2", "label": "Настройки режима CinC", "v_show": "paramRxtx.isCinC"},
|
{"widget": "h2", "label": "Настройки режима CinC", "v_show": "paramRxtx.isCinC"},
|
||||||
{
|
{
|
||||||
"widget": "settings-container", "v_show": "paramRxtx.isCinC",
|
"widget": "settings-container", "v_show": "paramRxtx.isCinC",
|
||||||
"childs": [
|
"childs": [
|
||||||
{
|
{
|
||||||
"widget": "select", "label": "Метод расчета задержки", "name": "cincIsPositional",
|
"widget": "select", "label": "Метод расчета задержки", "name": "dpdiIsPositional",
|
||||||
"values": [
|
"values": [
|
||||||
{"label": "Позиционированием", "value": "true"},
|
{"label": "Позиционированием", "value": "true"},
|
||||||
{"label": "Окном задержки", "value": "false"}
|
{"label": "Окном задержки", "value": "false"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{"widget": "number", "label": "Полоса поиска, КГц ±", "name": "cincSearchBandwidth", "min": 0, "step": 1, "max": 100},
|
{"widget": "number", "label": "Полоса поиска, КГц ±", "name": "dpdiSearchBandwidth", "min": 0, "step": 1, "max": 100},
|
||||||
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramCinc.cincIsPositional === true"},
|
{"widget": "h2", "label": "Настройки позиционирования", "v_show": "paramDpdi.dpdiIsPositional === true"},
|
||||||
{"widget": "number", "label": "Широта станции", "name": "cincPositionStationLatitude", "v_show": "paramCinc.cincIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
{"widget": "number", "label": "Широта станции", "name": "dpdiPositionStationLatitude", "v_show": "paramDpdi.dpdiIsPositional === 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": "dpdiPositionStationLongitude", "v_show": "paramDpdi.dpdiIsPositional === 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": "number", "label": "Подспутниковая точка", "name": "dpdiPositionSatelliteLongitude", "v_show": "paramDpdi.dpdiIsPositional === true", "min": -180, "step": 0.000001, "max": 180},
|
||||||
{"widget": "h2", "label": "Задержка до спутника", "v_show": "paramCinc.cincIsPositional === false"},
|
{"widget": "h2", "label": "Задержка до спутника", "v_show": "paramDpdi.dpdiIsPositional === false"},
|
||||||
{"widget": "number", "label": "от, мс", "name": "cincDelayMin", "v_show": "paramCinc.cincIsPositional === false", "min": 0, "step": 0.1, "max": 400},
|
{"widget": "number", "label": "от, мс", "name": "dpdiDelayMin", "v_show": "paramDpdi.dpdiIsPositional === 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": "dpdiDelayMax", "v_show": "paramDpdi.dpdiIsPositional === false", "min": 0, "step": 0.1, "max": 400}]
|
||||||
},
|
},
|
||||||
{"widget": "submit", "v_show": "paramRxtx.isCinC"}
|
{"widget": "submit", "v_show": "paramRxtx.isCinC"}
|
||||||
],
|
],
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% from 'common/widgets.j2' import build_widget %}
|
{% from 'common/widgets.j2' import build_widget %}
|
||||||
<div class="tabs-body-item" v-if="activeTab === 'setup' && settingFetchComplete">
|
<div class="tabs-body-item" v-if="activeTab === 'setup' && settingFetchComplete">
|
||||||
{% for cat in ['rxtx', 'cinc', 'buclnb'] %}
|
{% for cat in ['rxtx', 'dpdi', 'buclnb'] %}
|
||||||
{% if cat in params %}
|
{% if cat in params %}
|
||||||
{% for w in params[cat] %}{{ build_widget(cat, w) | indent(12, true) }}{% endfor %}
|
{% for w in params[cat] %}{{ build_widget(cat, w) | indent(12, true) }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
10
src/main.cpp
10
src/main.cpp
@ -297,8 +297,8 @@ public:
|
|||||||
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
#ifdef MODEM_IS_SCPC
|
|
||||||
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/cinc", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
|
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/dpdi", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
|
||||||
if (req.method != "POST") {
|
if (req.method != "POST") {
|
||||||
http::server::stockReply(http::server::bad_request, rep);
|
http::server::stockReply(http::server::bad_request, rep);
|
||||||
return;
|
return;
|
||||||
@ -313,19 +313,19 @@ public:
|
|||||||
boost::property_tree::ptree pt;
|
boost::property_tree::ptree pt;
|
||||||
read_json(ss, pt);
|
read_json(ss, pt);
|
||||||
|
|
||||||
api->setCincSettings(pt);
|
api->setDpdiSettings(pt);
|
||||||
|
|
||||||
std::string result = R"({"status":"ok","settings":)";
|
std::string result = R"({"status":"ok","settings":)";
|
||||||
result += api->loadSettings();
|
result += api->loadSettings();
|
||||||
result += "}";
|
result += "}";
|
||||||
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
||||||
} catch (std::exception& e) {
|
} 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()) + "}";
|
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());
|
rep.content.insert(rep.content.end(), result.c_str(), result.c_str() + result.size());
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
#endif
|
|
||||||
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/rxtx", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
|
s.resources.emplace_back(std::make_unique<http::auth::AuthRequiredResource>("/api/set/rxtx", this->auth, http::auth::User::EDIT_SETTINGS, [this](const auto& req, auto& rep) {
|
||||||
if (req.method != "POST") {
|
if (req.method != "POST") {
|
||||||
http::server::stockReply(http::server::bad_request, rep);
|
http::server::stockReply(http::server::bad_request, rep);
|
||||||
|
@ -298,8 +298,8 @@ private:
|
|||||||
demodulator_settings demod{};
|
demodulator_settings demod{};
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
ACM_parameters_serv_ acm{};
|
ACM_parameters_serv_ acm{};
|
||||||
DPDI_parmeters dpdi{};
|
|
||||||
#endif
|
#endif
|
||||||
|
DPDI_parmeters dpdi{};
|
||||||
buc_lnb_settings bucLnb{};
|
buc_lnb_settings bucLnb{};
|
||||||
|
|
||||||
std::lock_guard lock(this->cpApiMutex);
|
std::lock_guard lock(this->cpApiMutex);
|
||||||
@ -307,8 +307,8 @@ private:
|
|||||||
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDemodulatorSettings()", CP_GetDemodulatorSettings(sid, demod));
|
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDemodulatorSettings()", CP_GetDemodulatorSettings(sid, demod));
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetAcmParams()", CP_GetAcmParams(sid, &acm));
|
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetAcmParams()", CP_GetAcmParams(sid, &acm));
|
||||||
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetDpdiParams()", CP_GetDpdiParams(sid, &dpdi));
|
|
||||||
#endif
|
#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));
|
logCpApiError("api_driver::TerminalApiDaemon::updateSettings()->CP_GetBUC_LNB_settings()", CP_GetBUC_LNB_settings(sid, bucLnb));
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -317,8 +317,8 @@ private:
|
|||||||
this->demodSettings = demod;
|
this->demodSettings = demod;
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
this->acmSettings = acm;
|
this->acmSettings = acm;
|
||||||
this->dpdiSettings = dpdi;
|
|
||||||
#endif
|
#endif
|
||||||
|
this->dpdiSettings = dpdi;
|
||||||
this->bucLnbSettings = bucLnb;
|
this->bucLnbSettings = bucLnb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -544,8 +544,8 @@ private:
|
|||||||
demodulator_settings demodSettings{};
|
demodulator_settings demodSettings{};
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
ACM_parameters_serv_ acmSettings{};
|
ACM_parameters_serv_ acmSettings{};
|
||||||
DPDI_parmeters dpdiSettings{};
|
|
||||||
#endif
|
#endif
|
||||||
|
DPDI_parmeters dpdiSettings{};
|
||||||
buc_lnb_settings bucLnbSettings{};
|
buc_lnb_settings bucLnbSettings{};
|
||||||
|
|
||||||
std::shared_mutex networkSettingsMutex;
|
std::shared_mutex networkSettingsMutex;
|
||||||
@ -611,27 +611,27 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Получение настроек, копирует текущие значения в структуры, переданные по указателю. Если передан пустой указатель, копирования не произойдет.
|
* Получение настроек, копирует текущие значения в структуры, переданные по указателю. Если передан пустой указатель, копирования не произойдет.
|
||||||
*/
|
*/
|
||||||
|
void getSettings(
|
||||||
|
modulator_settings* mod, demodulator_settings* demod,
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
void getSettings(modulator_settings* mod, demodulator_settings* demod, ACM_parameters_serv_* acm, DPDI_parmeters* dpdi, buc_lnb_settings* bucLnb) {
|
ACM_parameters_serv_* acm,
|
||||||
if (mod || demod || acm || dpdi || bucLnb) {
|
#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);
|
std::shared_lock lock(this->settingsMutex);
|
||||||
if (mod) { *mod = this->modSettings; }
|
if (mod) { *mod = this->modSettings; }
|
||||||
if (demod) { *demod = this->demodSettings; }
|
if (demod) { *demod = this->demodSettings; }
|
||||||
|
#ifdef MODEM_IS_SCPC
|
||||||
if (acm) { *acm = this->acmSettings; }
|
if (acm) { *acm = this->acmSettings; }
|
||||||
|
#endif
|
||||||
if (dpdi) { *dpdi = this->dpdiSettings; }
|
if (dpdi) { *dpdi = this->dpdiSettings; }
|
||||||
if (bucLnb) { *bucLnb = this->bucLnbSettings; }
|
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
|
#ifdef MODEM_IS_SCPC
|
||||||
bool getIsCinC() {
|
bool getIsCinC() {
|
||||||
@ -699,21 +699,19 @@ public:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MODEM_IS_SCPC
|
void setSettingsDpdi(DPDI_parmeters& s, bool readback = true) {
|
||||||
void setSettingsCinc(DPDI_parmeters& s, bool readback = true) {
|
|
||||||
std::lock_guard lock(this->cpApiMutex);
|
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::setSettingsDpdi()->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_SetDpdiParams()", CP_SetDpdiParams(sid, s));
|
||||||
if (readback) {
|
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};
|
std::lock_guard lock2{this->settingsMutex};
|
||||||
this->dpdiSettings = s;
|
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) {
|
void setSettingsBucLnb(buc_lnb_settings& bucLnb, bool readback = true) {
|
||||||
std::lock_guard lock(this->cpApiMutex);
|
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;
|
out << std::fixed << std::setprecision(prec) << value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef MODEM_IS_SCPC
|
|
||||||
double translateCoordinates(uint8_t deg, uint8_t min) {
|
double translateCoordinates(uint8_t deg, uint8_t min) {
|
||||||
return static_cast<double>(deg) + static_cast<double>(min) / 60;
|
return static_cast<double>(deg) + static_cast<double>(min) / 60;
|
||||||
}
|
}
|
||||||
@ -835,7 +833,6 @@ std::tuple<uint8_t, uint8_t> translateCoordinates(double abs) {
|
|||||||
auto min = static_cast<uint8_t>(min_double);
|
auto min = static_cast<uint8_t>(min_double);
|
||||||
return std::make_tuple(deg, min);
|
return std::make_tuple(deg, min);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
std::string api_driver::ApiDriver::loadTerminalState() const {
|
std::string api_driver::ApiDriver::loadTerminalState() const {
|
||||||
@ -876,7 +873,7 @@ std::string api_driver::ApiDriver::loadTerminalState() const {
|
|||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
modulator_settings modSet{};
|
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.centerFreq\":"; writeDouble(result, modSet.central_freq_in_kGz);
|
||||||
result << ",\"tx.symSpeed\":"; writeDouble(result, (static_cast<double>(modSet.baudrate) / 1000.0));
|
result << ",\"tx.symSpeed\":"; writeDouble(result, (static_cast<double>(modSet.baudrate) / 1000.0));
|
||||||
}
|
}
|
||||||
@ -1018,12 +1015,12 @@ std::string api_driver::ApiDriver::loadSettings() const {
|
|||||||
demodulator_settings demodSettings{};
|
demodulator_settings demodSettings{};
|
||||||
buc_lnb_settings bucLnb{};
|
buc_lnb_settings bucLnb{};
|
||||||
TerminalNetworkSettings network;
|
TerminalNetworkSettings network;
|
||||||
|
DPDI_parmeters dpdiSettings{};
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
ACM_parameters_serv_ acmSettings{};
|
ACM_parameters_serv_ acmSettings{};
|
||||||
DPDI_parmeters dpdiSettings{};
|
|
||||||
daemon->getSettings(&modSettings, &demodSettings, &acmSettings, &dpdiSettings, &bucLnb);
|
daemon->getSettings(&modSettings, &demodSettings, &acmSettings, &dpdiSettings, &bucLnb);
|
||||||
#else
|
#else
|
||||||
daemon->getSettings(&modSettings, &demodSettings, &bucLnb);
|
daemon->getSettings(&modSettings, &demodSettings, &dpdiSettings, &bucLnb);
|
||||||
#endif
|
#endif
|
||||||
daemon->getNetworkSettings(network);
|
daemon->getNetworkSettings(network);
|
||||||
|
|
||||||
@ -1060,16 +1057,23 @@ std::string api_driver::ApiDriver::loadSettings() const {
|
|||||||
result << ",\"aupcMinAttenuation\":"; writeDouble(result, acmSettings.min_attenuation_aupc);
|
result << ",\"aupcMinAttenuation\":"; writeDouble(result, acmSettings.min_attenuation_aupc);
|
||||||
result << ",\"aupcMaxAttenuation\":"; writeDouble(result, acmSettings.max_attenuation_aupc);
|
result << ",\"aupcMaxAttenuation\":"; writeDouble(result, acmSettings.max_attenuation_aupc);
|
||||||
result << ",\"aupcRequiredSnr\":"; writeDouble(result, acmSettings.snr_threashold_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
|
#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
|
#ifdef MODEM_IS_TDMA
|
||||||
result << ",\n\"rxTxSatDelay\":" << static_cast<int>(demodSettings.delay_ms);
|
result << ",\n\"rxTxSatDelay\":" << static_cast<int>(demodSettings.delay_ms);
|
||||||
#endif
|
#endif
|
||||||
@ -1168,7 +1172,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
|||||||
ACM_parameters_serv_ acm{};
|
ACM_parameters_serv_ acm{};
|
||||||
daemon->getSettings(&mod, &demod, &acm, nullptr, nullptr);
|
daemon->getSettings(&mod, &demod, &acm, nullptr, nullptr);
|
||||||
#else
|
#else
|
||||||
daemon->getSettings(&mod, &demod, nullptr);
|
daemon->getSettings(&mod, &demod, nullptr, nullptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// для модулятора
|
// для модулятора
|
||||||
@ -1227,38 +1231,48 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MODEM_IS_SCPC
|
void api_driver::ApiDriver::setDpdiSettings(boost::property_tree::ptree &pt) {
|
||||||
void api_driver::ApiDriver::setCincSettings(boost::property_tree::ptree &pt) {
|
|
||||||
DPDI_parmeters s{};
|
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<bool>("cincIsPositional");
|
s.is_delay_window = !pt.get<bool>("dpdiIsPositional");
|
||||||
s.freq_offset = pt.get<uint32_t>("cincSearchBandwidth");
|
#ifdef MODEM_IS_SCPC
|
||||||
|
s.freq_offset = pt.get<uint32_t>("dpdiSearchBandwidth");
|
||||||
|
#endif
|
||||||
|
|
||||||
auto ctmp = translateCoordinates(pt.get<double>("cincPositionStationLatitude"));
|
auto ctmp = translateCoordinates(pt.get<double>("dpdiPositionStationLatitude"));
|
||||||
s.latitude_station_grad = std::get<0>(ctmp);
|
s.latitude_station_grad = std::get<0>(ctmp);
|
||||||
s.latitude_station_minute = std::get<1>(ctmp);
|
s.latitude_station_minute = std::get<1>(ctmp);
|
||||||
|
|
||||||
ctmp = translateCoordinates(pt.get<double>("cincPositionStationLongitude"));
|
ctmp = translateCoordinates(pt.get<double>("dpdiPositionStationLongitude"));
|
||||||
s.longitude_station_grad = std::get<0>(ctmp);
|
s.longitude_station_grad = std::get<0>(ctmp);
|
||||||
s.longitude_station_minute = std::get<1>(ctmp);
|
s.longitude_station_minute = std::get<1>(ctmp);
|
||||||
|
|
||||||
ctmp = translateCoordinates(pt.get<double>("cincPositionSatelliteLongitude"));
|
ctmp = translateCoordinates(pt.get<double>("dpdiPositionSatelliteLongitude"));
|
||||||
s.longitude_sattelite_grad = std::get<0>(ctmp);
|
s.longitude_sattelite_grad = std::get<0>(ctmp);
|
||||||
s.longitude_sattelite_minute = std::get<1>(ctmp);
|
s.longitude_sattelite_minute = std::get<1>(ctmp);
|
||||||
|
|
||||||
s.min_delay = pt.get<uint32_t>("cincDelayMin");
|
#ifdef MODEM_IS_SCPC
|
||||||
s.max_delay = pt.get<uint32_t>("cincDelayMax");
|
s.min_delay = pt.get<uint32_t>("dpdiDelayMin");
|
||||||
|
s.max_delay = pt.get<uint32_t>("dpdiDelayMax");
|
||||||
this->daemon->setSettingsCinc(s);
|
#else
|
||||||
}
|
s.min_delay = 0;
|
||||||
|
s.max_delay = pt.get<uint32_t>("dpdiDelay");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
this->daemon->setSettingsDpdi(s);
|
||||||
|
}
|
||||||
|
|
||||||
void api_driver::ApiDriver::setBucLnbSettings(boost::property_tree::ptree &pt) {
|
void api_driver::ApiDriver::setBucLnbSettings(boost::property_tree::ptree &pt) {
|
||||||
buc_lnb_settings s{};
|
buc_lnb_settings s{};
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
daemon->getSettings(nullptr, nullptr, nullptr, nullptr, &s);
|
daemon->getSettings(nullptr, nullptr, nullptr, nullptr, &s);
|
||||||
#else
|
#else
|
||||||
daemon->getSettings(nullptr, nullptr, &s);
|
daemon->getSettings(nullptr, nullptr, nullptr, &s);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto tmp = pt.get<int>("bucPowering");
|
auto tmp = pt.get<int>("bucPowering");
|
||||||
|
@ -48,12 +48,13 @@ namespace api_driver {
|
|||||||
*/
|
*/
|
||||||
void setRxTxSettings(boost::property_tree::ptree &pt);
|
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);
|
void setDpdiSettings(boost::property_tree::ptree &pt);
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* Установить настройки BUC и LNB, readback можно получить используя loadTerminalState.
|
* Установить настройки BUC и LNB, readback можно получить используя loadTerminalState.
|
||||||
*/
|
*/
|
||||||
|
@ -322,21 +322,21 @@
|
|||||||
<div class="settings-set-container" v-show="paramRxtx.isCinC">
|
<div class="settings-set-container" v-show="paramRxtx.isCinC">
|
||||||
<label>
|
<label>
|
||||||
<span>Метод расчета задержки</span>
|
<span>Метод расчета задержки</span>
|
||||||
<select v-model="paramCinc.cincIsPositional">
|
<select v-model="paramDpdi.dpdiIsPositional">
|
||||||
<option :value="true">Позиционированием</option>
|
<option :value="true">Позиционированием</option>
|
||||||
<option :value="false">Окном задержки</option>
|
<option :value="false">Окном задержки</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label><span>Полоса поиска, КГц ±</span><input type="number" v-model="paramCinc.cincSearchBandwidth" max="100" step="1"/></label>
|
<label><span>Полоса поиска, КГц ±</span><input type="number" v-model="paramDpdi.dpdiSearchBandwidth" max="100" step="1"/></label>
|
||||||
<h2 v-show="paramCinc.cincIsPositional === true">Настройки позиционирования</h2>
|
<h2 v-show="paramDpdi.dpdiIsPositional === true">Настройки позиционирования</h2>
|
||||||
<label v-show="paramCinc.cincIsPositional === true"><span>Широта станции</span><input type="number" v-model="paramCinc.cincPositionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramCinc.cincIsPositional === true"><span>Долгота станции</span><input type="number" v-model="paramCinc.cincPositionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<label v-show="paramCinc.cincIsPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramCinc.cincPositionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.dpdiPositionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
<h2 v-show="paramCinc.cincIsPositional === false">Задержка до спутника</h2>
|
<h2 v-show="paramDpdi.dpdiIsPositional === false">Задержка до спутника</h2>
|
||||||
<label v-show="paramCinc.cincIsPositional === false"><span>от, мс</span><input type="number" v-model="paramCinc.cincDelayMin" max="400" step="0.1"/></label>
|
<label v-show="paramDpdi.dpdiIsPositional === false"><span>от, мс</span><input type="number" v-model="paramDpdi.dpdiDelayMin" max="400" step="0.1"/></label>
|
||||||
<label v-show="paramCinc.cincIsPositional === false"><span>до, мс</span><input type="number" v-model="paramCinc.cincDelayMax" max="400" step="0.1"/></label>
|
<label v-show="paramDpdi.dpdiIsPositional === false"><span>до, мс</span><input type="number" v-model="paramDpdi.dpdiDelayMax" max="400" step="0.1"/></label>
|
||||||
</div>
|
</div>
|
||||||
<button class="action-button" @click="settingsSubmitCinc()" v-show="paramRxtx.isCinC">Сохранить <span class="submit-spinner" v-show="submitStatus.cinc"></span></button>
|
<button class="action-button" @click="settingsSubmitDpdi()" v-show="paramRxtx.isCinC">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
||||||
<h2>Настройки питания и опорного генератора</h2>
|
<h2>Настройки питания и опорного генератора</h2>
|
||||||
<div class="tabs-item-flex-container">
|
<div class="tabs-item-flex-container">
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
@ -573,7 +573,7 @@
|
|||||||
// false - означает что статистика не отправляется, true - отправляется
|
// false - означает что статистика не отправляется, true - отправляется
|
||||||
submitStatus: {
|
submitStatus: {
|
||||||
rxtx: false,
|
rxtx: false,
|
||||||
cinc: false,
|
dpdi: false,
|
||||||
buclnb: false,
|
buclnb: false,
|
||||||
tcpaccel: false,
|
tcpaccel: false,
|
||||||
network: false,
|
network: false,
|
||||||
@ -617,14 +617,14 @@
|
|||||||
rxRolloff: 2,
|
rxRolloff: 2,
|
||||||
rxGoldan: 0,
|
rxGoldan: 0,
|
||||||
},
|
},
|
||||||
paramCinc: {
|
paramDpdi: {
|
||||||
cincIsPositional: true,
|
dpdiIsPositional: true,
|
||||||
cincSearchBandwidth: 0,
|
dpdiSearchBandwidth: 0,
|
||||||
cincPositionStationLatitude: -180,
|
dpdiPositionStationLatitude: -180,
|
||||||
cincPositionStationLongitude: -180,
|
dpdiPositionStationLongitude: -180,
|
||||||
cincPositionSatelliteLongitude: -180,
|
dpdiPositionSatelliteLongitude: -180,
|
||||||
cincDelayMin: 0,
|
dpdiDelayMin: 0,
|
||||||
cincDelayMax: 0,
|
dpdiDelayMax: 0,
|
||||||
},
|
},
|
||||||
paramBuclnb: {
|
paramBuclnb: {
|
||||||
bucRefClk10M: false,
|
bucRefClk10M: false,
|
||||||
@ -815,24 +815,24 @@
|
|||||||
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
|
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
|
||||||
.finally(() => { this.submitStatus.rxtx = false })
|
.finally(() => { this.submitStatus.rxtx = false })
|
||||||
},
|
},
|
||||||
settingsSubmitCinc() {
|
settingsSubmitDpdi() {
|
||||||
if (this.submitStatus.cinc) { return }
|
if (this.submitStatus.dpdi) { return }
|
||||||
|
|
||||||
let query = {
|
let query = {
|
||||||
"cincIsPositional": this.paramCinc.cincIsPositional,
|
"dpdiIsPositional": this.paramDpdi.dpdiIsPositional,
|
||||||
"cincSearchBandwidth": this.paramCinc.cincSearchBandwidth,
|
"dpdiSearchBandwidth": this.paramDpdi.dpdiSearchBandwidth,
|
||||||
"cincPositionStationLatitude": this.paramCinc.cincPositionStationLatitude,
|
"dpdiPositionStationLatitude": this.paramDpdi.dpdiPositionStationLatitude,
|
||||||
"cincPositionStationLongitude": this.paramCinc.cincPositionStationLongitude,
|
"dpdiPositionStationLongitude": this.paramDpdi.dpdiPositionStationLongitude,
|
||||||
"cincPositionSatelliteLongitude": this.paramCinc.cincPositionSatelliteLongitude,
|
"dpdiPositionSatelliteLongitude": this.paramDpdi.dpdiPositionSatelliteLongitude,
|
||||||
"cincDelayMin": this.paramCinc.cincDelayMin,
|
"dpdiDelayMin": this.paramDpdi.dpdiDelayMin,
|
||||||
"cincDelayMax": this.paramCinc.cincDelayMax,
|
"dpdiDelayMax": this.paramDpdi.dpdiDelayMax,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.submitStatus.cinc = true
|
this.submitStatus.dpdi = true
|
||||||
fetch('/api/set/cinc', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(query), credentials: 'same-origin' })
|
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.updateCincSettings(vals) })
|
.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}`) })
|
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
|
||||||
.finally(() => { this.submitStatus.cinc = false })
|
.finally(() => { this.submitStatus.dpdi = false })
|
||||||
},
|
},
|
||||||
settingsSubmitBuclnb() {
|
settingsSubmitBuclnb() {
|
||||||
if (this.submitStatus.buclnb) { return }
|
if (this.submitStatus.buclnb) { return }
|
||||||
@ -920,15 +920,15 @@
|
|||||||
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
|
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
|
||||||
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
|
this.paramRxtx.rxGoldan = vals["settings"]["rxGoldan"]
|
||||||
},
|
},
|
||||||
updateCincSettings(vals) {
|
updateDpdiSettings(vals) {
|
||||||
this.submitStatus.cinc = false
|
this.submitStatus.dpdi = false
|
||||||
this.paramCinc.cincIsPositional = vals["settings"]["cincIsPositional"]
|
this.paramDpdi.dpdiIsPositional = vals["settings"]["dpdiIsPositional"]
|
||||||
this.paramCinc.cincSearchBandwidth = vals["settings"]["cincSearchBandwidth"]
|
this.paramDpdi.dpdiSearchBandwidth = vals["settings"]["dpdiSearchBandwidth"]
|
||||||
this.paramCinc.cincPositionStationLatitude = vals["settings"]["cincPositionStationLatitude"]
|
this.paramDpdi.dpdiPositionStationLatitude = vals["settings"]["dpdiPositionStationLatitude"]
|
||||||
this.paramCinc.cincPositionStationLongitude = vals["settings"]["cincPositionStationLongitude"]
|
this.paramDpdi.dpdiPositionStationLongitude = vals["settings"]["dpdiPositionStationLongitude"]
|
||||||
this.paramCinc.cincPositionSatelliteLongitude = vals["settings"]["cincPositionSatelliteLongitude"]
|
this.paramDpdi.dpdiPositionSatelliteLongitude = vals["settings"]["dpdiPositionSatelliteLongitude"]
|
||||||
this.paramCinc.cincDelayMin = vals["settings"]["cincDelayMin"]
|
this.paramDpdi.dpdiDelayMin = vals["settings"]["dpdiDelayMin"]
|
||||||
this.paramCinc.cincDelayMax = vals["settings"]["cincDelayMax"]
|
this.paramDpdi.dpdiDelayMax = vals["settings"]["dpdiDelayMax"]
|
||||||
},
|
},
|
||||||
updateBuclnbSettings(vals) {
|
updateBuclnbSettings(vals) {
|
||||||
this.submitStatus.buclnb = false
|
this.submitStatus.buclnb = false
|
||||||
@ -1381,7 +1381,7 @@
|
|||||||
let vals = await d.json()
|
let vals = await d.json()
|
||||||
this.settingFetchComplete = true
|
this.settingFetchComplete = true
|
||||||
this.updateRxtxSettings(vals)
|
this.updateRxtxSettings(vals)
|
||||||
this.updateCincSettings(vals)
|
this.updateDpdiSettings(vals)
|
||||||
this.updateBuclnbSettings(vals)
|
this.updateBuclnbSettings(vals)
|
||||||
this.updateTcpaccelSettings(vals)
|
this.updateTcpaccelSettings(vals)
|
||||||
this.updateNetworkSettings(vals)
|
this.updateNetworkSettings(vals)
|
||||||
|
@ -155,11 +155,23 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-set-container">
|
|
||||||
<h3>Настройки позиционирования</h3>
|
|
||||||
<label><span>Задержка до спутника, мс</span><input type="number" v-model="paramRxtx.rxTxSatDelay" max="600" step="1"/></label>
|
|
||||||
</div>
|
|
||||||
<button class="action-button" @click="settingsSubmitRxtx()">Сохранить <span class="submit-spinner" v-show="submitStatus.rxtx"></span></button>
|
<button class="action-button" @click="settingsSubmitRxtx()">Сохранить <span class="submit-spinner" v-show="submitStatus.rxtx"></span></button>
|
||||||
|
<h2>Настройки DPDI</h2>
|
||||||
|
<div class="settings-set-container">
|
||||||
|
<label>
|
||||||
|
<span>Метод расчета задержки</span>
|
||||||
|
<select v-model="paramDpdi.dpdiIsPositional">
|
||||||
|
<option :value="true">Позиционированием</option>
|
||||||
|
<option :value="false">Окном задержки</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<h2 v-show="paramDpdi.dpdiIsPositional === true">Настройки позиционирования</h2>
|
||||||
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Широта станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLatitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Долгота станции</span><input type="number" v-model="paramDpdi.dpdiPositionStationLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
|
<label v-show="paramDpdi.dpdiIsPositional === true"><span>Подспутниковая точка</span><input type="number" v-model="paramDpdi.dpdiPositionSatelliteLongitude" min="-180" max="180" step="1e-06"/></label>
|
||||||
|
<label v-show="paramDpdi.dpdiIsPositional === false"><span>Задержка до спутника, мс</span><input type="number" v-model="paramDpdi.dpdiDelay" max="400" step="0.1"/></label>
|
||||||
|
</div>
|
||||||
|
<button class="action-button" @click="settingsSubmitDpdi()">Сохранить <span class="submit-spinner" v-show="submitStatus.dpdi"></span></button>
|
||||||
<h2>Настройки питания и опорного генератора</h2>
|
<h2>Настройки питания и опорного генератора</h2>
|
||||||
<div class="tabs-item-flex-container">
|
<div class="tabs-item-flex-container">
|
||||||
<div class="settings-set-container">
|
<div class="settings-set-container">
|
||||||
@ -285,6 +297,7 @@
|
|||||||
submitStatus: {
|
submitStatus: {
|
||||||
rxtx: false,
|
rxtx: false,
|
||||||
buclnb: false,
|
buclnb: false,
|
||||||
|
dpdi: false,
|
||||||
network: false,
|
network: false,
|
||||||
firmwareUpload: false,
|
firmwareUpload: false,
|
||||||
firmwareUpgrade: false,
|
firmwareUpgrade: false,
|
||||||
@ -304,7 +317,6 @@
|
|||||||
rxCentralFreq: 900000,
|
rxCentralFreq: 900000,
|
||||||
rxBaudrate: 0,
|
rxBaudrate: 0,
|
||||||
rxRolloff: 2,
|
rxRolloff: 2,
|
||||||
rxTxSatDelay: 0,
|
|
||||||
},
|
},
|
||||||
paramBuclnb: {
|
paramBuclnb: {
|
||||||
bucRefClk10M: false,
|
bucRefClk10M: false,
|
||||||
@ -314,6 +326,13 @@
|
|||||||
srvRefClk10M: false,
|
srvRefClk10M: false,
|
||||||
bucLnbAutoStart: false,
|
bucLnbAutoStart: false,
|
||||||
},
|
},
|
||||||
|
paramDpdi: {
|
||||||
|
dpdiIsPositional: true,
|
||||||
|
dpdiPositionStationLatitude: -180,
|
||||||
|
dpdiPositionStationLongitude: -180,
|
||||||
|
dpdiPositionSatelliteLongitude: -180,
|
||||||
|
dpdiDelay: 0,
|
||||||
|
},
|
||||||
paramNetwork: {
|
paramNetwork: {
|
||||||
netManagementIp: null,
|
netManagementIp: null,
|
||||||
netIsL2: false,
|
netIsL2: false,
|
||||||
@ -445,7 +464,6 @@
|
|||||||
"rxCentralFreq": this.paramRxtx.rxCentralFreq,
|
"rxCentralFreq": this.paramRxtx.rxCentralFreq,
|
||||||
"rxBaudrate": this.paramRxtx.rxBaudrate,
|
"rxBaudrate": this.paramRxtx.rxBaudrate,
|
||||||
"rxRolloff": this.paramRxtx.rxRolloff,
|
"rxRolloff": this.paramRxtx.rxRolloff,
|
||||||
"rxTxSatDelay": this.paramRxtx.rxTxSatDelay,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.submitStatus.rxtx = true
|
this.submitStatus.rxtx = true
|
||||||
@ -473,6 +491,23 @@
|
|||||||
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
|
.catch((reason) => { alert(`Ошибка при применении настроек: ${reason}`) })
|
||||||
.finally(() => { this.submitStatus.buclnb = false })
|
.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() {
|
settingsSubmitNetwork() {
|
||||||
if (this.submitStatus.network) { return }
|
if (this.submitStatus.network) { return }
|
||||||
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
|
{ if (!confirm("Применение этих настроек может сделать модем недоступным! Продолжить?")) return }
|
||||||
@ -504,7 +539,6 @@
|
|||||||
this.paramRxtx.rxCentralFreq = vals["settings"]["rxCentralFreq"]
|
this.paramRxtx.rxCentralFreq = vals["settings"]["rxCentralFreq"]
|
||||||
this.paramRxtx.rxBaudrate = vals["settings"]["rxBaudrate"]
|
this.paramRxtx.rxBaudrate = vals["settings"]["rxBaudrate"]
|
||||||
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
|
this.paramRxtx.rxRolloff = vals["settings"]["rxRolloff"]
|
||||||
this.paramRxtx.rxTxSatDelay = vals["settings"]["rxTxSatDelay"]
|
|
||||||
},
|
},
|
||||||
updateBuclnbSettings(vals) {
|
updateBuclnbSettings(vals) {
|
||||||
this.submitStatus.buclnb = false
|
this.submitStatus.buclnb = false
|
||||||
@ -515,6 +549,14 @@
|
|||||||
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
|
this.paramBuclnb.srvRefClk10M = vals["settings"]["srvRefClk10M"]
|
||||||
this.paramBuclnb.bucLnbAutoStart = vals["settings"]["bucLnbAutoStart"]
|
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) {
|
updateNetworkSettings(vals) {
|
||||||
this.submitStatus.network = false
|
this.submitStatus.network = false
|
||||||
this.paramNetwork.netManagementIp = vals["settings"]["netManagementIp"]
|
this.paramNetwork.netManagementIp = vals["settings"]["netManagementIp"]
|
||||||
@ -688,6 +730,7 @@
|
|||||||
this.settingFetchComplete = true
|
this.settingFetchComplete = true
|
||||||
this.updateRxtxSettings(vals)
|
this.updateRxtxSettings(vals)
|
||||||
this.updateBuclnbSettings(vals)
|
this.updateBuclnbSettings(vals)
|
||||||
|
this.updateDpdiSettings(vals)
|
||||||
this.updateNetworkSettings(vals)
|
this.updateNetworkSettings(vals)
|
||||||
|
|
||||||
if ('netServerName' in vals['settings']) {
|
if ('netServerName' in vals['settings']) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user