больше данных о системе в состоянии устройства (load average + RAM total/free)
This commit is contained in:
parent
5a94f9a4fd
commit
0982544c2e
@ -43,5 +43,5 @@
|
|||||||
statDevice: { // температурные датчики
|
statDevice: { // температурные датчики
|
||||||
adrv: 0, zynq: 0, fpga: 0
|
adrv: 0, zynq: 0, fpga: 0
|
||||||
},
|
},
|
||||||
statOs: {uptime: '?'},
|
statOs: {uptime: '?', load1: '?', load5: '?', load15: '?', totalram: '?', freeram: '?'},
|
||||||
|
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
updateStatistics(vals) {
|
updateStatistics(vals) {
|
||||||
|
function modcodToStr(modcod) {
|
||||||
|
// модкоды из раздела 5.5.2.2 https://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.01.02_60/en_302307v010102p.pdf
|
||||||
|
const modcods = [
|
||||||
|
"DUMMY",
|
||||||
|
"QPSK 1/4", "QPSK 1/3", "QPSK 2/5", "QPSK 1/2", "QPSK 3/5", "QPSK 2/3", "QPSK 3/4", "QPSK 4/5", "QPSK 5/6", "QPSK 8/9", "QPSK 9/10",
|
||||||
|
"8PSK 3/5", "8PSK 2/3", "8PSK 3/4", "8PSK 5/6", "8PSK 8/9", "8PSK 9/10",
|
||||||
|
"16APSK 2/3", "16APSK 3/4", "16APSK 4/5", "16APSK 5/6", "16APSK 8/9", "16APSK 9/10",
|
||||||
|
"32APSK 3/4", "32APSK 4/5", "32APSK 5/6", "32APSK 8/9", "32APSK 9/10",
|
||||||
|
]
|
||||||
|
if (typeof modcod != "number" || modcod < 0 || modcod >= modcod.length) {
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
return modcods[modcod]
|
||||||
|
}
|
||||||
|
|
||||||
this.lastUpdateTime = new Date();
|
this.lastUpdateTime = new Date();
|
||||||
this.initState = vals["mainState"]["initState"]
|
this.initState = vals["mainState"]["initState"]
|
||||||
{% if modem == 'scpc' %}
|
{% if modem == 'scpc' %}
|
||||||
@ -69,6 +84,11 @@
|
|||||||
} else {
|
} else {
|
||||||
this.statOs.uptime = '?'
|
this.statOs.uptime = '?'
|
||||||
}
|
}
|
||||||
|
this.statOs.load1 = vals["sysinfo"]["load1min"]
|
||||||
|
this.statOs.load5 = vals["sysinfo"]["load5min"]
|
||||||
|
this.statOs.load15 = vals["sysinfo"]["load15min"]
|
||||||
|
this.statOs.totalram = vals["sysinfo"]["totalram"]
|
||||||
|
this.statOs.freeram = vals["sysinfo"]["freeram"]
|
||||||
},
|
},
|
||||||
|
|
||||||
resetPacketsStatistics() {
|
resetPacketsStatistics() {
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>{% endraw %}{% endif %}{% raw %}
|
</table>{% endraw %}{% endif %}{% raw %}
|
||||||
</div>{% endraw %}{% if modem == 'scpc' %}{% raw %}
|
</div>{% endraw %}{% if modem == 'scpc' %}{% raw %}
|
||||||
<div class="settings-set-container" v-if="isCinC === true">
|
<div class="settings-set-container" v-if="paramRxtx.isCinC === true">
|
||||||
<h2>Статистика режима CinC</h2>
|
<h2>Статистика режима CinC</h2>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -75,6 +75,8 @@
|
|||||||
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
||||||
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
||||||
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
||||||
|
<tr><th>Load average</th><td>{{ statOs.load1 }} {{ statOs.load5 }} {{ statOs.load15 }}</td></tr>
|
||||||
|
<tr><th>RAM total/free</th><td>{{ statOs.totalram }}Mb/{{ statOs.freeram }}Mb</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -77,10 +77,10 @@ public:
|
|||||||
TerminalNetworkSettings& operator= (const TerminalNetworkSettings& src) = default;
|
TerminalNetworkSettings& operator= (const TerminalNetworkSettings& src) = default;
|
||||||
|
|
||||||
void loadDefaults() {
|
void loadDefaults() {
|
||||||
managementIp = "0.0.0.0/0";
|
managementIp = "0.0.0.0";
|
||||||
managementGateway = "";
|
managementGateway = "";
|
||||||
mode = "l2";
|
mode = "l2";
|
||||||
dataIp = "0.0.0.0/0";
|
dataIp = "0.0.0.0";
|
||||||
dataMtu = 1500;
|
dataMtu = 1500;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -799,6 +799,46 @@ void api_driver::ApiDriver::resetPacketStatistics() const {
|
|||||||
this->daemon->resetPacketStatistics();
|
this->daemon->resetPacketStatistics();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void generateModcode(std::ostream& out, const char* paramName, uint32_t modcod) {
|
||||||
|
struct _modcodDef {const char* modulation; const char* speed;};
|
||||||
|
const static _modcodDef defs[] = {
|
||||||
|
{.modulation = "DUMMY", .speed = "0"},
|
||||||
|
{.modulation = "QPSK", .speed = "1/4"},
|
||||||
|
{.modulation = "QPSK", .speed = "1/3"},
|
||||||
|
{.modulation = "QPSK", .speed = "2/5"},
|
||||||
|
{.modulation = "QPSK", .speed = "1/2"},
|
||||||
|
{.modulation = "QPSK", .speed = "3/5"},
|
||||||
|
{.modulation = "QPSK", .speed = "2/3"},
|
||||||
|
{.modulation = "QPSK", .speed = "3/4"},
|
||||||
|
{.modulation = "QPSK", .speed = "4/5"},
|
||||||
|
{.modulation = "QPSK", .speed = "5/6"},
|
||||||
|
{.modulation = "QPSK", .speed = "8/9"},
|
||||||
|
{.modulation = "QPSK", .speed = "9/10"},
|
||||||
|
{.modulation = "8PSK", .speed = "3/5"},
|
||||||
|
{.modulation = "8PSK", .speed = "2/3"},
|
||||||
|
{.modulation = "8PSK", .speed = "3/4"},
|
||||||
|
{.modulation = "8PSK", .speed = "5/6"},
|
||||||
|
{.modulation = "8PSK", .speed = "8/9"},
|
||||||
|
{.modulation = "8PSK", .speed = "9/10"},
|
||||||
|
{.modulation = "16APSK", .speed = "2/3"},
|
||||||
|
{.modulation = "16APSK", .speed = "3/4"},
|
||||||
|
{.modulation = "16APSK", .speed = "4/5"},
|
||||||
|
{.modulation = "16APSK", .speed = "5/6"},
|
||||||
|
{.modulation = "16APSK", .speed = "8/9"},
|
||||||
|
{.modulation = "16APSK", .speed = "9/10"},
|
||||||
|
{.modulation = "32APSK", .speed = "3/4"},
|
||||||
|
{.modulation = "32APSK", .speed = "4/5"},
|
||||||
|
{.modulation = "32APSK", .speed = "5/6"},
|
||||||
|
{.modulation = "32APSK", .speed = "8/9"},
|
||||||
|
{.modulation = "32APSK", .speed = "9/10"},
|
||||||
|
};
|
||||||
|
const _modcodDef* d = defs;
|
||||||
|
if (modcod < 28) {
|
||||||
|
d = defs + modcod;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
std::string api_driver::ApiDriver::loadSettings() const {
|
std::string api_driver::ApiDriver::loadSettings() const {
|
||||||
if (daemon == nullptr) {
|
if (daemon == nullptr) {
|
||||||
return R"({"error": "api daemon not started!"})";
|
return R"({"error": "api daemon not started!"})";
|
||||||
@ -819,24 +859,24 @@ std::string api_driver::ApiDriver::loadSettings() const {
|
|||||||
|
|
||||||
std::stringstream result;
|
std::stringstream result;
|
||||||
#ifdef MODEM_IS_SCPC
|
#ifdef MODEM_IS_SCPC
|
||||||
result << "{\n\"general.isCinC\":" << boolAsStr(modSettings.is_cinc);
|
result << "{\n\"isCinC\":" << boolAsStr(modSettings.is_cinc);
|
||||||
result << ",\"general.txEn\":" << boolAsStr(modSettings.tx_is_on);
|
result << ",\"txEn\":" << boolAsStr(modSettings.tx_is_on);
|
||||||
result << ",\"general.modulatorMode\":" << (modSettings.is_carrier ? "\"normal\"" : "\"test\"");
|
result << ",\"txModulatorIsTest\":" << boolAsStr(!modSettings.is_carrier);
|
||||||
result << ",\"general.autoStartTx\":" << boolAsStr(modSettings.is_save_current_state);
|
result << ",\"txAutoStart\":" << boolAsStr(modSettings.is_save_current_state);
|
||||||
result << ",\"general.isTestInputData\":" << boolAsStr(modSettings.is_test_data);
|
result << ",\"txIsTestInput\":" << boolAsStr(modSettings.is_test_data);
|
||||||
result << ",\n\"tx.attenuation\":"; writeDouble(result, modSettings.attenuation);
|
result << ",\n\"txAttenuation\":"; writeDouble(result, modSettings.attenuation);
|
||||||
result << ",\"tx.rolloff\":" << static_cast<int>(modSettings.rollof * 100);
|
result << ",\"txRolloff\":" << static_cast<int>(modSettings.rollof * 100);
|
||||||
result << ",\"tx.cymRate\":" << modSettings.baudrate;
|
result << ",\"txBaudrate\":" << modSettings.baudrate;
|
||||||
result << ",\"tx.centerFreq\":"; writeDouble(result, modSettings.central_freq_in_kGz, 3);
|
result << ",\"txCentralFreq\":"; writeDouble(result, modSettings.central_freq_in_kGz, 3);
|
||||||
result << ",\"dvbs2.frameSizeNormal\":" << boolAsStr(!(modSettings.modcod_tx & 2));
|
result << ",\"dvbs2.frameSizeNormal\":" << boolAsStr(!(modSettings.modcod_tx & 2));
|
||||||
result << ",\"dvbs2.ccm_modcod\":" << (modSettings.modcod_tx >> 2);
|
result << ",\"dvbs2.ccm_modcod\":" << (modSettings.modcod_tx >> 2);
|
||||||
|
|
||||||
// result << ",\"dvbs2.isPilots\":" << "null";
|
// result << ",\"dvbs2.isPilots\":" << "null";
|
||||||
result << ",\n\"dvbs2.isAcm\":" << boolAsStr(acmSettings.enable);
|
result << ",\n\"dvbIsAcm\":" << boolAsStr(acmSettings.enable);
|
||||||
result << ",\"dvbs2.acm_maxModcod\":" << (acmSettings.max_modcod >> 2);
|
result << ",\"dvbs2.acm_maxModcod\":" << (acmSettings.max_modcod >> 2);
|
||||||
result << ",\"dvbs2.acm_minModcod\":" << (acmSettings.min_modcod >> 2);
|
result << ",\"dvbs2.acm_minModcod\":" << (acmSettings.min_modcod >> 2);
|
||||||
result << ",\"dvbs2.snrReserve\":"; writeDouble(result, acmSettings.snr_treashold_acm);
|
result << ",\"dvbs2.snrReserve\":"; writeDouble(result, acmSettings.snr_treashold_acm);
|
||||||
result << ",\"dvbs2.servicePacketPeriod\":" << acmSettings.period_pack;
|
result << ",\"dvbServicePacketPeriod\":" << acmSettings.period_pack;
|
||||||
|
|
||||||
result << ",\n\"acm.en\":" << boolAsStr(acmSettings.enable_auto_atten);
|
result << ",\n\"acm.en\":" << boolAsStr(acmSettings.enable_auto_atten);
|
||||||
result << ",\"acm.maxAttenuation\":"; writeDouble(result, acmSettings.max_attenuation);
|
result << ",\"acm.maxAttenuation\":"; writeDouble(result, acmSettings.max_attenuation);
|
||||||
@ -1098,35 +1138,34 @@ std::string api_driver::ApiDriver::loadSysInfo() {
|
|||||||
struct sysinfo info{};
|
struct sysinfo info{};
|
||||||
sysinfo(&info);
|
sysinfo(&info);
|
||||||
|
|
||||||
struct sysinfo {
|
// struct sysinfo {
|
||||||
long uptime; /* Seconds since boot */
|
// long uptime; /* Seconds since boot */
|
||||||
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
|
// unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
|
||||||
unsigned long totalram; /* Total usable main memory size */
|
// unsigned long totalram; /* Total usable main memory size */
|
||||||
unsigned long freeram; /* Available memory size */
|
// unsigned long freeram; /* Available memory size */
|
||||||
unsigned long sharedram; /* Amount of shared memory */
|
// unsigned long sharedram; /* Amount of shared memory */
|
||||||
unsigned long bufferram; /* Memory used by buffers */
|
// unsigned long bufferram; /* Memory used by buffers */
|
||||||
unsigned long totalswap; /* Total swap space size */
|
// unsigned long totalswap; /* Total swap space size */
|
||||||
unsigned long freeswap; /* Swap space still available */
|
// unsigned long freeswap; /* Swap space still available */
|
||||||
unsigned short procs; /* Number of current processes */
|
// unsigned short procs; /* Number of current processes */
|
||||||
unsigned long totalhigh; /* Total high memory size */
|
// unsigned long totalhigh; /* Total high memory size */
|
||||||
unsigned long freehigh; /* Available high memory size */
|
// unsigned long freehigh; /* Available high memory size */
|
||||||
unsigned int mem_unit; /* Memory unit size in bytes */
|
// unsigned int mem_unit; /* Memory unit size in bytes */
|
||||||
};
|
// };
|
||||||
|
|
||||||
|
double f_load = 1.0 / (1 << SI_LOAD_SHIFT);
|
||||||
|
|
||||||
result << "{\n\"uptime\":" << info.uptime;
|
result << "{\n\"uptime\":" << info.uptime;
|
||||||
result << ",\"load1min\":" << info.loads[0];
|
result << ",\"load1min\":"; writeDouble(result, f_load * static_cast<double>(info.loads[0]), 2);
|
||||||
result << ",\"load5min\":" << info.loads[1];
|
result << ",\"load5min\":"; writeDouble(result, f_load * static_cast<double>(info.loads[1]), 2);
|
||||||
result << ",\"load15min\":" << info.loads[2];
|
result << ",\"load15min\":"; writeDouble(result, f_load * static_cast<double>(info.loads[2]), 2);
|
||||||
result << ",\"totalram\":" << info.totalram;
|
result << ",\"totalram\":" << ((info.totalram * info.mem_unit) >> 20); // Mb
|
||||||
result << ",\"freeram\":" << info.freeram;
|
result << ",\"freeram\":" << ((info.freeram * info.mem_unit) >> 20); // Mb
|
||||||
result << ",\"sharedram\":" << info.sharedram;
|
result << ",\"sharedram\":" << ((info.sharedram * info.mem_unit) >> 20); // Mb
|
||||||
result << ",\"bufferram\":" << info.bufferram;
|
result << ",\"bufferram\":" << ((info.bufferram * info.mem_unit) >> 20); // Mb
|
||||||
result << ",\"totalswap\":" << info.totalswap;
|
// result << ",\"totalswap\":" << info.totalswap * info.mem_unit;
|
||||||
result << ",\"freeswap\":" << info.freeswap;
|
// result << ",\"freeswap\":" << info.freeswap * info.mem_unit;
|
||||||
result << ",\"procs\":" << static_cast<long>(info.procs);
|
result << ",\"procs\":" << static_cast<long>(info.procs);
|
||||||
result << ",\"totalhigh\":" << info.totalhigh;
|
|
||||||
result << ",\"freehigh\":" << info.freehigh;
|
|
||||||
result << ",\"mem_unit\":" << info.mem_unit;
|
|
||||||
result << "\n}";
|
result << "\n}";
|
||||||
return result.str();
|
return result.str();
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-set-container" v-if="isCinC === true">
|
<div class="settings-set-container" v-if="paramRxtx.isCinC === true">
|
||||||
<h2>Статистика режима CinC</h2>
|
<h2>Статистика режима CinC</h2>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -119,6 +119,8 @@
|
|||||||
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
||||||
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
||||||
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
||||||
|
<tr><th>Load average</th><td>{{ statOs.load1 }} {{ statOs.load5 }} {{ statOs.load15 }}</td></tr>
|
||||||
|
<tr><th>RAM total/free</th><td>{{ statOs.totalram }}Mb/{{ statOs.freeram }}Mb</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -658,7 +660,7 @@
|
|||||||
statDevice: { // температурные датчики
|
statDevice: { // температурные датчики
|
||||||
adrv: 0, zynq: 0, fpga: 0
|
adrv: 0, zynq: 0, fpga: 0
|
||||||
},
|
},
|
||||||
statOs: {uptime: '?'},
|
statOs: {uptime: '?', load1: '?', load5: '?', load15: '?', totalram: '?', freeram: '?'},
|
||||||
// ========== include end from 'common/monitoring-data.js.j2'
|
// ========== include end from 'common/monitoring-data.js.j2'
|
||||||
|
|
||||||
// ========== include from 'common/setup-data.js.j2'
|
// ========== include from 'common/setup-data.js.j2'
|
||||||
@ -915,6 +917,21 @@
|
|||||||
|
|
||||||
// ========== include from 'common/monitoring-methods.js.j2'
|
// ========== include from 'common/monitoring-methods.js.j2'
|
||||||
updateStatistics(vals) {
|
updateStatistics(vals) {
|
||||||
|
function modcodToStr(modcod) {
|
||||||
|
// модкоды из раздела 5.5.2.2 https://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.01.02_60/en_302307v010102p.pdf
|
||||||
|
const modcods = [
|
||||||
|
"DUMMY",
|
||||||
|
"QPSK 1/4", "QPSK 1/3", "QPSK 2/5", "QPSK 1/2", "QPSK 3/5", "QPSK 2/3", "QPSK 3/4", "QPSK 4/5", "QPSK 5/6", "QPSK 8/9", "QPSK 9/10",
|
||||||
|
"8PSK 3/5", "8PSK 2/3", "8PSK 3/4", "8PSK 5/6", "8PSK 8/9", "8PSK 9/10",
|
||||||
|
"16APSK 2/3", "16APSK 3/4", "16APSK 4/5", "16APSK 5/6", "16APSK 8/9", "16APSK 9/10",
|
||||||
|
"32APSK 3/4", "32APSK 4/5", "32APSK 5/6", "32APSK 8/9", "32APSK 9/10",
|
||||||
|
]
|
||||||
|
if (typeof modcod != "number" || modcod < 0 || modcod >= modcod.length) {
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
return modcods[modcod]
|
||||||
|
}
|
||||||
|
|
||||||
this.lastUpdateTime = new Date();
|
this.lastUpdateTime = new Date();
|
||||||
this.initState = vals["mainState"]["initState"]
|
this.initState = vals["mainState"]["initState"]
|
||||||
this.isCinC = vals["mainState"]["isCinC"]
|
this.isCinC = vals["mainState"]["isCinC"]
|
||||||
@ -974,6 +991,11 @@
|
|||||||
} else {
|
} else {
|
||||||
this.statOs.uptime = '?'
|
this.statOs.uptime = '?'
|
||||||
}
|
}
|
||||||
|
this.statOs.load1 = vals["sysinfo"]["load1min"]
|
||||||
|
this.statOs.load5 = vals["sysinfo"]["load5min"]
|
||||||
|
this.statOs.load15 = vals["sysinfo"]["load15min"]
|
||||||
|
this.statOs.totalram = vals["sysinfo"]["totalram"]
|
||||||
|
this.statOs.freeram = vals["sysinfo"]["freeram"]
|
||||||
},
|
},
|
||||||
|
|
||||||
resetPacketsStatistics() {
|
resetPacketsStatistics() {
|
||||||
|
@ -105,6 +105,8 @@
|
|||||||
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
<tr><th>Температура ZYNQ</th><td>{{ statDevice.zynq }} °C</td></tr>
|
||||||
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
<tr><th>Температура FPGA</th><td>{{ statDevice.fpga }} °C</td></tr>
|
||||||
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
<tr><th>Uptime</th><td>{{ statOs.uptime }}</td></tr>
|
||||||
|
<tr><th>Load average</th><td>{{ statOs.load1 }} {{ statOs.load5 }} {{ statOs.load15 }}</td></tr>
|
||||||
|
<tr><th>RAM total/free</th><td>{{ statOs.totalram }}Mb/{{ statOs.freeram }}Mb</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -350,7 +352,7 @@
|
|||||||
statDevice: { // температурные датчики
|
statDevice: { // температурные датчики
|
||||||
adrv: 0, zynq: 0, fpga: 0
|
adrv: 0, zynq: 0, fpga: 0
|
||||||
},
|
},
|
||||||
statOs: {uptime: '?'},
|
statOs: {uptime: '?', load1: '?', load5: '?', load15: '?', totalram: '?', freeram: '?'},
|
||||||
// ========== include end from 'common/monitoring-data.js.j2'
|
// ========== include end from 'common/monitoring-data.js.j2'
|
||||||
|
|
||||||
// ========== include from 'common/setup-data.js.j2'
|
// ========== include from 'common/setup-data.js.j2'
|
||||||
@ -509,6 +511,21 @@
|
|||||||
|
|
||||||
// ========== include from 'common/monitoring-methods.js.j2'
|
// ========== include from 'common/monitoring-methods.js.j2'
|
||||||
updateStatistics(vals) {
|
updateStatistics(vals) {
|
||||||
|
function modcodToStr(modcod) {
|
||||||
|
// модкоды из раздела 5.5.2.2 https://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.01.02_60/en_302307v010102p.pdf
|
||||||
|
const modcods = [
|
||||||
|
"DUMMY",
|
||||||
|
"QPSK 1/4", "QPSK 1/3", "QPSK 2/5", "QPSK 1/2", "QPSK 3/5", "QPSK 2/3", "QPSK 3/4", "QPSK 4/5", "QPSK 5/6", "QPSK 8/9", "QPSK 9/10",
|
||||||
|
"8PSK 3/5", "8PSK 2/3", "8PSK 3/4", "8PSK 5/6", "8PSK 8/9", "8PSK 9/10",
|
||||||
|
"16APSK 2/3", "16APSK 3/4", "16APSK 4/5", "16APSK 5/6", "16APSK 8/9", "16APSK 9/10",
|
||||||
|
"32APSK 3/4", "32APSK 4/5", "32APSK 5/6", "32APSK 8/9", "32APSK 9/10",
|
||||||
|
]
|
||||||
|
if (typeof modcod != "number" || modcod < 0 || modcod >= modcod.length) {
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
return modcods[modcod]
|
||||||
|
}
|
||||||
|
|
||||||
this.lastUpdateTime = new Date();
|
this.lastUpdateTime = new Date();
|
||||||
this.initState = vals["mainState"]["initState"]
|
this.initState = vals["mainState"]["initState"]
|
||||||
|
|
||||||
@ -559,6 +576,11 @@
|
|||||||
} else {
|
} else {
|
||||||
this.statOs.uptime = '?'
|
this.statOs.uptime = '?'
|
||||||
}
|
}
|
||||||
|
this.statOs.load1 = vals["sysinfo"]["load1min"]
|
||||||
|
this.statOs.load5 = vals["sysinfo"]["load5min"]
|
||||||
|
this.statOs.load15 = vals["sysinfo"]["load15min"]
|
||||||
|
this.statOs.totalram = vals["sysinfo"]["totalram"]
|
||||||
|
this.statOs.freeram = vals["sysinfo"]["freeram"]
|
||||||
},
|
},
|
||||||
|
|
||||||
resetPacketsStatistics() {
|
resetPacketsStatistics() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user