| getPollingPlan() |  | 0% | | n/a | 1 | 1 | 22 | 22 | 1 | 1 |
| matchesQueryResponse(ProtocolQuerySpec, byte[]) |  | 0% |  | 0% | 11 | 11 | 8 | 8 | 1 | 1 |
| parseWheelLogTelemetryFrame(byte[]) |   | 83% |   | 55% | 25 | 29 | 1 | 37 | 0 | 1 |
| parseLegacyFrame(byte[]) |   | 82% |   | 54% | 21 | 24 | 2 | 38 | 0 | 1 |
| decodeWheelLogSpeed(byte[]) |   | 60% |   | 25% | 8 | 9 | 2 | 7 | 0 | 1 |
| createCommand(CommandType, Object) |   | 51% |   | 33% | 6 | 9 | 5 | 9 | 0 | 1 |
| deriveRideTimeSeconds(long) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| decodeWheelLogBattery(byte[]) |   | 43% |   | 33% | 3 | 4 | 3 | 6 | 0 | 1 |
| isDeviceReady(EUCData) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| parseWheelLogFrames(byte[]) |   | 89% |   | 70% | 7 | 13 | 2 | 26 | 0 | 1 |
| estimateBatteryPercent(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseWheelLogFirmwareFrame(byte[]) |   | 91% |   | 50% | 4 | 5 | 0 | 11 | 0 | 1 |
| parseWheelLogSerialFrame(byte[]) |   | 93% |   | 50% | 6 | 7 | 0 | 13 | 0 | 1 |
| parseWheelLogFrame(byte[]) |   | 87% |   | 70% | 3 | 7 | 0 | 11 | 0 | 1 |
| getServiceUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDataCharacteristicUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWriteCharacteristicUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| looksLikeMyFrames(byte[]) |   | 90% |   | 75% | 3 | 7 | 0 | 7 | 0 | 1 |
| getCommandSupport(CommandType) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| inferModel(byte[]) |   | 84% |   | 75% | 1 | 3 | 0 | 2 | 0 | 1 |
| getSupportedCommandTypes() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWriteFlow() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getBMSData() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| findWheelLogHeaderIndex() |  | 96% |   | 75% | 2 | 5 | 0 | 7 | 0 | 1 |
| NinebotProtocol() |  | 100% | | n/a | 0 | 1 | 0 | 21 | 0 | 1 |
| buildControlCommand(int, int) |  | 100% |  | 100% | 0 | 2 | 0 | 10 | 0 | 1 |
| buildQueryCommand(int) |  | 100% |  | 100% | 0 | 2 | 0 | 9 | 0 | 1 |
| canHandle(EUCDevice) |  | 100% |  | 100% | 0 | 7 | 0 | 8 | 0 | 1 |
| decode(byte[]) |  | 100% |  | 100% | 0 | 2 | 0 | 10 | 0 | 1 |
| close() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 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 |
| getRawFrameFlow() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |