packages feed

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 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]