Kingsong Protocol
Improved KingSong protocol: tolerant parsing, header resync, header-aware frame reassembly using ByteByByteFrameParser, safe bounds checks, optional cell voltages parsing, and clamped command generation.
Supports frame types: 0xA9 (live telemetry), 0xB9 (distance/fan/motorTemperature), 0xBB (name/model/version), 0xB3 (serial number), 0xF5 (CPU load/PWM), 0xF6 (speed limit), 0xA4/0xB5 (alarm speeds), 0xF1/0xF2 (Smart BMS data).
Constructors
Properties
Manufacturer name (used for display and logging).
Flow that emits every raw BLE characteristic notification received by this protocol, as a defensive copy of the original byte array. Collectors can use this to write raw logs or perform any custom processing on the unmodified BLE data.
Explicit command support matrix for this protocol. Commands outside this set are considered unsupported by design.
Functions
Create a command for the EUC
Returns the current BMS data snapshots for all detected battery packs. Each entry represents one BMS unit (typically 1 or 2 for dual-battery wheels). Data is accumulated from frame types 0xF1/0xF2 pages 0x00 (summary), 0x01 (temperatures), and 0x02-0x06 (cell voltages).
Returns the candidate data characteristic UUIDs for this protocol.
API-level command support check (used by framework and clients).
Get the UUID for the data characteristic
Optional polling/query plan consumed by BLEManager orchestration.
Get the UUID for the service
Get the UUID for the write characteristic (if different from data characteristic)
Check if the device is ready for operation
Returns true if the given BLE device advertisement name suggests this protocol.
Optional query/response matcher used by BLEManager observability and retry loop.