From 897b156a53231d7d21df8af9ecc0e03dbb8d9312 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Sun, 10 May 2026 12:24:36 +0200 Subject: [PATCH] fix --- modules/web.py | 9 +- modules/web/fm95.html | 623 ++++++++++++++++++++---------------------- 2 files changed, 306 insertions(+), 326 deletions(-) diff --git a/modules/web.py b/modules/web.py index ba98cea..3cbf418 100644 --- a/modules/web.py +++ b/modules/web.py @@ -186,19 +186,18 @@ async def socket_handler(socket: asyncio.StreamReader, writer: asyncio.StreamWri while True: qdata, ws = await writer_q.get() if not qdata or not ws: break - try: writer.write(qdata) await writer.drain() - data = await socket.read(256) if not data: await ws.send(json.dumps({"event": "error", "error": "fm95 socket closed"})) - break + raise ConnectionResetError("fm95 socket closed") # ← let reconnect handle it await ws.send(json.dumps({"event": "fm95", "data": base64.b64encode(data).decode()})) except Exception as e: - await ws.send(json.dumps({"event": "error", "error": str(e)})) - break + try: await ws.send(json.dumps({"event": "error", "error": str(e)})) + except Exception: pass + raise def websocket_server_process(shared_data: dict, imc_q: multiprocessing.Queue, ws_q: multiprocessing.Queue): async def runner(): diff --git a/modules/web/fm95.html b/modules/web/fm95.html index a8034f0..05ded52 100644 --- a/modules/web/fm95.html +++ b/modules/web/fm95.html @@ -1,351 +1,332 @@ - - - -FM95 Processor Status - - - + #last-update { font-size: 0.7rem; color: #2e4060; } + + + +
+

FM95 Processor

+

Live Status Monitor

+
-
-

FM95 Processor

-

Live Status Monitor

-
+
+
+ Connecting… +
-
-
- Connecting… -
+
+
+
MPX Power
+
dB
+
+
Multiplex signal power · dBr
+
+
+
BS412 Gain
+
+
+
BS412 loudness gain · linear
+
+
+
AGC Gain
+
+
+
Automatic gain control · linear
+
+
-
-
-
MPX Power
-
dB
-
-
Multiplex signal power · dBr
-
-
-
BS412 Gain
-
-
-
BS412 loudness gain · linear
-
-
-
AGC Gain
-
-
-
Automatic gain control · linear
-
-
+ +
+
+
Oscilloscope — Input & Audio Level
+
+ Input Level + Audio Level + AGC +
+
+ +
+ + +
+
- -
-
-
Oscilloscope — Input & Audio Level
-
- Input Level - Audio Level - AGC -
-
- -
- - - -
-
+
Waiting for data…
-
Waiting for data…
+ - + connect(); + drawScope(); + + \ No newline at end of file