добавил запись настроек BucLnb

This commit is contained in:
2024-11-12 10:18:03 +03:00
parent cb9d412c8e
commit 857a01528b
4 changed files with 126 additions and 22 deletions

View File

@@ -11,6 +11,7 @@
#include "../dependencies/control_system/common/protocol_commands.h"
typedef boost::property_tree::ptree::path_type json_path;
/**
* Этот демон нужен для того, чтобы получать статистику из API, а так же корректно сохранять настройки
@@ -205,6 +206,22 @@ public:
json = this->qosClassesJson;
}
void setStrringsRxTx(bool readback = true) {}
void setStrringsCinc(bool readback = true) {}
void setStrringsBucLnb(const buc_lnb_settings& bucLnb, bool readback = true) {
std::lock_guard lock(this->cpApiMutex);
buc_lnb_settings tmp = bucLnb;
CP_SetBUC_LNB_settings(this->sid, tmp);
if (readback) {
CP_GetBUC_LNB_settings(this->sid, tmp);
{
std::lock_guard lock2{this->settingsMutex};
this->bucLnbSettings = tmp;
}
}
}
void setQosSettings(bool enabled, const std::string& str, bool readback = true) {
std::lock_guard lock(this->cpApiMutex);
CP_SetQoSSettings(this->sid, str, enabled);
@@ -473,7 +490,43 @@ std::string api_driver::ApiDriver::loadSettings() const {
return result.str();
}
api_driver::ApiDriver::~ApiDriver() = default;
void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
}
void api_driver::ApiDriver::setCincSettings(boost::property_tree::ptree &pt) {
}
void api_driver::ApiDriver::setBucLnbSettings(boost::property_tree::ptree &pt) {
buc_lnb_settings s{};
auto tmp = pt.get<int>(json_path("lnb.powering", '/'));
switch (tmp) {
case 13: s.lnb = voltage_lnb::_13V; break;
case 18: s.lnb = voltage_lnb::_18V; break;
case 24: s.lnb = voltage_lnb::_24V; break;
case 0:
default:
s.lnb = voltage_lnb::DISABLE;
}
s.is_ref_10MHz_lnb = pt.get<bool>(json_path("lnb.refClk10M", '/'));
tmp = pt.get<int>(json_path("buc.powering", '/'));
switch (tmp) {
case 24: s.buc = voltage_buc::_24V; break;
case 48: s.buc = voltage_buc::_48V; break;
case 0:
default:
s.lnb = voltage_lnb::DISABLE;
}
// { "lnb": {"powering": 0} }
s.is_ref_10MHz_buc = pt.get<bool>(json_path("buc.refClk10M", '/'));
s.is_ref_10MHz_output = pt.get<bool>(json_path("serviceSettings.refClk10M", '/'));
s.is_save_current_state = pt.get<bool>(json_path("serviceSettings.autoStart", '/'));
this->daemon->setStrringsBucLnb(s);
}
void api_driver::ApiDriver::setQosSettings(boost::property_tree::ptree &pt) {
bool enabled = pt.get<bool>("en");
@@ -490,3 +543,5 @@ bool api_driver::ApiDriver::getIsCinC() const {
daemon->getSettings(&s, nullptr, nullptr, nullptr, nullptr);
return s.is_cinc;
}
api_driver::ApiDriver::~ApiDriver() = default;