исправление багов: принудительная остановка ssl сервера, ошибка применения QoS профиля, ошибка применения последовательности голда, небольшие изменения в верстке мониторинга

This commit is contained in:
Vladislav Ostapov 2025-01-21 19:56:44 +03:00
parent c54c467f9d
commit 130c3c4dfc
8 changed files with 36 additions and 44 deletions

View File

@ -28,8 +28,8 @@ def extract_param_names(mc):
case 'checkbox': return [{"initValue": 'false'} | copy_fields] case 'checkbox': return [{"initValue": 'false'} | copy_fields]
case 'number': return [{"initValue": widget['min'] if widget['min'] else '0'} | copy_fields] case 'number': return [{"initValue": widget['min'] if widget['min'] else '0'} | copy_fields]
case 'number-int': return [{"initValue": "0"} | copy_fields] case 'number-int': return [{"initValue": "0"} | copy_fields]
case 'modulation-modcod': return [{"name": widget['name'] + "Modulation", "initValue": '"QPSK"'} | copy_fields] case 'modulation-modcod': return [copy_fields | {"name": widget['name'] + "Modulation", "initValue": '"QPSK"'}]
case 'modulation-speed': return [{"name": widget['name'] + "Speed", "initValue": '"1/4"'} | copy_fields] case 'modulation-speed': return [copy_fields | {"name": widget['name'] + "Speed", "initValue": '"1/4"'}]
case 'watch': return [] case 'watch': return []
return [{"initValue": 'null'} | copy_fields] return [{"initValue": 'null'} | copy_fields]

View File

@ -19,11 +19,7 @@
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr> <tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr>
</tbody> <tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
</table>
<p> Статистика пакетов </p>
<table>
<tbody>
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr> <tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr> <tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr> <tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>

View File

@ -73,9 +73,9 @@
updateQosSettings(vals) { updateQosSettings(vals) {
this.submitStatusQos = false this.submitStatusQos = false
this.paramQos.en = vals["settings"]["qos.enabled"] this.paramQos.en = vals["settings"]["qosEnabled"]
const qosProfile = vals["settings"]["qos.profile"] const qosProfile = vals["settings"]["qosProfile"]
if (qosProfile !== null && qosProfile !== undefined) { if (qosProfile !== null && qosProfile !== undefined) {
this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length) this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length)
this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length) this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length)

View File

@ -59,7 +59,8 @@ namespace http::server {
reply_.headers.push_back({.name = "Connection", .value = "keep-alive"}); reply_.headers.push_back({.name = "Connection", .value = "keep-alive"});
} }
BOOST_LOG_TRIVIAL(info) << "HTTP query " << reply_.status << " " << request_.method << " " << request_.queryUri; const auto ep = socket_.remote_endpoint();
BOOST_LOG_TRIVIAL(info) << "HTTP query " << ep.address().to_string() << ":" << ep.port() << " " << reply_.status << " " << request_.method << " " << request_.queryUri;
auto self(shared_from_this()); auto self(shared_from_this());
async_write(socket_, reply_.to_buffers(), [this, self](boost::system::error_code ec, std::size_t) { async_write(socket_, reply_.to_buffers(), [this, self](boost::system::error_code ec, std::size_t) {
@ -92,6 +93,7 @@ namespace http::server {
void SslConnection::stop() { void SslConnection::stop() {
try { try {
stream_.next_layer().socket().close();
stream_.shutdown(); stream_.shutdown();
} catch (std::exception& e) { } catch (std::exception& e) {
BOOST_LOG_TRIVIAL(warning) << "SslConnection::stop(): Can't shutdown ssl socket: " << e.what(); BOOST_LOG_TRIVIAL(warning) << "SslConnection::stop(): Can't shutdown ssl socket: " << e.what();
@ -133,7 +135,8 @@ namespace http::server {
reply_.headers.push_back({.name = "Connection", .value = "keep-alive"}); reply_.headers.push_back({.name = "Connection", .value = "keep-alive"});
} }
BOOST_LOG_TRIVIAL(info) << "HTTPS query " << reply_.status << " " << request_.method << " " << request_.queryUri; const auto ep = stream_.next_layer().socket().remote_endpoint();
BOOST_LOG_TRIVIAL(info) << "HTTPS query " << ep.address().to_string() << ":" << ep.port() << " " << reply_.status << " " << request_.method << " " << request_.queryUri;
auto self(shared_from_this()); auto self(shared_from_this());
async_write(stream_, reply_.to_buffers(), [this, self](boost::system::error_code ec, std::size_t) { async_write(stream_, reply_.to_buffers(), [this, self](boost::system::error_code ec, std::size_t) {

View File

@ -1037,7 +1037,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
#ifdef MODEM_IS_SCPC #ifdef MODEM_IS_SCPC
mod.baudrate = pt.get<uint32_t>("txBaudrate"); mod.baudrate = pt.get<uint32_t>("txBaudrate");
mod.rollof = pt.get<unsigned int>("txRolloff"); mod.rollof = pt.get<unsigned int>("txRolloff");
mod.gold_seq_is_active = pt.get<bool>("txGoldan"); mod.gold_seq_is_active = pt.get<unsigned int>("txGoldan");
#endif #endif
mod.attenuation = pt.get<double>("txAttenuation"); mod.attenuation = pt.get<double>("txAttenuation");
@ -1054,7 +1054,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) {
demod.baudrate = pt.get<uint32_t>("rxBaudrate"); demod.baudrate = pt.get<uint32_t>("rxBaudrate");
demod.rollof = pt.get<unsigned int>("rxRolloff"); demod.rollof = pt.get<unsigned int>("rxRolloff");
#ifdef MODEM_IS_SCPC #ifdef MODEM_IS_SCPC
demod.gold_seq_is_active = pt.get<bool>("rxGoldan"); demod.gold_seq_is_active = pt.get<unsigned int>("rxGoldan");
#endif #endif
#ifdef MODEM_IS_SCPC #ifdef MODEM_IS_SCPC

View File

@ -87,10 +87,11 @@
.settings-set-container th { .settings-set-container th {
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
padding-right: 1em; padding: 0.2em 1em 0.2em 0.2em;
} }
.settings-set-container td { .settings-set-container td {
min-width: 10em; min-width: 10em;
padding: 0.2em;
} }
.tabs-item-flex-container h2 { .tabs-item-flex-container h2 {
margin-top: 0; margin-top: 0;

View File

@ -73,11 +73,7 @@
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr> <tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr>
</tbody> <tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
</table>
<p> Статистика пакетов </p>
<table>
<tbody>
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr> <tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr> <tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr> <tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>
@ -598,12 +594,12 @@
dvbServicePacketPeriod: 0, dvbServicePacketPeriod: 0,
dvbIsAcm: false, dvbIsAcm: false,
txFrameSizeNormal: true, txFrameSizeNormal: true,
dvbCcm: "QPSK", dvbCcmModulation: "QPSK",
dvbCcm: "1/4", dvbCcmSpeed: "1/4",
dvbAcmMin: "QPSK", dvbAcmMinModulation: "QPSK",
dvbAcmMin: "1/4", dvbAcmMinSpeed: "1/4",
dvbAcmMax: "QPSK", dvbAcmMaxModulation: "QPSK",
dvbAcmMax: "1/4", dvbAcmMaxSpeed: "1/4",
dvbSnrReserve: 0, dvbSnrReserve: 0,
aupcEn: false, aupcEn: false,
aupcMinAttenuation: 0, aupcMinAttenuation: 0,
@ -786,12 +782,12 @@
"dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod, "dvbServicePacketPeriod": this.paramRxtx.dvbServicePacketPeriod,
"dvbIsAcm": this.paramRxtx.dvbIsAcm, "dvbIsAcm": this.paramRxtx.dvbIsAcm,
"txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal, "txFrameSizeNormal": this.paramRxtx.txFrameSizeNormal,
"dvbCcm": this.paramRxtx.dvbCcmModulation, "dvbCcmModulation": this.paramRxtx.dvbCcmModulationModulation,
"dvbCcm": this.paramRxtx.dvbCcmSpeed, "dvbCcmSpeed": this.paramRxtx.dvbCcmSpeedSpeed,
"dvbAcmMin": this.paramRxtx.dvbAcmMinModulation, "dvbAcmMinModulation": this.paramRxtx.dvbAcmMinModulationModulation,
"dvbAcmMin": this.paramRxtx.dvbAcmMinSpeed, "dvbAcmMinSpeed": this.paramRxtx.dvbAcmMinSpeedSpeed,
"dvbAcmMax": this.paramRxtx.dvbAcmMaxModulation, "dvbAcmMaxModulation": this.paramRxtx.dvbAcmMaxModulationModulation,
"dvbAcmMax": this.paramRxtx.dvbAcmMaxSpeed, "dvbAcmMaxSpeed": this.paramRxtx.dvbAcmMaxSpeedSpeed,
"dvbSnrReserve": this.paramRxtx.dvbSnrReserve, "dvbSnrReserve": this.paramRxtx.dvbSnrReserve,
"aupcEn": this.paramRxtx.aupcEn, "aupcEn": this.paramRxtx.aupcEn,
"aupcMinAttenuation": this.paramRxtx.aupcMinAttenuation, "aupcMinAttenuation": this.paramRxtx.aupcMinAttenuation,
@ -897,12 +893,12 @@
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.dvbCcmModulation = vals["settings"]["dvbCcm"] this.paramRxtx.dvbCcmModulationModulation = vals["settings"]["dvbCcmModulation"]
this.paramRxtx.dvbCcmSpeed = vals["settings"]["dvbCcm"] this.paramRxtx.dvbCcmSpeedSpeed = vals["settings"]["dvbCcmSpeed"]
this.paramRxtx.dvbAcmMinModulation = vals["settings"]["dvbAcmMin"] this.paramRxtx.dvbAcmMinModulationModulation = vals["settings"]["dvbAcmMinModulation"]
this.paramRxtx.dvbAcmMinSpeed = vals["settings"]["dvbAcmMin"] this.paramRxtx.dvbAcmMinSpeedSpeed = vals["settings"]["dvbAcmMinSpeed"]
this.paramRxtx.dvbAcmMaxModulation = vals["settings"]["dvbAcmMax"] this.paramRxtx.dvbAcmMaxModulationModulation = vals["settings"]["dvbAcmMaxModulation"]
this.paramRxtx.dvbAcmMaxSpeed = vals["settings"]["dvbAcmMax"] this.paramRxtx.dvbAcmMaxSpeedSpeed = vals["settings"]["dvbAcmMaxSpeed"]
this.paramRxtx.dvbSnrReserve = vals["settings"]["dvbSnrReserve"] this.paramRxtx.dvbSnrReserve = vals["settings"]["dvbSnrReserve"]
this.paramRxtx.aupcEn = vals["settings"]["aupcEn"] this.paramRxtx.aupcEn = vals["settings"]["aupcEn"]
this.paramRxtx.aupcMinAttenuation = vals["settings"]["aupcMinAttenuation"] this.paramRxtx.aupcMinAttenuation = vals["settings"]["aupcMinAttenuation"]
@ -1153,9 +1149,9 @@
updateQosSettings(vals) { updateQosSettings(vals) {
this.submitStatusQos = false this.submitStatusQos = false
this.paramQos.en = vals["settings"]["qos.enabled"] this.paramQos.en = vals["settings"]["qosEnabled"]
const qosProfile = vals["settings"]["qos.profile"] const qosProfile = vals["settings"]["qosProfile"]
if (qosProfile !== null && qosProfile !== undefined) { if (qosProfile !== null && qosProfile !== undefined) {
this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length) this.paramQos.rt1 = [] // .splice(0, this.paramQos.rt1.length)
this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length) this.paramQos.rt2 = [] // .splice(0, this.paramQos.rt2.length)

View File

@ -72,11 +72,7 @@
<tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr> <tr><th>Ошибка ФАПЧ</th><td>{{ statRx.pllError }}</td></tr>
<tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на приеме</th><td>{{ statRx.speedOnRxKbit }} кбит/с</td></tr>
<tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr> <tr><th>Инф. скорость на интерфейсе</th><td>{{ statRx.speedOnIifKbit }} кбит/с</td></tr>
</tbody> <tr><td colspan="2" style="padding-top: 1em; text-align: center">Статистика пакетов</td></tr>
</table>
<p> Статистика пакетов </p>
<table>
<tbody>
<tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr> <tr><th>Качественных пакетов</th><td>{{ statRx.packetsOk }}</td></tr>
<tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr> <tr><th>Поврежденных пакетов</th><td>{{ statRx.packetsBad }}</td></tr>
<tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr> <tr><th>DUMMY</th><td>{{ statRx.packetsDummy }}</td></tr>