new logging
This commit is contained in:
@ -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:
|
||||
|
||||
Reference in New Issue
Block a user