- 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>
24 lines
683 B
Python
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()
|