исправления логики веб-страницы и статистики
This commit is contained in:
parent
541b08a40e
commit
40e12f1c67
@ -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 << "}";
|
||||||
|
|
||||||
|
@ -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"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user