diff --git a/Cargo.lock b/Cargo.lock index 415350a..b34e773 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,7 +40,7 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "kinavis" -version = "1.0.0" +version = "1.0.1" dependencies = [ "kinavis-kernel", "kinavis-nmea0183", diff --git a/crates/kinavis-ais/README.md b/crates/kinavis-ais/README.md index 33410e3..e414d57 100644 --- a/crates/kinavis-ais/README.md +++ b/crates/kinavis-ais/README.md @@ -44,6 +44,9 @@ assert_eq!(report.heading, None); # Ok::<(), Box>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-alerts/README.md b/crates/kinavis-alerts/README.md index ac7f17a..fda3169 100644 --- a/crates/kinavis-alerts/README.md +++ b/crates/kinavis-alerts/README.md @@ -41,6 +41,9 @@ assert!(alerts.len() <= MAX_ALERTS); # Ok::<(), kinavis_kernel::KernelError>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-colregs/README.md b/crates/kinavis-colregs/README.md index 056bcc5..b237523 100644 --- a/crates/kinavis-colregs/README.md +++ b/crates/kinavis-colregs/README.md @@ -35,6 +35,9 @@ assert_eq!(format!("{}", ruling.rule()), "Rule 15"); # Ok::<(), kinavis_kernel::KernelError>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-ins/README.md b/crates/kinavis-ins/README.md index c7315ac..fb8aa63 100644 --- a/crates/kinavis-ins/README.md +++ b/crates/kinavis-ins/README.md @@ -60,6 +60,9 @@ assert!(ins.heading_sigma().degrees() < 0.5); # Ok::<(), Box>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-kernel/README.md b/crates/kinavis-kernel/README.md index eaea6d8..f2d6fdb 100644 --- a/crates/kinavis-kernel/README.md +++ b/crates/kinavis-kernel/README.md @@ -9,7 +9,8 @@ The kernel holds what has exactly one correct implementation. Algorithms crate (sensor adapters, environment models, INS) depends on the kernel alone, so adapters change without touching the core. -Most users should depend on `kinavis`, which re-exports these types. Depend on +Most users should depend on [`kinavis`](https://crates.io/crates/kinavis), +which re-exports these types and lists the other KINAVIS crates. Depend on `kinavis-kernel` directly for an adapter that must not pull in the algorithms. ## Feature flags diff --git a/crates/kinavis-nmea0183/README.md b/crates/kinavis-nmea0183/README.md index 8f4fc32..6f2a261 100644 --- a/crates/kinavis-nmea0183/README.md +++ b/crates/kinavis-nmea0183/README.md @@ -17,6 +17,9 @@ translated into a kernel `GnssFix`. The sentence never reaches the domain. - No allocation: parses `&[u8]` in place. - No panics: every failure is an `NmeaError`. +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-nmea2000/README.md b/crates/kinavis-nmea2000/README.md index f775105..3d40b70 100644 --- a/crates/kinavis-nmea2000/README.md +++ b/crates/kinavis-nmea2000/README.md @@ -43,6 +43,9 @@ assert_eq!(format!("{:.2}", depth.depth_from_reference().unwrap().metres()), "10 # Ok::<(), Box>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-traffic/README.md b/crates/kinavis-traffic/README.md index e24de45..d3128ab 100644 --- a/crates/kinavis-traffic/README.md +++ b/crates/kinavis-traffic/README.md @@ -46,6 +46,9 @@ println!("{} {} at {}", target.target, target.motion.unwrap().course_over_ground # Ok::<(), kinavis::NavigationError>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis-wmm/README.md b/crates/kinavis-wmm/README.md index 3ffec0c..7f29855 100644 --- a/crates/kinavis-wmm/README.md +++ b/crates/kinavis-wmm/README.md @@ -25,6 +25,9 @@ println!("variation {}", field.declination()); # Ok::<(), kinavis_kernel::KernelError>(()) ``` +The navigation algorithms and the list of the other KINAVIS crates are in +[`kinavis`](https://crates.io/crates/kinavis). + ## Feature flags - `std` *(default)* — standard library maths in the kernel. diff --git a/crates/kinavis/Cargo.toml b/crates/kinavis/Cargo.toml index 195c81a..f517b9c 100644 --- a/crates/kinavis/Cargo.toml +++ b/crates/kinavis/Cargo.toml @@ -5,7 +5,7 @@ documentation = "https://docs.rs/kinavis" readme = "README.md" keywords = ["navigation", "marine", "nautical", "compass", "dead-reckoning"] categories = ["science::geo", "no-std::no-alloc", "algorithms"] -version.workspace = true +version = "1.0.1" authors.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/crates/kinavis/README.md b/crates/kinavis/README.md index 292d7ec..93bc23c 100644 --- a/crates/kinavis/README.md +++ b/crates/kinavis/README.md @@ -51,6 +51,23 @@ the type, and every quantity its unit. The [guide](https://docs.rs/kinavis/latest/kinavis/guide/index.html) walks through all of it with examples that are compiled and run as tests. +## The KINAVIS crates + +`kinavis` holds the algorithms. The other crates bring sensor data in and +build on top of it, each `no_std` and without an allocator: + +| Crate | What it does | +|---|---| +| [`kinavis-kernel`](https://crates.io/crates/kinavis-kernel) | the value types, re-exported here; depend on it alone for an adapter that must not pull in the algorithms | +| [`kinavis-nmea0183`](https://crates.io/crates/kinavis-nmea0183) | NMEA 0183 sentences, parsed and written | +| [`kinavis-nmea2000`](https://crates.io/crates/kinavis-nmea2000) | NMEA 2000 parameter groups out of CAN frames, fast-packet included | +| [`kinavis-ais`](https://crates.io/crates/kinavis-ais) | AIS messages: position reports, static and voyage data, aids to navigation | +| [`kinavis-wmm`](https://crates.io/crates/kinavis-wmm) | the World Magnetic Model 2025: magnetic variation at any position | +| [`kinavis-ins`](https://crates.io/crates/kinavis-ins) | a strapdown inertial navigation system with a fifteen-state error filter aided by GNSS and heading | +| [`kinavis-traffic`](https://crates.io/crates/kinavis-traffic) | target tracking from radar and AIS, CPA and TCPA, the avoiding manoeuvre | +| [`kinavis-colregs`](https://crates.io/crates/kinavis-colregs) | the steering and sailing rules of the COLREGs as data | +| [`kinavis-alerts`](https://crates.io/crates/kinavis-alerts) | bridge alert management: alarms, warnings and cautions, with acknowledgement | + ## Features | Feature | Default | What it does |