| createCommand(CommandType, Object) |   | 28% |   | 25% | 12 | 13 | 24 | 28 | 0 | 1 |
| matchesQueryResponse(ProtocolQuerySpec, byte[]) |  | 0% |  | 0% | 9 | 9 | 6 | 6 | 1 | 1 |
| parseMainInfo(byte[]) |   | 78% |   | 46% | 28 | 35 | 1 | 35 | 0 | 1 |
| parseLegacyRealtime(byte[]) |   | 91% |   | 64% | 10 | 15 | 0 | 46 | 0 | 1 |
| getServiceUUID() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getDataCharacteristicUUID() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getWriteCharacteristicUUID() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| decodeLegacyFirmware(byte[]) |   | 77% |   | 50% | 4 | 5 | 4 | 15 | 0 | 1 |
| isDeviceReady(EUCData) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| parseRealTime(byte[], byte[]) |   | 95% |   | 73% | 7 | 14 | 0 | 47 | 0 | 1 |
| extractV2Frames(byte[]) |   | 95% |   | 83% | 5 | 16 | 2 | 28 | 0 | 1 |
| decodeTotalMeters(byte[]) |   | 82% |   | 62% | 3 | 5 | 0 | 4 | 0 | 1 |
| parseV2Frame(byte[]) |   | 91% |   | 78% | 3 | 9 | 0 | 13 | 0 | 1 |
| decodeLegacySerial(byte[]) |   | 83% |   | 50% | 3 | 4 | 0 | 3 | 0 | 1 |
| mapLegacyModel(int) |   | 50% |   | 25% | 3 | 4 | 3 | 5 | 0 | 1 |
| decode(byte[]) |   | 95% |   | 83% | 2 | 7 | 0 | 16 | 0 | 1 |
| parseLegacyFrame(byte[]) |   | 89% |   | 66% | 3 | 6 | 0 | 7 | 0 | 1 |
| getCommandSupport(CommandType) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isLikelyLegacyChunk(byte[]) |   | 96% |   | 73% | 7 | 14 | 0 | 8 | 0 | 1 |
| buildMessage(int, int, byte[]) |   | 96% |   | 62% | 3 | 5 | 0 | 10 | 0 | 1 |
| isLikelyV2Chunk(byte[]) |   | 94% |   | 75% | 4 | 9 | 0 | 6 | 0 | 1 |
| parseLegacyInfo(byte[]) |   | 90% |   | 50% | 2 | 3 | 0 | 5 | 0 | 1 |
| getSupportedCommandTypes() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRawFrameFlow() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canHandle(EUCDevice) |  | 95% |   | 62% | 3 | 5 | 0 | 4 | 0 | 1 |
| findTail(List) |  | 95% |   | 87% | 1 | 5 | 0 | 4 | 0 | 1 |
| looksLikeMyFrames(byte[]) |  | 92% |   | 83% | 1 | 4 | 0 | 2 | 0 | 1 |
| parseTotalStats(byte[]) |  | 90% |   | 50% | 2 | 3 | 0 | 3 | 0 | 1 |
| getBMSData() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| InMotionProtocol() |  | 100% | | n/a | 0 | 1 | 0 | 27 | 0 | 1 |
| extractLegacyFrames(byte[]) |  | 100% |  | 100% | 0 | 11 | 0 | 21 | 0 | 1 |
| getPollingPlan() |  | 100% | | n/a | 0 | 1 | 0 | 30 | 0 | 1 |
| findHeader(List) |  | 100% |  | 100% | 0 | 5 | 0 | 4 | 0 | 1 |
| isValidChecksum(byte[]) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| deriveV2RideTimeSeconds(long) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| decodeLegacySerial$lambda$8(byte) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isPrefixedTotalStatsEncoding(byte[]) |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| decodeTemperature(byte) |  | 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 |
| close() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |