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/temp2), 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
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.
List of supported models
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).
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
Optional fast header check: returns true if chunk appears to contain frames belonging to this protocol, based on magic-byte patterns alone. The default returns false (opt-out). Protocols override this to enable frame-header-based routing without full decoding.
Optional query/response matcher used by BLEManager observability and retry loop.