From 4496fcc8b0004ee7d2ba2cda53814593121f6ceb Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Wed, 15 May 2019 19:51:50 +0200 Subject: [PATCH] report client numbers on change only --- htdocs/openwebrx.js | 8 +++++--- owrx/source.py | 21 ++------------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index e71d0fe..fa68859 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -1157,6 +1157,7 @@ function audio_calculate_resampling(targetRate) debug_ws_data_received=0; max_clients_num=0; +clients_num = 0; var COMPRESS_FFT_PAD_N=10; //should be the same as in csdr.c @@ -1192,7 +1193,8 @@ function on_ws_recv(evt) fft_compression = config.fft_compression; divlog( "FFT stream is "+ ((fft_compression=="adpcm")?"compressed":"uncompressed")+"." ) max_clients_num = config.max_clients; - mathbox_waterfall_colors = config.mathbox_waterfall_colors; + progressbar_set(e("openwebrx-bar-clients"), client_num / max_clients_num, "Clients [" + client_num + "]", client_num > max_clients_num*0.85); + mathbox_waterfall_colors = config.mathbox_waterfall_colors; mathbox_waterfall_frequency_resolution = config.mathbox_waterfall_frequency_resolution; mathbox_waterfall_history_length = config.mathbox_waterfall_history_length; @@ -1224,8 +1226,8 @@ function on_ws_recv(evt) progressbar_set(e("openwebrx-bar-server-cpu"),server_cpu_usage,"Server CPU [" + Math.round(server_cpu_usage * 100) + "%]",server_cpu_usage>85); break; case "clients": - var clients = json.value; - progressbar_set(e("openwebrx-bar-clients"), clients / max_clients_num, "Clients [" + clients + "]", clients > max_clients_num*0.85); + client_num = json.value; + progressbar_set(e("openwebrx-bar-clients"), client_num / max_clients_num, "Clients [" + client_num + "]", client_num > max_clients_num*0.85); break; case "profiles": var listbox = e("openwebrx-sdr-profiles-listbox"); diff --git a/owrx/source.py b/owrx/source.py index b8e7d12..0cbc33f 100644 --- a/owrx/source.py +++ b/owrx/source.py @@ -487,18 +487,6 @@ class CpuUsageThread(threading.Thread): CpuUsageThread.sharedInstance = None self.doRun = False -class ClientReportingThread(threading.Thread): - def __init__(self, registry): - self.doRun = True - self.registry = registry - super().__init__() - def run(self): - while self.doRun: - self.registry.broadcast() - time.sleep(3) - def stop(self): - self.doRun = False - class TooManyClientsException(Exception): pass @@ -512,7 +500,6 @@ class ClientRegistry(object): def __init__(self): self.clients = [] - self.reporter = None super().__init__() def broadcast(self): @@ -525,9 +512,7 @@ class ClientRegistry(object): if len(self.clients) >= pm["max_clients"]: raise TooManyClientsException() self.clients.append(client) - if self.reporter is None: - self.reporter = ClientReportingThread(self) - self.reporter.start() + self.broadcast() def clientCount(self): return len(self.clients) @@ -537,6 +522,4 @@ class ClientRegistry(object): self.clients.remove(client) except ValueError: pass - if not self.clients and self.reporter is not None: - self.reporter.stop() - self.reporter = None + self.broadcast() \ No newline at end of file