104 lines
6.0 KiB
Django/Jinja
104 lines
6.0 KiB
Django/Jinja
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.initState = vals["mainState"]["initState"]
|
||
{% if modem == 'scpc' %}
|
||
this.isCinC = vals["mainState"]["isCinC"]
|
||
{% endif %}
|
||
|
||
this.statRx.state = vals["mainState"]["rx.state"]
|
||
this.statRx.sym_sync_lock = vals["mainState"]["rx.sym_sync_lock"]
|
||
this.statRx.freq_search_lock = vals["mainState"]["rx.freq_search_lock"]
|
||
this.statRx.afc_lock = vals["mainState"]["rx.afc_lock"]
|
||
this.statRx.pkt_sync = vals["mainState"]["rx.pkt_sync"]
|
||
this.statRx.snr = vals["mainState"]["rx.snr"]
|
||
this.statRx.rssi = vals["mainState"]["rx.rssi"]
|
||
this.statRx.modcod = modcodToStr(vals["mainState"]["rx.modcod"])
|
||
this.statRx.frameSizeNormal = vals["mainState"]["rx.frameSizeNormal"]
|
||
this.statRx.isPilots = vals["mainState"]["rx.isPilots"]
|
||
this.statRx.symError = vals["mainState"]["rx.symError"]
|
||
this.statRx.freqErr = vals["mainState"]["rx.freqErr"]
|
||
this.statRx.freqErrAcc = vals["mainState"]["rx.freqErrAcc"]
|
||
this.statRx.inputSignalLevel = vals["mainState"]["rx.inputSignalLevel"]
|
||
this.statRx.pllError = vals["mainState"]["rx.pllError"]
|
||
this.statRx.speedOnRxKbit = vals["mainState"]["rx.speedOnRxKbit"]
|
||
this.statRx.speedOnIifKbit = vals["mainState"]["rx.speedOnIifKbit"]
|
||
this.statRx.packetsOk = vals["mainState"]["rx.packetsOk"]
|
||
this.statRx.packetsBad = vals["mainState"]["rx.packetsBad"]
|
||
this.statRx.packetsDummy = vals["mainState"]["rx.packetsDummy"]
|
||
|
||
{% if modem == 'scpc' %}
|
||
this.statTx.state = vals["mainState"]["tx.state"]
|
||
this.statTx.snr = vals["mainState"]["tx.snr"]
|
||
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
|
||
this.statTx.frameSizeNormal = vals["mainState"]["tx.frameSizeNormal"]
|
||
this.statTx.isPilots = vals["mainState"]["tx.isPilots"]
|
||
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
|
||
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
|
||
|
||
this.statCinc.occ = vals["mainState"]["cinc.occ"]
|
||
this.statCinc.correlator = vals["mainState"]["cinc.correlator"]
|
||
this.statCinc.correlatorFails = vals["mainState"]["cinc.correlatorFails"]
|
||
this.statCinc.freqErr = vals["mainState"]["cinc.freqErr"]
|
||
this.statCinc.freqErrAcc = vals["mainState"]["cinc.freqErrAcc"]
|
||
this.statCinc.channelDelay = vals["mainState"]["cinc.channelDelay"]
|
||
{% else %}
|
||
this.statTx.state = vals["mainState"]["tx.state"]
|
||
this.statTx.modcod = modcodToStr(vals["mainState"]["tx.modcod"])
|
||
this.statTx.speedOnTxKbit = vals["mainState"]["tx.speedOnTxKbit"]
|
||
this.statTx.speedOnIifKbit = vals["mainState"]["tx.speedOnIifKbit"]
|
||
this.statTx.centerFreq = vals["mainState"]["tx.centerFreq"]
|
||
this.statTx.symSpeed = vals["mainState"]["tx.symSpeed"]
|
||
{% endif %}
|
||
|
||
this.statDevice.adrv = vals["mainState"]["device.adrv"]
|
||
this.statDevice.zynq = vals["mainState"]["device.zynq"]
|
||
this.statDevice.fpga = vals["mainState"]["device.fpga"]
|
||
|
||
this.testState = vals["mainState"]["testState"]
|
||
|
||
// аптайм приходит в секундах, надо преобразовать его в человеко-читаемый вид
|
||
let uptime = vals["sysinfo"]["uptime"]
|
||
if (uptime) {
|
||
let secs = uptime % 60; uptime = Math.floor(uptime / 60)
|
||
let mins = uptime % 60; uptime = Math.floor(uptime / 60)
|
||
let hours = uptime % 24
|
||
uptime = Math.floor( uptime / 24)
|
||
let res = `${hours}:${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`
|
||
if (uptime > 0) { res = `${uptime} дней, ` + res }
|
||
this.statOs.uptime = res
|
||
} else {
|
||
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() {
|
||
fetch('/api/resetPacketStatistics', {
|
||
method: 'POST', credentials: 'same-origin'
|
||
}).then(() => {
|
||
this.statRx.packetsOk = 0
|
||
this.statRx.packetsBad = 0
|
||
this.statRx.packetsDummy = 0
|
||
})
|
||
},
|
||
|