добавление пилотов в вебку
This commit is contained in:
parent
008ad2f184
commit
35b25287ad
@ -201,6 +201,7 @@
|
|||||||
"widget": "select", "label": "Размер кадра", "name": "txFrameSizeNormal",
|
"widget": "select", "label": "Размер кадра", "name": "txFrameSizeNormal",
|
||||||
"values": [{"label": "normal", "value": "true"}, {"label": "short", "value": "false"}]
|
"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-modcod", "label": "Модуляция", "name": "dvbCcm", "v_show": "paramRxtx.dvbIsAcm === false"},
|
||||||
{"widget": "modulation-speed", "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"},
|
{"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 << ",\n\"dvbServicePacketPeriod\":" << acmSettings.period_pack_acm;
|
||||||
result << ",\"dvbIsAcm\":" << boolAsStr(acmSettings.enable_acm);
|
result << ",\"dvbIsAcm\":" << boolAsStr(acmSettings.enable_acm);
|
||||||
result << ",\"txFrameSizeNormal\":" << boolAsStr((modSettings.modcod_tx & 2) == 0);
|
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"(,"dvbCcmModulation":")" << extractModcodModulation(modSettings.modcod_tx) << "\"";
|
||||||
result << R"(,"dvbCcmSpeed":")" << extractModcodSpeed(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
|
#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;
|
uint32_t modcod = 0;
|
||||||
const auto mod = pt.get<std::string>(name + "Modulation");
|
const auto mod = pt.get<std::string>(name + "Modulation");
|
||||||
const auto speed = pt.get<std::string>(name + "Speed");
|
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++;
|
_index++;
|
||||||
}
|
}
|
||||||
return (modcod << 2) | (isShortFrame ? 2 : 0);
|
return (modcod << 2)| (isShortFrame ? 2 : 0) | (isPilots ? 1 : 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1236,7 +1237,8 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
|||||||
|
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
const bool acmIsShortFrame = !pt.get<bool>("txFrameSizeNormal");
|
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
|
#endif
|
||||||
|
|
||||||
// демодулятор
|
// демодулятор
|
||||||
@ -1254,8 +1256,13 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
|
|||||||
// ACM
|
// ACM
|
||||||
acm.period_pack_acm = pt.get<uint32_t>("dvbServicePacketPeriod");
|
acm.period_pack_acm = pt.get<uint32_t>("dvbServicePacketPeriod");
|
||||||
acm.enable_acm = pt.get<bool>("dvbIsAcm");
|
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.min_modcod_acm = buildModcodFromPt(pt, "dvbAcmMin", acmIsShortFrame);
|
||||||
acm.max_modcod_acm = buildModcodFromPt(pt, "dvbAcmMax", acmIsShortFrame);
|
acm.max_modcod_acm = buildModcodFromPt(pt, "dvbAcmMax", acmIsShortFrame);
|
||||||
|
#endif
|
||||||
acm.snr_threashold_acm = pt.get<double>("dvbSnrReserve"); // запас ОСШ
|
acm.snr_threashold_acm = pt.get<double>("dvbSnrReserve"); // запас ОСШ
|
||||||
acm.enable_aupc = pt.get<bool>(json_path("aupcEn", '/'));
|
acm.enable_aupc = pt.get<bool>(json_path("aupcEn", '/'));
|
||||||
acm.min_attenuation_aupc = pt.get<int>("aupcMinAttenuation");
|
acm.min_attenuation_aupc = pt.get<int>("aupcMinAttenuation");
|
||||||
|
@ -203,6 +203,10 @@
|
|||||||
<option :value="false">short</option>
|
<option :value="false">short</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</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">
|
<label v-show="paramRxtx.dvbIsAcm === false">
|
||||||
<span>Модуляция</span>
|
<span>Модуляция</span>
|
||||||
<select v-model="paramRxtx.dvbCcmModulation" @change="paramRxtx.dvbCcmSpeed = correctModcodSpeed(paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed)">
|
<select v-model="paramRxtx.dvbCcmModulation" @change="paramRxtx.dvbCcmSpeed = correctModcodSpeed(paramRxtx.dvbCcmModulation, paramRxtx.dvbCcmSpeed)">
|
||||||
@ -614,6 +618,7 @@
|
|||||||
dvbServicePacketPeriod: 0,
|
dvbServicePacketPeriod: 0,
|
||||||
dvbIsAcm: false,
|
dvbIsAcm: false,
|
||||||
txFrameSizeNormal: true,
|
txFrameSizeNormal: true,
|
||||||
|
txIsPilots: false,
|
||||||
dvbCcmModulation: "QPSK",
|
dvbCcmModulation: "QPSK",
|
||||||
dvbCcmSpeed: "1/4",
|
dvbCcmSpeed: "1/4",
|
||||||
dvbAcmMinModulation: "QPSK",
|
dvbAcmMinModulation: "QPSK",
|
||||||
@ -805,6 +810,7 @@
|
|||||||
"dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod,
|
"dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod,
|
||||||
"dvbIsAcm": this.paramRxtx.dvbIsAcm,
|
"dvbIsAcm": this.paramRxtx.dvbIsAcm,
|
||||||
"txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal,
|
"txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal,
|
||||||
|
"txIsPilots": this.paramRxtx.txIsPilots,
|
||||||
"dvbCcmModulation": this.paramRxtx.dvbCcmModulation,
|
"dvbCcmModulation": this.paramRxtx.dvbCcmModulation,
|
||||||
"dvbCcmSpeed": this.paramRxtx.dvbCcmSpeed,
|
"dvbCcmSpeed": this.paramRxtx.dvbCcmSpeed,
|
||||||
"dvbAcmMinModulation": this.paramRxtx.dvbAcmMinModulation,
|
"dvbAcmMinModulation": this.paramRxtx.dvbAcmMinModulation,
|
||||||
@ -917,6 +923,7 @@
|
|||||||
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["dvbServicePacketPeriod"]
|
this.paramRxtx.dvbServicePacketPeriod = vals["settings"]["dvbServicePacketPeriod"]
|
||||||
this.paramRxtx.dvbIsAcm = vals["settings"]["dvbIsAcm"]
|
this.paramRxtx.dvbIsAcm = vals["settings"]["dvbIsAcm"]
|
||||||
this.paramRxtx.txFrameSizeNormal = vals["settings"]["txFrameSizeNormal"]
|
this.paramRxtx.txFrameSizeNormal = vals["settings"]["txFrameSizeNormal"]
|
||||||
|
this.paramRxtx.txIsPilots = vals["settings"]["txIsPilots"]
|
||||||
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcmModulation"]
|
this.paramRxtx.dvbCcmModulation = vals["settings"]["dvbCcmModulation"]
|
||||||
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcmSpeed"]
|
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcmSpeed"]
|
||||||
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMinModulation"]
|
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMinModulation"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user