Quick Start
The library is designed to work with Asv.IO. Create a protocol, register GNSS protocol implementations, create a router, and attach one or more ports.
Register protocols
Connection strings
Asv.IO ports are configured with connection strings.
Example | Meaning |
|---|---|
| TCP client port that connects to a remote endpoint. |
| TCP server port that listens for incoming clients. |
| UDP port with remote host and port. |
| Windows serial port. |
| Linux or macOS serial port. |
Device discovery
Register the GNSS device factory when the application needs receiver-level discovery and microservices.
UBX helper API
The UBX microservice includes helper methods for common u-blox workflows.
Visit UBX payload fields
All existing UBX messages implement Asv.IO.IVisitable. Their Accept methods expose typed payload properties with field names, English descriptions, units where applicable, and numeric enum metadata. Satellite records, port configurations, coordinates, arrays, and lists are visited through the corresponding nested Asv.IO types.
A read-only visitor preserves values, absent properties, collection references, and existing serialized packets. Empty poll messages expose no payload fields; poll messages with parameters expose those parameters. An external UbxMessageBase subclass can override the virtual Accept method to describe its own payload.
Native scalar values and collection elements are passed by ref to their backing storage, so edits are visible during the visitor callback. Repeated traversal of initialized collections reuses their storage; changing a variable array's size allocates a replacement array. List sizes must be changed through BeginList before visiting elements; callbacks must keep the collection structure stable during element traversal. Enum values and converted coordinate models use typed conversion steps.
Traversal reflects the existing object model and converted property units. It is separate from UBX binary serialization and does not automatically recompute related count fields, flags, or derived values after an edit. In UbxRxmSfrbx, the visitor exposes the payload identifiers, channel, version, reserved fields, and RawData words; the separately decoded GpsSubFrame and GlonassWord models are not traversed.
Read a RINEX file
Use the contextual file reader for RINEX observation, navigation or meteorological data:
Gzip input is detected automatically. For incremental parsing, register RegisterRinexProtocol() and call RinexMessageParser.Complete() at EOF. See RINEX coverage and examples for version coverage, header context, time systems and canonical writing.