добавление пилотов в вебку
This commit is contained in:
@@ -1090,6 +1090,7 @@ std::string api_driver::ApiDriver::loadSettings() const {
|
||||
result << ",\n\"dvbServicePacketPeriod\":" << acmSettings.period_pack_acm;
|
||||
result << ",\"dvbIsAcm\":" << boolAsStr(acmSettings.enable_acm);
|
||||
result << ",\"txFrameSizeNormal\":" << boolAsStr((modSettings.modcod_tx & 2) == 0);
|
||||
result << ",\"txIsPilots\":" << boolAsStr((modSettings.modcod_tx & 1) != 0);
|
||||
|
||||
result << R"(,"dvbCcmModulation":")" << extractModcodModulation(modSettings.modcod_tx) << "\"";
|
||||
result << R"(,"dvbCcmSpeed":")" << extractModcodSpeed(modSettings.modcod_tx) << "\"";
|
||||
@@ -1187,7 +1188,7 @@ std::string api_driver::ApiDriver::loadFirmwareVersion() const {
|
||||
}
|
||||
|
||||
#ifdef MODEM_IS_SCPC
|
||||
static uint32_t buildModcodFromPt(const boost::property_tree::ptree& pt, const std::string& name, bool isShortFrame) {
|
||||
static uint32_t buildModcodFromPt(const boost::property_tree::ptree& pt, const std::string& name, bool isShortFrame, bool isPilots = false) {
|
||||
uint32_t modcod = 0;
|
||||
const auto mod = pt.get<std::string>(name + "Modulation");
|
||||
const auto speed = pt.get<std::string>(name + "Speed");
|
||||
@@ -1202,7 +1203,7 @@ static uint32_t buildModcodFromPt(const boost::property_tree::ptree& pt, const s
|
||||
}
|
||||
_index++;
|
||||
}
|
||||
return (modcod << 2) | (isShortFrame ? 2 : 0);
|
||||
return (modcod << 2)| (isShortFrame ? 2 : 0) | (isPilots ? 1 : 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1236,7 +1237,8 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
||||
|
||||
#ifdef MODEM_IS_SCPC
|
||||
const bool acmIsShortFrame = !pt.get<bool>("txFrameSizeNormal");
|
||||
mod.modcod_tx = buildModcodFromPt(pt, "dvbCcm", acmIsShortFrame);
|
||||
const bool acmIsPilots = pt.get<bool>("txIsPilots");
|
||||
mod.modcod_tx = buildModcodFromPt(pt, "dvbCcm", acmIsShortFrame, acmIsPilots);
|
||||
#endif
|
||||
|
||||
// демодулятор
|
||||
@@ -1254,8 +1256,13 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
||||
// ACM
|
||||
acm.period_pack_acm = pt.get<uint32_t>("dvbServicePacketPeriod");
|
||||
acm.enable_acm = pt.get<bool>("dvbIsAcm");
|
||||
#ifdef MODEM_IS_SCPC
|
||||
acm.min_modcod_acm = buildModcodFromPt(pt, "dvbAcmMin", acmIsShortFrame, acmIsPilots);
|
||||
acm.max_modcod_acm = buildModcodFromPt(pt, "dvbAcmMax", acmIsShortFrame, acmIsPilots);
|
||||
#else
|
||||
acm.min_modcod_acm = buildModcodFromPt(pt, "dvbAcmMin", acmIsShortFrame);
|
||||
acm.max_modcod_acm = buildModcodFromPt(pt, "dvbAcmMax", acmIsShortFrame);
|
||||
#endif
|
||||
acm.snr_threashold_acm = pt.get<double>("dvbSnrReserve"); // запас ОСШ
|
||||
acm.enable_aupc = pt.get<bool>(json_path("aupcEn", '/'));
|
||||
acm.min_attenuation_aupc = pt.get<int>("aupcMinAttenuation");
|
||||
|
Reference in New Issue
Block a user