Skip to content

Unexpected payload passed to decode_message of core/protocol.py #9

@liquidg3

Description

@liquidg3

status_info is NaN, throwing errors to log.

It seems to happen often when the battery is below 30% (solid amber battery indicator).

Added a log to decode_message at line 662 to print packets.
Added a log to SummaryDataMessageV3.__init at line 508 to print the parsed value set to status_info.

Any pointers on how to approach this?

2023-06-01 12:21:38,271 INFO: incoming summary data packet [111, 231, 7, 6, 1, 73, 14, 166, 2, 3, 66, 0, 110, 0, 70, 0, 1, 0, 7, 0, 10, 236, 53, 40, 25, 220, 0, 100, 128, 0, 97, 68, 0, 0, 254, 0, 12, 114, 1, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 0, 64, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 22, 0]


2023-06-01 12:21:38,271 INFO: status_info (nan)


2023-06-01 12:21:38,271 ERROR: Message with id 43 was corrupted: unsupported operand type(s) for &: 'float' and 'int'
Traceback (most recent call last):
  File "C:\Users\suppo\install\App-Zephyr\core\protocol.py", line 725, in decode_bytestream
    msg = decode_message(msgid, payload, fin)
  File "C:\Users\suppo\install\App-Zephyr\core\protocol.py", line 651, in decode_message
    return SummaryDataMessageV3(msgid, payload, fin)
  File "C:\Users\suppo\install\App-Zephyr\core\protocol.py", line 495, in __init__
    self._decode_status_info(status_info)
  File "C:\Users\suppo\install\App-Zephyr\core\protocol.py", line 396, in _decode_status_info
    self.device_worn_confidence = 1 - (status_info & 3)/3
TypeError: unsupported operand type(s) for &: 'float' and 'int'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions