gnss-converters 0.3.21 → 0.3.23
raw patch · 4 files changed
+53/−10 lines, 4 filesdep −binarydep −textdep −unordered-containersdep ~rtcmdep ~sbpPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: binary, text, unordered-containers
Dependency ranges changed: rtcm, sbp
API changes (from Hackage documentation)
+ Data.RTCM3.SBP.Biases: converter :: Monad m => Msg1230 -> Conduit i m [SBPMsg]
- Data.RTCM3.SBP.Types: class HasStore c_apfQ where storeCurrentGpsTime = (.) store storeCurrentGpsTime storeGpsTimeMap = (.) store storeGpsTimeMap storeObservations = (.) store storeObservations
+ Data.RTCM3.SBP.Types: class HasStore c_apgP where storeCurrentGpsTime = (.) store storeCurrentGpsTime storeGpsTimeMap = (.) store storeGpsTimeMap storeObservations = (.) store storeObservations
- Data.RTCM3.SBP.Types: store :: HasStore c_apfQ => Lens' c_apfQ Store
+ Data.RTCM3.SBP.Types: store :: HasStore c_apgP => Lens' c_apgP Store
- Data.RTCM3.SBP.Types: storeCurrentGpsTime :: HasStore c_apfQ => Lens' c_apfQ (IO GpsTime)
+ Data.RTCM3.SBP.Types: storeCurrentGpsTime :: HasStore c_apgP => Lens' c_apgP (IO GpsTime)
- Data.RTCM3.SBP.Types: storeGpsTimeMap :: HasStore c_apfQ => Lens' c_apfQ (IORef GpsTimeMap)
+ Data.RTCM3.SBP.Types: storeGpsTimeMap :: HasStore c_apgP => Lens' c_apgP (IORef GpsTimeMap)
- Data.RTCM3.SBP.Types: storeObservations :: HasStore c_apfQ => Lens' c_apfQ (IORef (Vector PackedObsContent))
+ Data.RTCM3.SBP.Types: storeObservations :: HasStore c_apgP => Lens' c_apgP (IORef (Vector PackedObsContent))
Files
- gnss-converters.cabal +6/−9
- src/Data/RTCM3/SBP.hs +2/−0
- src/Data/RTCM3/SBP/Biases.hs +44/−0
- src/Data/RTCM3/SBP/Positions.hs +1/−1
gnss-converters.cabal view
@@ -1,5 +1,5 @@ name: gnss-converters-version: 0.3.21+version: 0.3.23 cabal-version: >=1.22 build-type: Simple license: BSD3@@ -20,6 +20,7 @@ exposed-modules: Data.RTCM3.Replay Data.RTCM3.SBP+ Data.RTCM3.SBP.Biases Data.RTCM3.SBP.Ephemerides Data.RTCM3.SBP.Observations Data.RTCM3.SBP.Positions@@ -36,8 +37,8 @@ monad-control >=1.0.1.0, mtl >=2.2.1, resourcet >=1.1.9,- rtcm >=0.2.8,- sbp >=2.3.0,+ rtcm >=0.2.10,+ sbp >=2.3.1, time >=1.5.0.1, transformers-base >=0.4.4, vector >=0.11.0.0@@ -92,21 +93,17 @@ aeson-pretty >=0.7.2, base >=4.8.2.0, basic-prelude >=0.5.2,- binary >=0.7.5.0, binary-conduit >=1.2.4.1, bytestring >=0.10.6.0, conduit >=1.2.10, conduit-extra >=1.1.16, gnss-converters, lens >=4.13,- rtcm >=0.2.8,- sbp >=2.3.0,+ sbp >=2.3.1, tasty >=0.11.2.1, tasty-golden >=2.3.1.1, tasty-hunit >=0.9.2,- text >=1.2.2.2,- time >=1.5.0.1,- unordered-containers >=0.2.8.0+ time >=1.5.0.1 default-language: Haskell2010 hs-source-dirs: test other-modules:
src/Data/RTCM3/SBP.hs view
@@ -23,6 +23,7 @@ import Data.Conduit import Data.IORef import Data.RTCM3+import qualified Data.RTCM3.SBP.Biases as Biases import qualified Data.RTCM3.SBP.Ephemerides as Ephemerides import qualified Data.RTCM3.SBP.Observations as Observations import qualified Data.RTCM3.SBP.Positions as Positions@@ -41,6 +42,7 @@ (RTCM3Msg1005 m _rtcm3) -> Positions.converter m (RTCM3Msg1006 m _rtcm3) -> Positions.converter m (RTCM3Msg1019 m _rtcm3) -> Ephemerides.converter m+ (RTCM3Msg1230 m _rtcm3) -> Biases.converter m _rtcm3Msg -> mempty -- | Setup new storage for converter.
+ src/Data/RTCM3/SBP/Biases.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE NoImplicitPrelude #-}++-- |+-- Module: Data.RTCM3.SBP.Biases+-- Copyright: Copyright (C) 2017 Swift Navigation, Inc.+-- License: LGPL-3+-- Maintainer: Swift Navigation <dev@swiftnav.com>+-- Stability: experimental+-- Portability: portable+--+-- RTCMv3 to SBP Biases Conversions.++module Data.RTCM3.SBP.Biases+ ( converter+ ) where++import BasicPrelude+import Control.Lens+import Data.Bits+import Data.Conduit+import Data.RTCM3+import Data.Word+import SwiftNav.SBP++-- | Derive sender from station.+--+toSender :: Word16 -> Word16+toSender station = station .|. 61440++-- | Convert an RTCM 1230 GLO biases message into an SBP MsgGloBiases.+--+converter :: Monad m => Msg1230 -> Conduit i m [SBPMsg]+converter m = do+ let bias = m ^. msg1230_bias+ sender = toSender $ bias ^. glonassBias_station+ scale = bool 50 (-50) $ bias ^. glonassBias_bias+ m' = MsgGloBiases+ { _msgGloBiases_mask = bias ^. glonassBias_mask+ , _msgGloBiases_l1ca_bias = scale * bias ^. glonassBias_l1ca+ , _msgGloBiases_l1p_bias = scale * bias ^. glonassBias_l1p+ , _msgGloBiases_l2ca_bias = scale * bias ^. glonassBias_l2ca+ , _msgGloBiases_l2p_bias = scale * bias ^. glonassBias_l2p+ }+ yield [SBPMsgGloBiases m' $ toSBP m' sender]
src/Data/RTCM3/SBP/Positions.hs view
@@ -53,4 +53,4 @@ y = fromIntegral (ecefY m) / 10000 z = fromIntegral (ecefZ m) / 10000 m' = MsgBasePosEcef x y z- yield [SBPMsgBasePosEcef m' $ toSBP m' $ toSender $ sender m]+ yield [SBPMsgBasePosEcef m' $ toSBP m' $ sender m]