client: lower Tran search floor from 1000 to 44 in channel block extraction
The channel block is in frame C data (cfg[44:1071]) not deep in a hypothetical frame D section. The offset-1000 assumption was wrong — searching from 44 lets us find it while unit string validation still prevents false positives. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -702,8 +702,8 @@ def _decode_compliance_config_into(data: bytes, info: DeviceInfo) -> None:
|
|||||||
# Validated by checking unit strings "in.\0" at label-14 and "/s\0\0" at label-6.
|
# Validated by checking unit strings "in.\0" at label-14 and "/s\0\0" at label-6.
|
||||||
# "Tran2" at a later position won't match because its surrounding bytes differ.
|
# "Tran2" at a later position won't match because its surrounding bytes differ.
|
||||||
try:
|
try:
|
||||||
tran_pos = data.find(b"Tran", 1000)
|
tran_pos = data.find(b"Tran", 44)
|
||||||
log.warning("compliance_config: 'Tran' search from 1000 → pos=%d cfg_len=%d", tran_pos, len(data))
|
log.warning("compliance_config: 'Tran' search from 44 → pos=%d cfg_len=%d", tran_pos, len(data))
|
||||||
if tran_pos >= 0:
|
if tran_pos >= 0:
|
||||||
pre = data[max(0, tran_pos - 30) : tran_pos + 8]
|
pre = data[max(0, tran_pos - 30) : tran_pos + 8]
|
||||||
log.warning(
|
log.warning(
|
||||||
|
|||||||
Reference in New Issue
Block a user