Files
NmeaClient/msg/frame_logger.py
T
jensandClaude Sonnet 4.6 c5ec65f2d6 add frame logging and extract entry point to main.py
- msg/frame_logger.py: MsgListener that writes raw byte stream per
  source to timestamped log files (<YYYY_MM_DD_HH_MM_SS_source>.log)
- main.py: entry point extracted from network_backend.py; adds
  --log-dir argument (default ./log) and wires FrameLogger per transceiver
- network_backend.py: now contains only the NetworkBackend class
- .gitignore: exclude log/ directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:12:15 +02:00

24 lines
683 B
Python

import os
from datetime import datetime
from msg.listener import MsgListener
from msg.container import MsgContainer
class FrameLogger(MsgListener):
def __init__(self, source_id: str, log_dir: str = './log'):
super().__init__()
os.makedirs(log_dir, exist_ok=True)
ts = datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
filename = f"{ts}_{source_id.strip()}.log"
self._file = open(os.path.join(log_dir, filename), 'wb')
def is_msg(self, msg: MsgContainer) -> bool:
return True
def on_recv(self, msg: MsgContainer):
self._file.write(msg.data)
self._file.flush()
def close(self):
self._file.close()