Skip to content

Commit a3bb3e9

Browse files
authored
Add introductory documentation (#61)
1 parent f2fa388 commit a3bb3e9

File tree

11 files changed

+136
-8
lines changed

11 files changed

+136
-8
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# swiftnav-rs
22

3-
`swiftnav-rs` is a crate that implements GNSS utility functions for use by software-defined GNSS receivers or software requiring GNSS functionality. It is intended to be as portable as possible and has limited dependancies
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.
46

57
`swiftnav-rs` does not provide any functionality for communicating with Swift
68
Navigation receivers. See [libsbp](https://github.com/swift-nav/libsbp) to

src/c_bindings.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
10+
111
// Include the C bindings
212
#![allow(non_upper_case_globals)]
313
#![allow(non_camel_case_types)]

src/coords.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Coordinates and conversions
211
//!
312
//! These four primary coordinates types are defined:

src/edc.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Error detection code
211
312
use crate::c_bindings;

src/ephemeris.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Decoding and evaluation of satellite ephemeris
211
//!
312
//! GNSS satellites broadcast ephemeris, values used to calculate their position

src/ionosphere.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Ionosphere delay calculation
211
//!
312
//! Ionospheric delays are typically modeled with the Klobuchar model. The model

src/lib.rs

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,62 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// 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+
//!
119
//! GNSS systems are used to estimate the location of the receiver by determining
2-
//! the distance between the receiver and several satelites. The satellites send
20+
//! the distance between the receiver and several satellites. The satellites send
321
//! out precisely timed periodic messages and the receiver measures the delay
422
//! of those messages. Knowing the location of the satellites at the time of
523
//! transmission and the delays of the messages the receiver is able to determine
624
//! the location of itself in relation to the satellites.
725
//!
8-
//! Libswiftnav is a library that implements GNSS utility functions to perform
9-
//! position estimations. The data used by libswiftnav typically comes from GNSS
10-
//! reciever chips as raw observation and ephemeris data.
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.
1147
//!
12-
//! Libswiftnav does not provide any functionality for communicating with Swift
13-
//! Navigation or any other receivers. See [libsbp](https://github.com/swift-nav/libsbp)
14-
//! to communicate with receivers using Swift Binary Protocol (SBP).
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.
1553
//!
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.
1660
1761
mod c_bindings;
1862
pub mod coords;

src/navmeas.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Raw GNSS measurement representation
211
//!
312
//! Raw measurements of GNSS signals have several aspects to them, from the time

src/signal.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Signal identifiers
211
//!
312
//! Signals are specific to a satellite and code combination. A satellite is

src/solver.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
// Copyright (c) 2020-2021 Swift Navigation Inc.
2+
// Contact: Swift Navigation <dev@swiftnav.com>
3+
//
4+
// This source is subject to the license found in the file 'LICENSE' which must
5+
// be be distributed together with this source. All other rights reserved.
6+
//
7+
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
8+
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9+
// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
110
//! Single epoch PVT solver
211
//!
312
//! Several [raw measurements](crate::navmeas::NavigationMeasurement) from the

0 commit comments

Comments
 (0)