Release version 1.18.0rc5
New Features
- Added flag to `SetConfigMessage` to revert to default
- Added `SetConfigMessage` definition for UTC leap second override
- Added new `EventType` enums to capture commands and responses for diagnostic
purposes
- Added `IsCommand()` and `IsResponse()` helper functions
- Added `return_in_order` option to `DataLoader.read()` to return a single list
of all message types in the order they were recorded
- Added `return_bytes` option to `DataLoader.read()` to return the original
binary header+payload for each message
- Added `max_bytes` option to `DataLoader` reads
- Added GPS week rollover override support
- Added indexing configuration commands by interface using
`InterfaceConfigSubmessage`
Changes
- Redefined cold/warm/hot start behavior to be consisent with other devices, and
added new PVT and diagnostic log reset defintions
- Not compatible with older device firmware
- Made Python message decoding robust to new enum values from the device that
are not defined in the current version of the Python library, including value
that are reserved for internal use
- Made `to_string()` functions `constexpr` where possible (requires C++14;
functions set as `inline` for C++11)
- Added consistent `repr()` formatting for all message classes
- Added auto-registration of `MessagePayload` subclasses instead of explicitly
managed dict
- Handle config responses with no payload gracefully (these can happen on an
`UNAVAILABLE` response)
- Read a max of 1 MB when searching for t0 to prevent silently reading for VERY
long times on large logs that do not have any messages with P1 and/or system
time
- Repurposed `GNSSInfoMessage::last_differential_time` field to output:
- UTC leap second
- Number of SVs in use
- GNSS corrections age
- GNSS corrections baseline distance
- Added a GNSS corrections status plot
- Added `message_version` argument to `MessagePayload.unpack()` API
- Include `repr()` string contents in `p1_print --format=online` output for more detail
- Improved `p1_print --message-type` matching behavior, including wildcard and best match support
- Include week/TOW in `PoseMessage` and `GNSSInfoMessage` GPS time printout
Fixes
- Fixed handling of single-char user byte input (`2E A` vs `2E 0A`) in
`binary_message_decode.py` example app
- Fixed truncation of non-time-dependent data (e.g., thresholds) in `DataLoader`
if the size of the data happens to match the number of time elements
- Fixed event notification packing if description is `str` and not `bytes`
- Fixed log search when specifying an absolute path to a directory
- Fixed external_cmake_project example build error due to incorrect dependency
version
- Removed incorrect `protocol` field from Python `MessageRateResponse` class
- Fixed incorrect initialization for invalid DataVersion C++ struct
- Corrected message version number in C++ `HeadingMeasurement` class
- Fixed setting system_t0 when first time is NaN
- Fixed duplicate `PoseMessage.__repr__()` definition
- Fix bugs in Python `InterfaceConfigSubmessage` implementation