Skip to content

Commit a328016

Browse files
committed
Moved the documentation to the README and imported the README as a doc comment
1 parent 52537f7 commit a328016

File tree

2 files changed

+49
-56
lines changed

2 files changed

+49
-56
lines changed

README.md

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,54 @@
11
# swiftnav-rs
2+
`swiftnav-rs` is a library that implements GNSS utility functions to perform
3+
position estimations. The data used by `swiftnav-rs` typically comes from GNSS
4+
receiver chips as raw observation and ephemeris data. `swiftnav-rs` is more of
5+
a "bring your own algorithm" library, it provides a bunch of functionality that
6+
is useful when processing raw GNSS data, but it provides only limited position
7+
estimation capabilities. Each module encompasses a single set of functionality,
8+
and they are meant to be pretty self-explanatory for developers familiar with
9+
GNSS processing.
210

3-
`swiftnav-rs` is a crate that implements GNSS utility functions for use by
4-
software-defined GNSS receivers or software requiring GNSS functionality. It is
5-
intended to be as portable as possible and has limited dependencies.
11+
GNSS systems are used to estimate the location of the receiver by determining
12+
the distance between the receiver and several satellites. The satellites send
13+
out precisely timed periodic messages and the receiver measures the delay
14+
of those messages. Knowing the location of the satellites at the time of
15+
transmission and the delays of the messages the receiver is able to determine
16+
the location of itself in relation to the satellites.
617

7-
`swiftnav-rs` does not provide any functionality for communicating with Swift
8-
Navigation receivers. See [libsbp](https://github.com/swift-nav/libsbp) to
9-
communicate with receivers using Swift Binary Protocol (SBP).
18+
`swiftnav-rs` does not provide any functionality for communicating with
19+
receivers made by Swift Navigation, or any manufacturer.
20+
[libsbp](https://github.com/swift-nav/libsbp) is the library to use if you
21+
want to communicate with receivers using Swift Binary Protocol (SBP).
22+
23+
## Time
24+
Time is a very important aspect of GNSS. `swiftnav-rs` defaults to representing
25+
all times as GPS times. It provides the ability to manipulate GPS time stamps,
26+
as well as means to convert a GPS time stamp into various other time bases
27+
(GLONASS time, UTC, MJD).
28+
29+
## Coordinates
30+
Several different coordinate types have representations and the ability to
31+
convert between them. Earth centered earth fixed (ECEF), Latitude longitude and
32+
height (both in radians and degrees), and Azimuth and elevation coordinates are
33+
available.
34+
35+
## Ephemeris
36+
Decoding and evaluation of broadcast ephemeris for all major GNSS constellations
37+
is made available. You are able to calculate the satellite position at a
38+
particular point in time in several different coordinates.
39+
40+
## Troposphere and Ionosphere
41+
Two major sources of signal error in GNSS are the troposphere and ionosphere.
42+
`swiftnav-rs` provides the ability to decode and use the broadcast Klobuchar
43+
ionosphere model. An implementation of the UNM3m troposphere model is also
44+
provided.
45+
46+
## Single epoch position solver
47+
A simple least squares position solver is also included. This allows you to
48+
get an approximate position with GNSS measurements from a single point in time.
49+
It uses a least squares algorith, so no state is maintained between solves.
50+
This can be used to seed your own position estimation algorithm with a rough
51+
starting location.
1052

1153
## Publishing a new release
1254

src/lib.rs

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,7 @@
77
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
88
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
99
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
10-
//! `swiftnav-rs` is a library that implements GNSS utility functions to perform
11-
//! position estimations. The data used by `swiftnav-rs` typically comes from GNSS
12-
//! receiver chips as raw observation and ephemeris data. `swiftnav-rs` is more of
13-
//! a "bring your own algorithm" library, it provides a bunch of functionality that
14-
//! is useful when processing raw GNSS data, but it provides only limited position
15-
//! estimation capabilities. Each module encompasses a single set of functionality,
16-
//! and they are meant to be pretty self-explanatory for developers familiar with
17-
//! GNSS processing.
18-
//!
19-
//! GNSS systems are used to estimate the location of the receiver by determining
20-
//! the distance between the receiver and several satellites. The satellites send
21-
//! out precisely timed periodic messages and the receiver measures the delay
22-
//! of those messages. Knowing the location of the satellites at the time of
23-
//! transmission and the delays of the messages the receiver is able to determine
24-
//! the location of itself in relation to the satellites.
25-
//!
26-
//! `swiftnav-rs` does not provide any functionality for communicating with
27-
//! receivers made by Swift Navigation, or any manufacturer.
28-
//! [libsbp](https://github.com/swift-nav/libsbp) is the library to use if you
29-
//! want to communicate with receivers using Swift Binary Protocol (SBP).
30-
//!
31-
//! ## Time
32-
//! Time is a very important aspect of GNSS. `swiftnav-rs` defaults to representing
33-
//! all times as GPS times. It provides the ability to manipulate GPS time stamps,
34-
//! as well as means to convert a GPS time stamp into various other time bases
35-
//! (GLONASS time, UTC, MJD).
36-
//!
37-
//! ## Coordinates
38-
//! Several different coordinate types have representations and the ability to
39-
//! convert between them. Earth centered earth fixed (ECEF), Latitude longitude and
40-
//! height (both in radians and degrees), and Azimuth and elevation coordinates are
41-
//! available.
42-
//!
43-
//! ## Ephemeris
44-
//! Decoding and evaluation of broadcast ephemeris for all major GNSS constellations
45-
//! is made available. You are able to calculate the satellite position at a
46-
//! particular point in time in several different coordinates.
47-
//!
48-
//! ## Troposphere and Ionosphere
49-
//! Two major sources of signal error in GNSS are the troposphere and ionosphere.
50-
//! `swiftnav-rs` provides the ability to decode and use the broadcast Klobuchar
51-
//! ionosphere model. An implementation of the UNM3m troposphere model is also
52-
//! provided.
53-
//!
54-
//! ## Single epoch position solver
55-
//! A simple least squares position solver is also included. This allows you to
56-
//! get an approximate position with GNSS measurements from a single point in time.
57-
//! It uses a least squares algorith, so no state is maintained between solves.
58-
//! This can be used to seed your own position estimation algorithm with a rough
59-
//! starting location.
10+
#![doc = include_str!("../README.md")]
6011

6112
mod c_bindings;
6213
pub mod coords;

0 commit comments

Comments
 (0)