fix: update event handling in MiniMateClient and protocol to ensure correct sequence for waveform downloads
This commit is contained in:
@@ -241,6 +241,29 @@ class MiniMateProtocol:
|
||||
log.debug("read SUB=0x%02X: received %d data bytes", sub, len(data_rsp.data))
|
||||
return data_rsp.data
|
||||
|
||||
def poll(self) -> S3Frame:
|
||||
"""
|
||||
Send a single POLL (SUB 5B) probe+data cycle and return the data response.
|
||||
|
||||
This is a bare POLL cycle with no boot-string drain — use during an active
|
||||
session (contrast with startup(), which drains the "Operating System" boot
|
||||
string first).
|
||||
|
||||
Confirmed from 4-2-26 BW TX capture: BW sends exactly 3 of these POLL
|
||||
cycles between the last 1F and the first 5A probe frame during every
|
||||
waveform download. Without them the device ignores the 5A probe.
|
||||
"""
|
||||
self._send(POLL_PROBE)
|
||||
self._recv_one(
|
||||
expected_sub=_expected_rsp_sub(SUB_POLL),
|
||||
timeout=self._recv_timeout,
|
||||
)
|
||||
self._send(POLL_DATA)
|
||||
return self._recv_one(
|
||||
expected_sub=_expected_rsp_sub(SUB_POLL),
|
||||
timeout=self._recv_timeout,
|
||||
)
|
||||
|
||||
def send_keepalive(self) -> None:
|
||||
"""
|
||||
Send a single POLL_PROBE keepalive without waiting for a response.
|
||||
|
||||
Reference in New Issue
Block a user