Dokit 0.5.2-pre
Internal development documentation
Loading...
Searching...
No Matches
Pokit API Errata
Member DataLoggerServicePrivate::encodeSettings (const DataLoggerService::Settings &settings, const bool updateIntervalIs32bit)
For Pokit Meter, updateInterval is uint16 seconds (as per the Pokit API 1.00), however for Pokit Pro it's uint32 milliseconds, even though that's not officially documented anywhere.
Member DataLoggerServicePrivate::parseMetadata (const QByteArray &value)
For Pokit Meter, updateInterval is uint16 (as per the Pokit API 1.00), however for Pokit Pro it's uint32, even though that's not officially documented anywhere. Also note, the doc claims 'microseconds' (ie 10^-6), but clearly the value is 'milliseconds' (ie 10^-3) for Pokit Pro, and whole seconds for Pokit Meter.
Member DeviceInfoService::serialNumber () const
Unlike other string characteristics, Pokit (Pro) devices always appear to add a trailing null byte to serial number strings. So here we strip any that are present.
Member MultimeterService::Mode
The following enumeration values are as-yet undocumented by Pokit Innovations. @pcolby reverse-engineered them as part of the dokit project.
Member PokitPro::CapacitanceRange
These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations. @pcolby reverse-engineered them as part of the dokit project.
Member PokitPro::CurrentRange
These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations. @pcolby reverse-engineered them as part of the dokit project.
Member PokitPro::ResistanceRange
These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations. @pcolby reverse-engineered them as part of the dokit project.
Member PokitPro::VoltageRange
These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations. @pcolby reverse-engineered them as part of the dokit project.
Member StatusService::flashLed ()
The Android app can turn Pokit Pro LEDs on/off. Perhaps that is handled by an undocumented use of this characteristic. Or perhaps its via some other service.
Struct StatusService::ServiceUuids
Pokit API 1.00 (and 0.02) states the Status Service UUID as 57d3a771-267c-4394-8872-78223e92aec4 which is correct for the Pokit Meter, but Pokit Pro uses 57d3a771-267c-4394-8872-78223e92aec5 instead, that is the last digit is a 5 not 4.
Member StatusService::SwitchPosition
These enum values are undocumented, but easily testable with a physical Pokit Pro device. Internally, Pokit's Android app calls these: SWITCH_MODE_VOLTAGE, SWITCH_MODE_ALL and SWITCH_MODE_CURRENT.
Member StatusServicePrivate::parseButtonPress (const QByteArray &value)

The button event is the second byte, but no idea what the first byte is. In all examples I've see it's always 0x02. It appears that the Pokit Android app only ever looks at bytes[1].

Note, we can actually write to the Button Press characteristic too. If we do, then whatever we set as the first byte persists, and (unsurprisingly) the second byte reverts to the current button state. So still no idea what that first byte is for.

Member StatusServicePrivate::parseStatus (const QByteArray &value)
Pokit API 0.02 says the Status characteristic is 5 bytes. API 1.00 then added an additional byte for Battery Status, for 6 bytes in total. However, Pokit Pro devices return 8 bytes here. It appears that the first of those 2 extra bytes (ie the 7th byte) is used to indicate the physical switch position, while the other extra byte (ie the 8th byte) indicates the device's current charging status.