chore(compose): add docker-compose.yml
This commit is contained in:
41
services/collector/monitor.py
Normal file
41
services/collector/monitor.py
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user