gnss-converters 0.3.23 → 0.3.24
raw patch · 2 files changed
+20/−7 lines, 2 filesdep ~rtcmPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: rtcm
API changes (from Hackage documentation)
- Data.RTCM3.SBP.Types: class HasStore c_apgP where storeCurrentGpsTime = (.) store storeCurrentGpsTime storeGpsTimeMap = (.) store storeGpsTimeMap storeObservations = (.) store storeObservations
+ Data.RTCM3.SBP.Types: class HasStore c_aph2 where storeCurrentGpsTime = (.) store storeCurrentGpsTime storeGpsTimeMap = (.) store storeGpsTimeMap storeObservations = (.) store storeObservations
- Data.RTCM3.SBP.Types: store :: HasStore c_apgP => Lens' c_apgP Store
+ Data.RTCM3.SBP.Types: store :: HasStore c_aph2 => Lens' c_aph2 Store
- Data.RTCM3.SBP.Types: storeCurrentGpsTime :: HasStore c_apgP => Lens' c_apgP (IO GpsTime)
+ Data.RTCM3.SBP.Types: storeCurrentGpsTime :: HasStore c_aph2 => Lens' c_aph2 (IO GpsTime)
- Data.RTCM3.SBP.Types: storeGpsTimeMap :: HasStore c_apgP => Lens' c_apgP (IORef GpsTimeMap)
+ Data.RTCM3.SBP.Types: storeGpsTimeMap :: HasStore c_aph2 => Lens' c_aph2 (IORef GpsTimeMap)
- Data.RTCM3.SBP.Types: storeObservations :: HasStore c_apgP => Lens' c_apgP (IORef (Vector PackedObsContent))
+ Data.RTCM3.SBP.Types: storeObservations :: HasStore c_aph2 => Lens' c_aph2 (IORef (Vector PackedObsContent))
Files
- gnss-converters.cabal +2/−2
- src/Data/RTCM3/SBP/Biases.hs +18/−5
gnss-converters.cabal view
@@ -1,5 +1,5 @@ name: gnss-converters-version: 0.3.23+version: 0.3.24 cabal-version: >=1.22 build-type: Simple license: BSD3@@ -37,7 +37,7 @@ monad-control >=1.0.1.0, mtl >=2.2.1, resourcet >=1.1.9,- rtcm >=0.2.10,+ rtcm >=0.2.11, sbp >=2.3.1, time >=1.5.0.1, transformers-base >=0.4.4,
src/Data/RTCM3/SBP/Biases.hs view
@@ -14,19 +14,31 @@ ( converter ) where -import BasicPrelude+import BasicPrelude hiding (mask) import Control.Lens import Data.Bits import Data.Conduit+import Data.Int import Data.RTCM3 import Data.Word import SwiftNav.SBP +{-# ANN module ("HLint: ignore Use head"::String) #-}+ -- | Derive sender from station. -- toSender :: Word16 -> Word16 toSender station = station .|. 61440 +-- | Expand out array of biases.+--+toBiases :: Word8 -> Int -> [Int16] -> [Int16]+toBiases mask i (bias:biases)+ | testBit mask i = bias : toBiases mask (i+1) biases+toBiases mask i biases+ | null biases = biases+ | otherwise = 0 : toBiases mask (i+1) biases+ -- | Convert an RTCM 1230 GLO biases message into an SBP MsgGloBiases. -- converter :: Monad m => Msg1230 -> Conduit i m [SBPMsg]@@ -34,11 +46,12 @@ let bias = m ^. msg1230_bias sender = toSender $ bias ^. glonassBias_station scale = bool 50 (-50) $ bias ^. glonassBias_bias+ biases = toBiases (bias ^. glonassBias_mask) 0 (bias ^. glonassBias_biases) <> repeat 0 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+ , _msgGloBiases_l1ca_bias = scale * biases !! 0+ , _msgGloBiases_l1p_bias = scale * biases !! 1+ , _msgGloBiases_l2ca_bias = scale * biases !! 2+ , _msgGloBiases_l2p_bias = scale * biases !! 3 } yield [SBPMsgGloBiases m' $ toSBP m' sender]