From d8ab4736deab79e8621c68379a123ebdf4d9cb56 Mon Sep 17 00:00:00 2001 From: sirmrak Date: Wed, 20 May 2026 22:23:34 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BC=D0=BE=D0=B4=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20WebSoc?= =?UTF-8?q?ket=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=20=D1=81=20UI=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Новые возможности client.html: - 🔊 Управление громкостью (слайдер 0-100%) - 🔇/🔊 Кнопки Mute/Unmute - 🔔 Тест звука (play_sound команда) - 💡 LED управление (цвет, яркость) - 📊 RMS Audio Level визуализация (реальное время) - 🎨 Современный UI (карточки, градиенты, анимации) - 📱 Адаптивный дизайн start_web_server.py: - Простой HTTP сервер для тестирования - Авто-определение WebSocket URL - Красивый вывод в консоль Запуск: cd examples/websocket-service ./start_web_server.py --port 8080 Открыть: http://localhost:8080/client.html --- examples/websocket-service/client.html | 648 +++++++++++++++--- .../websocket-service/start_web_server.py | 63 ++ 2 files changed, 623 insertions(+), 88 deletions(-) create mode 100755 examples/websocket-service/start_web_server.py diff --git a/examples/websocket-service/client.html b/examples/websocket-service/client.html index 5020678..8ba7fdb 100644 --- a/examples/websocket-service/client.html +++ b/examples/websocket-service/client.html @@ -1,103 +1,491 @@ - + - Wyoming Satellite WebSocket + Wyoming Satellite Control -
-
-

🛰️ Wyoming Satellite WebSocket

-
Connecting...
+
+ +
+
+

🛰️ Wyoming Satellite Control

+
WebSocket Client & Audio Level Monitor
+
+
+ Connecting... +
-
- - + + +
+ + +
+ + +
+
+ + +
+ +
+

🔊 Volume Control

+ +
+ + +
100%
+
+ +
+ + +
+
+ + +
+

📊 RMS Audio Level

+ +
+
+
+
+
0.00
+
Real-time microphone level
+
+ +
+ +
+
+ + +
+

💡 LED Control

+ +
+ + +
128
+
+ +
+ + + +
+
+
+ + +
+

📋 Event Log

+
+ + + +
+
- - - -
diff --git a/examples/websocket-service/start_web_server.py b/examples/websocket-service/start_web_server.py new file mode 100755 index 0000000..9c0b93a --- /dev/null +++ b/examples/websocket-service/start_web_server.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +""" +Simple HTTP server for WebSocket client testing. + +Usage: + python3 start_web_server.py [--port PORT] + +Open in browser: + http://localhost:PORT/client.html +""" + +import argparse +import http.server +import socketserver +import os +from pathlib import Path + +PORT = 8080 +SCRIPT_DIR = Path(__file__).parent.resolve() + + +class CustomHandler(http.server.SimpleHTTPRequestHandler): + """Custom handler with better logging.""" + + def do_GET(self): + super().do_GET() + self.log_message(f"✅ Served: {self.path}") + + def log_message(self, format, *args): + print(f"[WebServer] {args[0]}") + + +def main(): + parser = argparse.ArgumentParser(description='WebSocket Client Web Server') + parser.add_argument('--port', type=int, default=PORT, help=f'Port (default: {PORT})') + parser.add_argument('--host', default='0.0.0.0', help='Host (default: 0.0.0.0)') + args = parser.parse_args() + + # Change to websocket-service directory + os.chdir(SCRIPT_DIR) + + print(f""" +╔══════════════════════════════════════════════════════════╗ +║ 🛰️ Wyoming Satellite WebSocket Client Server ║ +╠══════════════════════════════════════════════════════════╣ +║ Serving: {str(SCRIPT_DIR):<45} ║ +║ URL: http://localhost:{args.port:<36} ║ +║ ║ +║ Press Ctrl+C to stop ║ +╚══════════════════════════════════════════════════════════╝ + """) + + with socketserver.TCPServer((args.host, args.port), CustomHandler) as httpd: + try: + print(f"🚀 Server started on http://{args.host}:{args.port}") + httpd.serve_forever() + except KeyboardInterrupt: + print("\n👋 Shutting down...") + httpd.shutdown() + + +if __name__ == "__main__": + main()