fix: update event handling in MiniMateClient and protocol to address 5A timeout issue
This commit is contained in:
@@ -287,17 +287,22 @@ class MiniMateProtocol:
|
||||
log.debug("read_event_index: got %d bytes", len(raw))
|
||||
return raw
|
||||
|
||||
def read_event_first(self) -> tuple[bytes, bytes]:
|
||||
def read_event_first(self, token: int = 0) -> tuple[bytes, bytes]:
|
||||
"""
|
||||
Send the SUB 1E (EVENT_HEADER) two-step read and return the first
|
||||
waveform key and accompanying 8-byte event data block.
|
||||
|
||||
This always uses all-zero params — the device returns the first stored
|
||||
event's waveform key unconditionally.
|
||||
Args:
|
||||
token: Token byte placed at params[7]. Use 0 (default) for the
|
||||
initial browse-mode call that returns the first event key.
|
||||
Use 0xFE for the second "download-arm" call that must be
|
||||
sent between 0A and 0C when full_waveform=True; the device
|
||||
will ignore 5A probe frames unless this arm step has been
|
||||
issued. Confirmed from 4-2-26 and 4-3-26 BW TX captures.
|
||||
|
||||
Returns:
|
||||
(key4, event_data8) where:
|
||||
key4 — 4-byte opaque waveform record address (data[11:15])
|
||||
key4 — 4-byte opaque waveform record address (data[11:15])
|
||||
event_data8 — full 8-byte data section (data[11:19])
|
||||
|
||||
Raises:
|
||||
@@ -310,13 +315,14 @@ class MiniMateProtocol:
|
||||
"""
|
||||
rsp_sub = _expected_rsp_sub(SUB_EVENT_HEADER)
|
||||
length = DATA_LENGTHS[SUB_EVENT_HEADER] # 0x08
|
||||
params = token_params(token)
|
||||
|
||||
log.debug("read_event_first: 1E probe")
|
||||
self._send(build_bw_frame(SUB_EVENT_HEADER, 0))
|
||||
log.debug("read_event_first: 1E probe (token=0x%02X)", token)
|
||||
self._send(build_bw_frame(SUB_EVENT_HEADER, 0, params))
|
||||
self._recv_one(expected_sub=rsp_sub)
|
||||
|
||||
log.debug("read_event_first: 1E data request offset=0x%02X", length)
|
||||
self._send(build_bw_frame(SUB_EVENT_HEADER, length))
|
||||
log.debug("read_event_first: 1E data request offset=0x%02X (token=0x%02X)", length, token)
|
||||
self._send(build_bw_frame(SUB_EVENT_HEADER, length, params))
|
||||
data_rsp = self._recv_one(expected_sub=rsp_sub)
|
||||
|
||||
event_data8 = data_rsp.data[11:19]
|
||||
|
||||
Reference in New Issue
Block a user