ublox
Introduction
This project aims to build a pure-rust I/O library for uBlox GPS devices, specifically using the UBX protocol.
The crate has originally been developed for Series 8 uBlox devices, but it is being currently adapted to support other protocol specifications and uBlox devices.
Basic Usage
Constructing Packets
Constructing packets happens using the Builder variant of the packet, for example:
use ;
let packet: = CfgPrtUartBuilder .into_packet_bytes;
For variable-size packets like CfgValSet, you can construct it into a new Vec<u8>:
use ;
let mut buffer = Vecnew;
CfgValSetBuilder
.extend_to;
Or by extending to an existing one:
use ;
let mut packet_vec = Vecnew;
CfgValSetBuilder
.extend_to;
let packet = packet_vec.as_slice;
See the documentation for the individual Builder structs for information on the fields.
Parsing Packets
Parsing packets happens by instantiating a Parser object and then adding data into it using its consume_ubx() method. The parser contains an internal buffer of data, and when consume_ubx() is called that data is copied into the internal buffer and an iterator-like object is returned to access the packets. For example:
#
Examples
For a list of examples and their description see the examples/ directory.
Feature Flags
The following feature flags are available:
alloc
Enable usage of heap allocated Vectors from core::vec.
serde
Enable serde support.
std
Enable std support.
This library supports no_std environments with a deterministic-size Parser. See the documentation for more information.
ubx_proto14
Enable support for uBlox protocol 14 messages (legacy messages).
ubx_proto23
Enable support for uBlox protocol 23 messages (default).
ubx_proto27
Enable support for uBlox protocol 27 messages.
ubx_proto31
Enable support for uBlox protocol 31 messages.
Minimum Supported Rust Version
The library crate will support at least the previous year's Rust compilers. Currently, the MSRV is 1.83.0. Note that, as we are pre-1.0, breaking the MSRV will not force a minor update - the MSRV can change in a patch update.
Contributing
- If you have noticed a bug or would like to see a new feature added, please submit an issue on the issue tracker and preferably a Pull Request.
License
ublox.rs is distributed under the terms of the MIT license, see LICENSE.