| createCommand(CommandType, Object) |  | 0% |  | 0% | 33 | 33 | 46 | 46 | 1 | 1 |
| matchesQueryResponse(ProtocolQuerySpec, byte[]) |  | 0% |  | 0% | 17 | 17 | 13 | 13 | 1 | 1 |
| getBMSData() |  | 0% |  | 0% | 10 | 10 | 16 | 16 | 1 | 1 |
| buildAlarmSpeedCommand(int, int, int, int) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| parseTypeA4B5(byte[], int) |  | 0% |  | 0% | 5 | 5 | 9 | 9 | 1 | 1 |
| parseTypeB3(byte[], int) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| isDeviceReady(EUCData) |  | 0% |  | 0% | 7 | 7 | 4 | 4 | 1 | 1 |
| parseTypeA9(byte[], int) |   | 89% |   | 54% | 22 | 25 | 3 | 62 | 0 | 1 |
| processFrame(byte[]) |   | 78% |   | 59% | 8 | 12 | 5 | 16 | 0 | 1 |
| parseFrame(byte[]) |   | 83% |   | 62% | 10 | 19 | 5 | 27 | 0 | 1 |
| estimateBatteryPercent(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseTypeBB(byte[], int) |   | 91% |   | 60% | 4 | 6 | 3 | 17 | 0 | 1 |
| unpacker$lambda$2$findHeaderIndex$default(KingsongProtocol, int, int, Object) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getServiceUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDataCharacteristicUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| byteParser$lambda$5(KingsongProtocol) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| decode(byte[]) |   | 88% |   | 50% | 2 | 3 | 0 | 4 | 0 | 1 |
| getCommandSupport(CommandType) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseTypeBMS(byte[], int, int) |   | 98% |   | 72% | 6 | 13 | 0 | 33 | 0 | 1 |
| getScope$euc_ble_core() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSupportedCommandTypes() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRawFrameFlow() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWriteCharacteristicUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canHandle(EUCDevice) |  | 95% |   | 62% | 3 | 5 | 0 | 4 | 0 | 1 |
| getCombinedCellVoltages() |  | 94% |   | 83% | 1 | 4 | 0 | 5 | 0 | 1 |
| looksLikeMyFrames(byte[]) |  | 94% |   | 80% | 2 | 6 | 0 | 4 | 0 | 1 |
| parseTypeF5(byte[], int) |  | 97% |   | 50% | 2 | 3 | 0 | 6 | 0 | 1 |
| parseTypeF6(byte[], int) |  | 95% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| ensureRange(byte[], int, int) |  | 91% |   | 50% | 2 | 3 | 0 | 1 | 0 | 1 |
| KingsongProtocol(CoroutineScope) |  | 100% | | n/a | 0 | 1 | 0 | 42 | 0 | 1 |
| unpacker$lambda$2(KingsongProtocol, byte) |  | 100% |  | 100% | 0 | 10 | 0 | 23 | 0 | 1 |
| buildLegacyCommand(int, int, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 11 | 0 | 1 |
| parseTypeB9(byte[], int) |  | 100% |   | 50% | 5 | 6 | 0 | 11 | 0 | 1 |
| unpacker$lambda$2$findHeaderIndex(KingsongProtocol, int) |  | 100% |  | 100% | 0 | 7 | 0 | 10 | 0 | 1 |
| getPollingPlan() |  | 100% | | n/a | 0 | 1 | 0 | 19 | 0 | 1 |
| deriveRideTimeSeconds(long) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| buildLegacyCommand$default(KingsongProtocol, int, int, int, int, int, Object) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| close() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| KingsongProtocol(CoroutineScope, int, DefaultConstructorMarker) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getManufacturer() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSupportedModels() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDataFlow() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getWriteFlow() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |