Fixes to web interface stability, use simple-websocket

picamera2
Mark Jessop 2023-01-05 12:48:27 +10:30
rodzic 31ef4b268b
commit dec481eefe
5 zmienionych plików z 38 dodań i 12 usunięć

Wyświetl plik

@ -44,6 +44,7 @@ RUN --mount=type=cache,target=/root/.cache/pip pip3 install \
crcmod \
flask \
flask-socketio \
simple-websocket \
requests
# Copy in wenet.

Wyświetl plik

@ -6,6 +6,7 @@
# Released under GNU GPL v3 or later
#
import argparse
import datetime
import json
import logging
import socket
@ -49,6 +50,7 @@ class FSKDemodStats(object):
self.peak_hold = peak_hold
self.decoder_id = str(decoder_id)
self.freq = freq
self.fcentre = 0.0
self.sample_rate = sample_rate
self.real = real
@ -108,6 +110,7 @@ class FSKDemodStats(object):
self.fft = np.array(_data['samp_fft'])
self.fest[0] = _data['f1_est']
self.fest[1] = _data['f2_est']
self.fcentre = self.freq + (self.fest[0] + self.fest[1])/2.0
#self.fft = self.fft[self.fft>0.0]
@ -212,7 +215,9 @@ if __name__ == "__main__":
'fft_db': stats_parser.fft_db,
'fft_freq': stats_parser.fft_freq,
'fest': stats_parser.fest,
'freq': stats_parser.freq
'freq': stats_parser.freq,
'fcentre': stats_parser.fcentre,
'time': datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%SZ")
}
send_modem_stats(_stats)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -8,7 +8,7 @@
<link href="{{ url_for('static', filename='css/wenet.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/c3.min.css') }}" rel="stylesheet">
<script src="{{ url_for('static', filename='js/jquery-3.3.1.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/socket.io-4.1.2.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/socket.io-4.5.4.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/c3.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/d3.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/fft_plot.js') }}"></script>
@ -28,6 +28,10 @@
// Handle an image update.
socket.on('image_update', function(msg) {
if(document.visibilityState == "hidden"){
return;
}
var myImageElement = document.getElementById('wenet_image');
myImageElement.src = 'latest.jpg?rand=' + Math.random();
@ -43,12 +47,22 @@
socket.on('modem_stats', function(msg) {
if(document.visibilityState == "hidden"){
return;
}
var snr = msg.snr.toFixed(1);
var ppm = msg.ppm.toFixed(1);
var freq = (msg.fcentre/1e6).toFixed(3);
var _new_desc = "SNR: " + snr + " dB"
var _new_desc = "SNR: " + snr + " dB";
$('#snr-data').html(_new_desc);
var _new_freq = freq + " MHz";
$('#freq-data').html(_new_freq);
var _new_time = msg.time;
$('#time-data').html(_new_time);
// Update the Spectra data.
scan_chart_spectra.columns[0] = ['x_spectra'].concat(msg.fft_freq);
@ -132,7 +146,7 @@
socket.on('image_telem_update', function(msg) {
console.log(msg);
//console.log(msg);
// {
// "week": 2240,
// "iTOW": 8220,
@ -216,9 +230,15 @@
<body>
<div class="container-fluid">
<div class="row">
<div class="col-10">
<div class="col-3">
<h3 class="masthead-brand">Wenet Dashboard</h3>
</div>
<div class="col-5">
<h4 class="snr-display" id="time-data"></h4>
</div>
<div class="col-2">
<h4 class="snr-display" id="freq-data"></h4>
</div>
<div class="col-2">
<h4 class="snr-display" id="snr-data">SNR: 0 dB</h4>
</div>