new logging

This commit is contained in:
awe
2026-04-09 19:47:30 +03:00
parent bc48b9d432
commit 08823404c0
2 changed files with 48 additions and 0 deletions

View File

@ -22,6 +22,7 @@ from rfg_adc_plotter.types import ParserEvent, PointEvent, SweepPacket
_PARSER_16_BIT_X2_PROBE_BYTES = 64 * 1024
_LEGACY_STREAM_MIN_RECORDS = 32
_LEGACY_STREAM_MIN_MATCH_RATIO = 0.95
_DEBUG_FRAME_LOG_EVERY = 10
def _u16le_at(data: bytes, offset: int) -> int:
@ -98,6 +99,8 @@ class SweepReader(threading.Thread):
self._parser_test = bool(parser_test)
self._parser_complex_ascii = bool(parser_complex_ascii)
self._src: SerialLineSource | None = None
self._frames_read = 0
self._frames_dropped = 0
def _build_parser(self):
if self._parser_complex_ascii:
@ -149,17 +152,42 @@ class SweepReader(threading.Thread):
return parser, assembler, []
def _enqueue(self, packet: SweepPacket) -> None:
dropped = False
try:
self._queue.put_nowait(packet)
except Full:
try:
_ = self._queue.get_nowait()
dropped = True
except Exception:
pass
try:
self._queue.put_nowait(packet)
except Exception:
pass
if dropped:
self._frames_dropped += 1
self._frames_read += 1
if self._frames_read % _DEBUG_FRAME_LOG_EVERY == 0:
sweep, info, _aux = packet
try:
queue_size = self._queue.qsize()
except Exception:
queue_size = -1
sweep_idx = info.get("sweep") if isinstance(info, dict) else None
channel = info.get("ch") if isinstance(info, dict) else None
sys.stderr.write(
"[debug] reader frames:%d last_sweep:%s ch:%s width:%d queue:%d dropped:%d\n"
% (
self._frames_read,
str(sweep_idx),
str(channel),
int(getattr(sweep, "size", 0)),
int(queue_size),
self._frames_dropped,
)
)
def run(self) -> None:
try: