#!/usr/bin/env python3 import serial from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer import os PORT = os.environ["CLEVEROS_SERIAL"] BAUD = 9600 BUFFER = [] class Handler(BaseHTTPRequestHandler): def do_GET(self): if self.path == "/stream": self.send_response(200) self.send_header("Content-Type", "text/plain; charset=utf-8") self.end_headers() self.wfile.write("\n".join(BUFFER[-200:]).encode("utf-8")) return self.send_response(200) self.send_header("Content-Type", "text/html; charset=utf-8") self.end_headers() self.wfile.write(b"
") def read_serial(): with serial.Serial(PORT, BAUD, timeout=1) as uart: while True: line = uart.readline().decode("utf-8", errors="replace").rstrip() if line: BUFFER.append(line) # Production version in COS/tools/uart_viewer.py adds pause, clear, save-log, and status controls.