компилируемая версия веб-сервера, находится на стадии отладки
This commit is contained in:
parent
55fc322c13
commit
e5e6878351
@ -201,6 +201,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;
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
@ -703,38 +703,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["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["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["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) {
|
||||
|
@ -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();
|
||||
|
||||
|
152
src/main.cpp
152
src/main.cpp
@ -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
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user