nmea: add GGA, RMC

This commit is contained in:
Daniel 2025-05-17 23:22:37 +00:00
parent a687c946d2
commit 59c7b53022

View File

@ -58,6 +58,56 @@
(local (local
msg-types msg-types
{ {
:GGA
(fn [fields]
(let [[utc lat latsign lon lonsign
fix-quality
total-space-vehicles
hdop
altitude _
geoidal-separation _
_ _ ] fields
latf (if (= lat "")
nil
(* (tonumber lat) 0.01 (case latsign :N 1 :S -1)))
lonf (if (= lon "")
nil
(* (tonumber lon) 0.01 (case lonsign :E 1 :W -1)))]
{ :lat latf
:lon lonf
: fix-quality
:total-space-vehicles (try-number total-space-vehicles)
:hdop (try-number hdop)
:altitude (try-number altitude)
:geoidal-separation (try-number geoidal-separation)
}))
:RMC
(fn [[utc valid lat latsign lon lonsign
knots bearing-true date
magn-var magn-var-sign
mode nav-status &as fields]]
(let [latf (if (= lat "")
nil
(* (tonumber lat) 0.01 (case latsign :N 1 :S -1)))
lonf (if (= lon "")
nil
(* (tonumber lon) 0.01 (case lonsign :E 1 :W -1)))
magnetic-variation (if (= magn-var "")
nil
(* (tonumber magn-var)
(case magn-var-sign :E 1 :W -1)))]
{ : utc
: valid
:lat latf
:lon lonf
:speed-knots (try-number knots)
:bearing-true (try-number bearing-true)
: date
: magnetic-variation
: mode
}))
:GNS :GNS
(fn [fields] (fn [fields]
(let [[utc lat latsign lon lonsign mode total-space-vehicles (let [[utc lat latsign lon lonsign mode total-space-vehicles