исправления логики веб-страницы и статистики

This commit is contained in:
Vladislav Ostapov 2024-11-05 17:11:36 +03:00
parent 541b08a40e
commit 40e12f1c67
2 changed files with 30 additions and 28 deletions

View File

@ -5,6 +5,7 @@
#include "terminal_api/ControlProtoCInterface.h" #include "terminal_api/ControlProtoCInterface.h"
#include <sstream> #include <sstream>
#include <cmath> #include <cmath>
#include <iomanip>
/* /*
timer_->timeout().connect([=]{ timer_->timeout().connect([=]{
@ -83,7 +84,8 @@ std::string api_driver::ApiDriver::loadTerminalState() {
// формируем структуру для TX // формируем структуру для TX
result << ",\"tx.state\":" << boolAsStr(modulator.is_tx_on); result << ",\"tx.state\":" << boolAsStr(modulator.is_tx_on);
result.precision(2); result << ",\"tx.modcod\":" << modulator.snr_remote; result << ",\"tx.modcod\":" << modulator.modcod;
result << ",\"tx.snr\":" << std::fixed << std::setprecision(2) << modulator.snr_remote;
if (modulator.is_short) { if (modulator.is_short) {
result << R"(,"tx.frameSize":"short")"; result << R"(,"tx.frameSize":"short")";
@ -97,8 +99,8 @@ std::string api_driver::ApiDriver::loadTerminalState() {
result << R"(,"tx.pilots":"no pilots")"; result << R"(,"tx.pilots":"no pilots")";
} }
result.precision(2); result << ",\"tx.speedOnTxKbit\":" << static_cast<double>(modulator.speed_in_bytes_tx) / 128.0; result << ",\"tx.speedOnTxKbit\":" << std::fixed << std::setprecision(2) << static_cast<double>(modulator.speed_in_bytes_tx) / 128.0;
result.precision(2); result << ",\"tx.speedOnIifKbit\":" << (static_cast<double>(modulator.speed_in_bytes_tx_iface) / 128.0); result << ",\"tx.speedOnIifKbit\":" << std::fixed << std::setprecision(2) << (static_cast<double>(modulator.speed_in_bytes_tx_iface) / 128.0);
// формируем структуру для RX // формируем структуру для RX
result << ",\"rx.state\":" << boolAsStr(demodulator.locks.sym_sync_lock && demodulator.locks.freq_lock && demodulator.locks.afc_lock && demodulator.locks.pkt_sync); result << ",\"rx.state\":" << boolAsStr(demodulator.locks.sym_sync_lock && demodulator.locks.freq_lock && demodulator.locks.afc_lock && demodulator.locks.pkt_sync);
@ -107,8 +109,8 @@ std::string api_driver::ApiDriver::loadTerminalState() {
result << ",\"rx.afc_lock\":" << boolAsStr(demodulator.locks.afc_lock); result << ",\"rx.afc_lock\":" << boolAsStr(demodulator.locks.afc_lock);
result << ",\"rx.pkt_sync\":" << boolAsStr(demodulator.locks.pkt_sync); result << ",\"rx.pkt_sync\":" << boolAsStr(demodulator.locks.pkt_sync);
result.precision(2); result << ",\"rx.snr\":" << demodulator.snr; result << ",\"rx.snr\":" << std::fixed << std::setprecision(2) << demodulator.snr;
result.precision(2); result << ",\"rx.rssi\":" << demodulator.rssi; result << ",\"rx.rssi\":" << std::fixed << std::setprecision(2) << demodulator.rssi;
result << ",\"rx.modcod\":" << demodulator.modcod; result << ",\"rx.modcod\":" << demodulator.modcod;
if (demodulator.is_short) { if (demodulator.is_short) {
@ -123,19 +125,19 @@ std::string api_driver::ApiDriver::loadTerminalState() {
result << R"(,"rx.pilots":"no pilots")"; result << R"(,"rx.pilots":"no pilots")";
} }
result.precision(2); result << ",\"rx.symError\":" << demodulator.sym_err; result << ",\"rx.symError\":" << std::fixed << std::setprecision(2) << demodulator.sym_err;
result.precision(2); result << ",\"rx.freqErr\":" << demodulator.crs_freq_err; result << ",\"rx.freqErr\":" << std::fixed << std::setprecision(2) << demodulator.crs_freq_err;
result.precision(2); result << ",\"rx.freqErrAcc\":" << demodulator.fine_freq_err; result << ",\"rx.freqErrAcc\":" << std::fixed << std::setprecision(2) << demodulator.fine_freq_err;
result.precision(2); result << ",\"rx.inputSignalLevel\":" << demodulator.if_overload; result << ",\"rx.inputSignalLevel\":" << std::fixed << std::setprecision(2) << demodulator.if_overload;
result.precision(2); result << ",\"rx.pllError\":" << demodulator.afc_err; result << ",\"rx.pllError\":" << std::fixed << std::setprecision(2) << demodulator.afc_err;
result.precision(2); result << ",\"rx.speedOnRxKbit\":" << (static_cast<double>(demodulator.speed_in_bytes_rx) / 128.0); result << ",\"rx.speedOnRxKbit\":" << std::fixed << std::setprecision(2) << (static_cast<double>(demodulator.speed_in_bytes_rx) / 128.0);
result.precision(2); result << ",\"rx.speedOnIifKbit\":" << (static_cast<double>(demodulator.speed_in_bytes_rx_iface) / 128.0); result << ",\"rx.speedOnIifKbit\":" << std::fixed << std::setprecision(2) << (static_cast<double>(demodulator.speed_in_bytes_rx_iface) / 128.0);
result << ",\"rx.packetsOk\":" << demodulator.packet_ok_cnt; result << ",\"rx.packetsOk\":" << demodulator.packet_ok_cnt;
result << ",\"rx.packetsBad\":" << demodulator.packet_bad_cnt; result << ",\"rx.packetsBad\":" << demodulator.packet_bad_cnt;
result << ",\"rx.packetsDummy\":" << demodulator.dummy_cnt; result << ",\"rx.packetsDummy\":" << demodulator.dummy_cnt;
// формируем структуру для CinC // формируем структуру для CinC
result.precision(3); result << ",\"cinc.occ\":" << state_cinc.ratio_signal_signal; result << ",\"cinc.occ\":" << std::fixed << std::setprecision(3) << state_cinc.ratio_signal_signal;
if (isCinC && modulator.is_tx_on) { if (isCinC && modulator.is_tx_on) {
if (state_cinc.carrier_lock) { if (state_cinc.carrier_lock) {
@ -153,9 +155,9 @@ std::string api_driver::ApiDriver::loadTerminalState() {
result << ",\"cinc.channelDelay\":" << state_cinc.delay_dpdi; result << ",\"cinc.channelDelay\":" << state_cinc.delay_dpdi;
// структура температур девайса // структура температур девайса
result.precision(3); result << ",\"device.adrv\":" << device.adrv_temp; result << ",\"device.adrv\":" << std::fixed << std::setprecision(3) << device.adrv_temp;
result.precision(3); result << ",\"device.fpga\":" << device.pl_temp; result << ",\"device.fpga\":" << std::fixed << std::setprecision(3) << device.pl_temp;
result.precision(3); result << ",\"device.zync\":" << device.zynq_temp; result << ",\"device.zync\":" << std::fixed << std::setprecision(3) << device.zynq_temp;
result << "}"; result << "}";

View File

@ -31,11 +31,11 @@
<h2>Статистика приема</h2> <h2>Статистика приема</h2>
<table> <table>
<tbody> <tbody>
<tr><th>Прием</th><td><span :class="{ indicator_bad: stat_rx.state === true, indicator_good: stat_rx.state === false, indicator: true }"></span></td></tr> <tr><th>Прием</th><td><span :class="{ indicator_bad: stat_rx.state === false, indicator_good: stat_rx.state === true, indicator: true }"></span></td></tr>
<tr><th>Захват символьной</th><td><span :class="{ indicator_bad: stat_rx.sym_sync_lock === true, indicator_good: stat_rx.sym_sync_lock === false, indicator: true }"></span></td></tr> <tr><th>Захват символьной</th><td><span :class="{ indicator_bad: stat_rx.sym_sync_lock === false, indicator_good: stat_rx.sym_sync_lock === true, indicator: true }"></span></td></tr>
<tr><th>Захват ФАПЧ</th><td><span :class="{ indicator_bad: stat_rx.afc_lock === true, indicator_good: stat_rx.afc_lock === false, indicator: true }"></span></td></tr> <tr><th>Захват ФАПЧ</th><td><span :class="{ indicator_bad: stat_rx.afc_lock === false, indicator_good: stat_rx.afc_lock === true, indicator: true }"></span></td></tr>
<tr><th>Захват поиска по частоте</th><td><span :class="{ indicator_bad: stat_rx.freq_search_lock === true, indicator_good: stat_rx.freq_search_lock === false, indicator: true }"></span></td></tr> <tr><th>Захват поиска по частоте</th><td><span :class="{ indicator_bad: stat_rx.freq_search_lock === false, indicator_good: stat_rx.freq_search_lock === true, indicator: true }"></span></td></tr>
<tr><th>Захват пакетной синхр.</th><td><span :class="{ indicator_bad: stat_rx.pkt_sync === true, indicator_good: stat_rx.pkt_sync === false, indicator: true }"></span></td></tr> <tr><th>Захват пакетной синхр.</th><td><span :class="{ indicator_bad: stat_rx.pkt_sync === false, indicator_good: stat_rx.pkt_sync === true, indicator: true }"></span></td></tr>
<tr><th>ОСШ/RSSI</th><td>{{ stat_rx.snr }} / {{ stat_rx.rssi }}</td></tr> <tr><th>ОСШ/RSSI</th><td>{{ stat_rx.snr }} / {{ stat_rx.rssi }}</td></tr>
<tr><th>Modcod</th><td>{{ stat_rx.modcod }}</td></tr> <tr><th>Modcod</th><td>{{ stat_rx.modcod }}</td></tr>
<tr><th>Размер кадра</th><td>{{ stat_rx.frameSize }}</td></tr> <tr><th>Размер кадра</th><td>{{ stat_rx.frameSize }}</td></tr>
@ -62,7 +62,7 @@
<h2>Статистика передачи</h2> <h2>Статистика передачи</h2>
<table> <table>
<tbody> <tbody>
<tr><th>Передача</th><td><span :class="{ indicator_bad: stat_tx.state === true, indicator_good: stat_tx.state === false, indicator: true }"></span></td></tr> <tr><th>Передача</th><td><span :class="{ indicator_bad: stat_tx.state === false, indicator_good: stat_tx.state === true, indicator: true }"></span></td></tr>
<tr><th>ОСШ дальнего приема</th><td>{{ stat_tx.snr }}</td></tr> <tr><th>ОСШ дальнего приема</th><td>{{ stat_tx.snr }}</td></tr>
<tr><th>Modcod</th><td>{{ stat_tx.modcod }}</td></tr> <tr><th>Modcod</th><td>{{ stat_tx.modcod }}</td></tr>
<tr><th>Размер кадра</th><td>{{ stat_tx.frameSize }}</td></tr> <tr><th>Размер кадра</th><td>{{ stat_tx.frameSize }}</td></tr>
@ -77,7 +77,7 @@
<table> <table>
<tbody> <tbody>
<tr><th>ОСС</th><td>{{ stat_cinc.occ }}</td></tr> <tr><th>ОСС</th><td>{{ stat_cinc.occ }}</td></tr>
<tr><th>Захват коррелятора</th><td><span :class="{ indicator_bad: stat_cinc.correlator === true, indicator_good: stat_cinc.correlator === false, indicator: true }"></span></td></tr> <tr><th>Захват коррелятора</th><td><span :class="{ indicator_bad: stat_cinc.correlator === false, indicator_good: stat_cinc.correlator === true, indicator: true }"></span></td></tr>
<tr><th>Кол-во срывов коррелятора</th><td>{{ stat_cinc.correlatorFails }}</td></tr> <tr><th>Кол-во срывов коррелятора</th><td>{{ stat_cinc.correlatorFails }}</td></tr>
<tr><th>Грубая/точная част. ошибка, Гц</th><td>{{ stat_cinc.freqErr }} / {{ stat_cinc.freqErrAcc }}</td></tr> <tr><th>Грубая/точная част. ошибка, Гц</th><td>{{ stat_cinc.freqErr }} / {{ stat_cinc.freqErrAcc }}</td></tr>
<tr><th>Задержка в канале, мс</th><td>{{ stat_cinc.channelDelay }}</td></tr> <tr><th>Задержка в канале, мс</th><td>{{ stat_cinc.channelDelay }}</td></tr>
@ -552,12 +552,12 @@
this.stat_rx.packetsDummy = vals["mainState"]["rx.packetsDummy"] this.stat_rx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
this.stat_tx.state = vals["mainState"]["tx.state"] this.stat_tx.state = vals["mainState"]["tx.state"]
this.stat_tx.snr = vals["mainState"]["rx.snr"] this.stat_tx.snr = vals["mainState"]["tx.snr"]
this.stat_tx.modcod = modcodToStr(vals["mainState"]["rx.modcod"]) this.stat_tx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
this.stat_tx.frameSize = vals["mainState"]["rx.frameSize"] this.stat_tx.frameSize = vals["mainState"]["tx.frameSize"]
this.stat_tx.pilots = vals["mainState"]["rx.pilots"] this.stat_tx.pilots = vals["mainState"]["tx.pilots"]
this.stat_tx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"] this.stat_tx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
this.stat_tx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"] this.stat_tx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
this.stat_cinc.occ = vals["mainState"]["cinc.occ"] this.stat_cinc.occ = vals["mainState"]["cinc.occ"]
this.stat_cinc.correlator = vals["mainState"]["cinc.correlator"] this.stat_cinc.correlator = vals["mainState"]["cinc.correlator"]