gnss-converters 0.1.17 → 0.1.18
raw patch · 4 files changed
+38/−38 lines, 4 files
Files
- gnss-converters.cabal +1/−1
- src/Data/RTCM3/SBP.hs +17/−17
- src/Data/RTCM3/SBP/Types.hs +2/−2
- test/Test/Data/RTCM3/SBP.hs +18/−18
gnss-converters.cabal view
@@ -1,5 +1,5 @@ name: gnss-converters-version: 0.1.17+version: 0.1.18 synopsis: GNSS Converters. description: Haskell bindings for GNSS converters. homepage: http://github.com/swift-nav/gnss-converters
src/Data/RTCM3/SBP.hs view
@@ -18,7 +18,7 @@ , q32Width , toWn , mjdEpoch- , updateGPSTime+ , updateGpsTime , updateLock , convert , newStore@@ -173,31 +173,31 @@ fromEcefVal :: Int64 -> Double fromEcefVal x = fromIntegral x / 10000 -newGPSTime :: MonadStore e m => Word32 -> m ObsGPSTime-newGPSTime tow = do+newGpsTime :: MonadStore e m => Word32 -> m GpsTime+newGpsTime tow = do wn <- view storeWn >>= liftIO . readIORef- return ObsGPSTime- { _obsGPSTime_tow = tow- , _obsGPSTime_wn = wn+ return GpsTime+ { _gpsTime_tow = tow+ , _gpsTime_wn = wn } -- | If incoming TOW is less than stored TOW, rollover WN. ---updateGPSTime :: Word32 -> ObsGPSTime -> ObsGPSTime-updateGPSTime tow gpsTime =- gpsTime & obsGPSTime_tow .~ tow &- if tow >= gpsTime ^. obsGPSTime_tow then id else- obsGPSTime_wn %~ (+ 1)+updateGpsTime :: Word32 -> GpsTime -> GpsTime+updateGpsTime tow gpsTime =+ gpsTime & gpsTime_tow .~ tow &+ if tow >= gpsTime ^. gpsTime_tow then id else+ gpsTime_wn %~ (+ 1) -- | Produce GPS Time from Observation header, handling WN rollover. ---toGPSTime :: MonadStore e m => GpsObservationHeader -> m ObsGPSTime-toGPSTime hdr = do+toGpsTime :: MonadStore e m => GpsObservationHeader -> m GpsTime+toGpsTime hdr = do let tow = hdr ^. gpsObservationHeader_tow station = hdr ^. gpsObservationHeader_station- gpsTime <- newGPSTime tow- gpsTimeMap <- view storeGPSTimeMap- liftIO $ modifyMap gpsTimeMap gpsTime station $ updateGPSTime tow+ gpsTime <- newGpsTime tow+ gpsTimeMap <- view storeGpsTimeMap+ liftIO $ modifyMap gpsTimeMap gpsTime station $ updateGpsTime tow -- | MJD GPS Epoch - First day in GPS week 0. See DF051 of the RTCM3 spec --@@ -329,7 +329,7 @@ -> GpsObservationHeader -- ^ RTCM observation header -> m ObservationHeader fromGpsObservationHeader totalMsgs n hdr = do- t <- toGPSTime hdr+ t <- toGpsTime hdr return ObservationHeader { _observationHeader_t = t -- First nibble is the size of the sequence (n), second nibble is the
src/Data/RTCM3/SBP/Types.hs view
@@ -37,7 +37,7 @@ $(makeLenses ''Lock) -type GPSTimeMap = HashMap Word16 ObsGPSTime+type GpsTimeMap = HashMap Word16 GpsTime type LockMap = HashMap (Word16, GnssSignal) Lock instance Hashable GnssSignal where@@ -75,7 +75,7 @@ data Store = Store { _storeWn :: IORef Word16 , _storeLockMap :: IORef LockMap- , _storeGPSTimeMap :: IORef GPSTimeMap+ , _storeGpsTimeMap :: IORef GpsTimeMap } deriving ( Eq ) $(makeClassy ''Store)
test/Test/Data/RTCM3/SBP.hs view
@@ -156,39 +156,39 @@ assertExpectedBase (msgs !! 5) expectedBasePos -- Message 1 assertObsHeader (msgs !! 1) ObservationHeader {- _observationHeader_t = ObsGPSTime 86354000 1906+ _observationHeader_t = GpsTime 86354000 1906 , _observationHeader_n_obs = 32 } assertMsgObsLength (msgs !! 1) 15 assertMsgObs (msgs !! 1) -- Message 2 assertObsHeader (msgs !! 2) ObservationHeader {- _observationHeader_t = ObsGPSTime 86354000 1906+ _observationHeader_t = GpsTime 86354000 1906 , _observationHeader_n_obs = 33 } assertMsgObs (msgs !! 2) assertMsgObsLength (msgs !! 2) 1 -- Message 3 assertObsHeader (msgs !! 3) ObservationHeader {- _observationHeader_t = ObsGPSTime 86355000 1906+ _observationHeader_t = GpsTime 86355000 1906 , _observationHeader_n_obs = 32 } assertMsgObsLength (msgs !! 3) 15 -- Message 4 assertObsHeader (msgs !! 4) ObservationHeader {- _observationHeader_t = ObsGPSTime 86355000 1906+ _observationHeader_t = GpsTime 86355000 1906 , _observationHeader_n_obs = 33 } assertMsgObsLength (msgs !! 4) 1 -- Message 6 assertObsHeader (msgs !! 6) ObservationHeader {- _observationHeader_t = ObsGPSTime 86356000 1906+ _observationHeader_t = GpsTime 86356000 1906 , _observationHeader_n_obs = 32 } assertMsgObsLength (msgs !! 6) 15 -- Message 7 assertObsHeader (msgs !! 7) ObservationHeader {- _observationHeader_t = ObsGPSTime 86356000 1906+ _observationHeader_t = GpsTime 86356000 1906 , _observationHeader_n_obs = 33 } assertMsgObsLength (msgs !! 7) 1@@ -211,21 +211,21 @@ toWn 57593 @?= 1907 ] -testUpdateGPSTime :: TestTree-testUpdateGPSTime =+testUpdateGpsTime :: TestTree+testUpdateGpsTime = testGroup "Update GPS Time" [ testCase "old TOW < new TOW" $ do- let old = ObsGPSTime 1 10- new = updateGPSTime 2 old- new ^. obsGPSTime_wn @?= 10+ let old = GpsTime 1 10+ new = updateGpsTime 2 old+ new ^. gpsTime_wn @?= 10 , testCase "old TOW = new TOW" $ do- let old = ObsGPSTime 1 10- new = updateGPSTime 1 old- new ^. obsGPSTime_wn @?= 10+ let old = GpsTime 1 10+ new = updateGpsTime 1 old+ new ^. gpsTime_wn @?= 10 , testCase "old TOW > new TOW" $ do- let old = ObsGPSTime 1 10- new = updateGPSTime 0 old- new ^. obsGPSTime_wn @?= 11+ let old = GpsTime 1 10+ new = updateGpsTime 0 old+ new ^. gpsTime_wn @?= 11 ] testUpdateLock :: TestTree@@ -250,6 +250,6 @@ testGroup "RTCM3 to SBP conversion tests" [ testMsg1004 , testToWn- , testUpdateGPSTime+ , testUpdateGpsTime , testUpdateLock ]