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>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user