#!/usr/bin/env python3 import argparse import time import serial from protocol_parser import ProtocolParser def main(): ap = argparse.ArgumentParser(description="FR-1.4 binary stream monitor") ap.add_argument("--port", default="/dev/ttyACM0") ap.add_argument("--baud", type=int, default=115200) ap.add_argument("--timeout", type=float, default=0.2) args = ap.parse_args() parser = ProtocolParser() with serial.Serial(args.port, args.baud, timeout=args.timeout) as ser: while True: data = ser.read(ser.in_waiting or 1) if not data: continue packets = parser.feed(data) st = parser.get_stats() for pkt in packets: # Одна строка на пакет + счётчик CRC ошибок print( f"{pkt.timestamp_ms:010d} " f"rms_db={pkt.rms_db:+6.1f} " f"freq_hz={pkt.freq_hz:4d} " f"crc_err={st.crc_errors}" ) time.sleep(0.001) if __name__ == "__main__": main()