добавление пилотов в вебку
This commit is contained in:
parent
008ad2f184
commit
35b25287ad
@ -201,6 +201,7 @@
|
||||
"widget": "select", "label": "Размер кадра", "name": "txFrameSizeNormal",
|
||||
"values": [{"label": "normal", "value": "true"}, {"label": "short", "value": "false"}]
|
||||
},
|
||||
{"widget": "checkbox", "label": "Пилот-символы", "name": "txIsPilots"},
|
||||
{"widget": "modulation-modcod", "label": "Модуляция", "name": "dvbCcm", "v_show": "paramRxtx.dvbIsAcm === false"},
|
||||
{"widget": "modulation-speed", "label": "Скорость кода", "name": "dvbCcm", "v_show": "paramRxtx.dvbIsAcm === false"},
|
||||
{"widget": "watch-expr", "label": "Расчетная скорость", "expr": "calcInterfaceSpeedKb(paramRxtx.txBaudrate, paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed, paramRxtx.txFrameSizeNormal)", "v_show": "paramRxtx.dvbIsAcm === false"},
|
||||
|
@ -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");
|
||||
|
@ -203,6 +203,10 @@
|
||||
<option :value="false">short</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Пилот-символы</span>
|
||||
<span class="toggle-input"><input type="checkbox" v-model="paramRxtx.txIsPilots" /><span class="slider"></span></span>
|
||||
</label>
|
||||
<label v-show="paramRxtx.dvbIsAcm === false">
|
||||
<span>Модуляция</span>
|
||||
<select v-model="paramRxtx.dvbCcmModulation" @change="paramRxtx.dvbCcmSpeed = correctModcodSpeed(paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed)">
|
||||
@ -614,6 +618,7 @@
|
||||
dvbServicePacketPeriod: 0,
|
||||
dvbIsAcm: false,
|
||||
txFrameSizeNormal: true,
|
||||
txIsPilots: false,
|
||||
dvbCcmModulation: "QPSK",
|
||||
dvbCcmSpeed: "1/4",
|
||||
dvbAcmMinModulation: "QPSK",
|
||||
@ -805,6 +810,7 @@
|
||||
"dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod,
|
||||
"dvbIsAcm": this.paramRxtx.dvbIsAcm,
|
||||
"txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal,
|
||||
"txIsPilots": this.paramRxtx.txIsPilots,
|
||||
"dvbCcmModulation": this.paramRxtx.dvbCcmModulation,
|
||||
"dvbCcmSpeed": this.paramRxtx.dvbCcmSpeed,
|
||||
"dvbAcmMinModulation": this.paramRxtx.dvbAcmMinModulation,
|
||||
@ -917,6 +923,7 @@
|
||||
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["dvbServicePacketPeriod"]
|
||||
this.paramRxtx.dvbIsAcm = vals["settings"]["dvbIsAcm"]
|
||||
this.paramRxtx.txFrameSizeNormal = vals["settings"]["txFrameSizeNormal"]
|
||||
this.paramRxtx.txIsPilots = vals["settings"]["txIsPilots"]
|
||||
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcmModulation"]
|
||||
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcmSpeed"]
|
||||
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMinModulation"]
|
||||
|
Loading…
x
Reference in New Issue
Block a user