diff --git a/gnss-converters.cabal b/gnss-converters.cabal
--- a/gnss-converters.cabal
+++ b/gnss-converters.cabal
@@ -1,5 +1,5 @@
 name:                  gnss-converters
-version:               0.3.30
+version:               0.3.31
 synopsis:              GNSS Converters.
 description:           Haskell bindings for GNSS converters.
 homepage:              http://github.com/swift-nav/gnss-converters
@@ -21,6 +21,7 @@
                      , Data.RTCM3.SBP
                      , Data.RTCM3.SBP.Biases
                      , Data.RTCM3.SBP.Ephemerides
+                     , Data.RTCM3.SBP.Logging
                      , Data.RTCM3.SBP.Observations
                      , Data.RTCM3.SBP.Positions
                      , Data.RTCM3.SBP.SSR
diff --git a/src/Data/RTCM3/Replay.hs b/src/Data/RTCM3/Replay.hs
--- a/src/Data/RTCM3/Replay.hs
+++ b/src/Data/RTCM3/Replay.hs
@@ -46,14 +46,14 @@
 replay :: MonadIO m => Word32 -> RTCM3Msg -> ConduitM i RTCM3Msg m Word32
 replay tow = \case
   (RTCM3Msg1002 m _rtcm3) -> do
-    let tow' = m ^. msg1002_header ^. gpsObservationHeader_tow
+    let tow' = m ^. msg1002_header . gpsObservationHeader_tow
     delayTow tow tow'
     tow'' <- currentTow
     let n = set (msg1002_header . gpsObservationHeader_tow) tow'' m
     yield (RTCM3Msg1002 n (toRTCM3 n))
     pure tow'
   (RTCM3Msg1004 m _rtcm3) -> do
-    let tow' = m ^. msg1004_header ^. gpsObservationHeader_tow
+    let tow' = m ^. msg1004_header . gpsObservationHeader_tow
     delayTow tow tow'
     tow'' <- currentTow
     let n = set (msg1004_header . gpsObservationHeader_tow) tow'' m
diff --git a/src/Data/RTCM3/SBP.hs b/src/Data/RTCM3/SBP.hs
--- a/src/Data/RTCM3/SBP.hs
+++ b/src/Data/RTCM3/SBP.hs
@@ -25,6 +25,7 @@
 import           Data.RTCM3
 import qualified Data.RTCM3.SBP.Biases       as Biases
 import qualified Data.RTCM3.SBP.Ephemerides  as Ephemerides
+import qualified Data.RTCM3.SBP.Logging      as Logging
 import qualified Data.RTCM3.SBP.Observations as Observations
 import qualified Data.RTCM3.SBP.Positions    as Positions
 import qualified Data.RTCM3.SBP.SSR          as SSR
@@ -44,6 +45,7 @@
   (RTCM3Msg1006 m _rtcm3) -> Positions.converter m
   (RTCM3Msg1019 m _rtcm3) -> Ephemerides.gpsConverter m
   (RTCM3Msg1020 m _rtcm3) -> Ephemerides.glonassConverter m
+  (RTCM3Msg1029 m _rtcm3) -> Logging.converter m
   (RTCM3Msg1230 m _rtcm3) -> Biases.converter m
   (RTCM3Msg1060 m _rtcm3) -> SSR.gpsOrbitClockConverter m
   (RTCM3Msg1066 m _rtcm3) -> SSR.glonassOrbitClockConverter m
diff --git a/src/Data/RTCM3/SBP/Ephemerides.hs b/src/Data/RTCM3/SBP/Ephemerides.hs
--- a/src/Data/RTCM3/SBP/Ephemerides.hs
+++ b/src/Data/RTCM3/SBP/Ephemerides.hs
@@ -127,34 +127,34 @@
 --
 toGpsEphemerisCommonContent :: MonadStore e m => Msg1019 -> m EphemerisCommonContent
 toGpsEphemerisCommonContent m = do
-  toe <- toGpsTimeSec (m ^. msg1019_ephemeris ^. gpsEphemeris_wn) (m ^. msg1019_ephemeris ^. gpsEphemeris_toe)
+  toe <- toGpsTimeSec (m ^. msg1019_ephemeris . gpsEphemeris_wn) (m ^. msg1019_ephemeris . gpsEphemeris_toe)
   pure EphemerisCommonContent
     { _ephemerisCommonContent_sid = GnssSignal
-      { _gnssSignal_sat  = m ^. msg1019_header ^. gpsEphemerisHeader_sat
+      { _gnssSignal_sat  = m ^. msg1019_header . gpsEphemerisHeader_sat
       , _gnssSignal_code = 0 -- there is an L2P status flag in msg 1019, but I don't think that applies
       }
     , _ephemerisCommonContent_toe          = toe
-    , _ephemerisCommonContent_ura          = uriToUra (m ^. msg1019_ephemeris ^. gpsEphemeris_svHealth)
-    , _ephemerisCommonContent_fit_interval = gpsFitInterval (m ^. msg1019_ephemeris ^. gpsEphemeris_fitInterval) (m ^. msg1019_ephemeris ^. gpsEphemeris_iodc)
-    , _ephemerisCommonContent_valid        = validateIodcIode (m ^. msg1019_ephemeris ^. gpsEphemeris_iodc) (m ^. msg1019_ephemeris ^. gpsEphemeris_iode)
-    , _ephemerisCommonContent_health_bits  = m ^. msg1019_ephemeris ^. gpsEphemeris_svHealth
+    , _ephemerisCommonContent_ura          = uriToUra (m ^. msg1019_ephemeris . gpsEphemeris_svHealth)
+    , _ephemerisCommonContent_fit_interval = gpsFitInterval (m ^. msg1019_ephemeris . gpsEphemeris_fitInterval) (m ^. msg1019_ephemeris . gpsEphemeris_iodc)
+    , _ephemerisCommonContent_valid        = validateIodcIode (m ^. msg1019_ephemeris . gpsEphemeris_iodc) (m ^. msg1019_ephemeris . gpsEphemeris_iode)
+    , _ephemerisCommonContent_health_bits  = m ^. msg1019_ephemeris . gpsEphemeris_svHealth
     }
 
 -- | Construct an EphemerisCommonContent from an RTCM 1020 message.
 --
 toGlonassEphemerisCommonContent :: MonadStore e m => Msg1020 -> m EphemerisCommonContent
 toGlonassEphemerisCommonContent m = do
-  toe <- toGlonassTimeSec (m ^. msg1020_ephemeris ^. glonassEphemeris_tb)
+  toe <- toGlonassTimeSec (m ^. msg1020_ephemeris . glonassEphemeris_tb)
   pure EphemerisCommonContent
     { _ephemerisCommonContent_sid = GnssSignal
-      { _gnssSignal_sat  = m ^. msg1020_header ^. glonassEphemerisHeader_sat
+      { _gnssSignal_sat  = m ^. msg1020_header . glonassEphemerisHeader_sat
       , _gnssSignal_code = 3
       }
     , _ephemerisCommonContent_toe          = toe
-    , _ephemerisCommonContent_ura          = ftToUra (m ^. msg1020_ephemeris ^. glonassEphemeris_mft)
-    , _ephemerisCommonContent_fit_interval = glonassFitInterval (m ^. msg1020_ephemeris ^. glonassEphemeris_p1)
+    , _ephemerisCommonContent_ura          = ftToUra (m ^. msg1020_ephemeris . glonassEphemeris_mft)
+    , _ephemerisCommonContent_fit_interval = glonassFitInterval (m ^. msg1020_ephemeris . glonassEphemeris_p1)
     , _ephemerisCommonContent_valid        = 1
-    , _ephemerisCommonContent_health_bits  = bool 0 1 $ (m ^. msg1020_ephemeris ^. glonassEphemeris_mln5) || (m ^. msg1020_ephemeris ^. glonassEphemeris_mi3)
+    , _ephemerisCommonContent_health_bits  = bool 0 1 $ (m ^. msg1020_ephemeris . glonassEphemeris_mln5) || (m ^. msg1020_ephemeris . glonassEphemeris_mi3)
     }
 
 (##) :: (Floating a1, Integral a2) => a1 -> a2 -> a1
@@ -169,31 +169,31 @@
 gpsConverter :: MonadStore e m => Msg1019 -> Conduit i m [SBPMsg]
 gpsConverter m = do
   common <- toGpsEphemerisCommonContent m
-  toc    <- toGpsTimeSec (m ^. msg1019_ephemeris ^. gpsEphemeris_wn) (m ^. msg1019_ephemeris ^. gpsEphemeris_toc)
+  toc    <- toGpsTimeSec (m ^. msg1019_ephemeris . gpsEphemeris_wn) (m ^. msg1019_ephemeris . gpsEphemeris_toc)
   let pi' = 3.1415926535898
       m'  = MsgEphemerisGps
               { _msgEphemerisGps_common   = common
-              , _msgEphemerisGps_tgd      =       (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_tgd)
-              , _msgEphemerisGps_c_rs     =        (-5) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_rs)
-              , _msgEphemerisGps_c_rc     =        (-5) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_rc)
-              , _msgEphemerisGps_c_uc     =       (-29) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_uc)
-              , _msgEphemerisGps_c_us     =       (-29) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_us)
-              , _msgEphemerisGps_c_ic     =       (-29) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_ic)
-              , _msgEphemerisGps_c_is     =       (-29) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_c_is)
-              , _msgEphemerisGps_dn       = pi' * (-43) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_dn)
-              , _msgEphemerisGps_m0       = pi' * (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_m0)
-              , _msgEphemerisGps_ecc      =       (-33) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_ecc)
-              , _msgEphemerisGps_sqrta    =       (-19) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_sqrta)
-              , _msgEphemerisGps_omega0   = pi' * (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_omega0)
-              , _msgEphemerisGps_omegadot = pi' * (-43) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_omegadot)
-              , _msgEphemerisGps_w        = pi' * (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_w)
-              , _msgEphemerisGps_inc      = pi' * (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_i0)
-              , _msgEphemerisGps_inc_dot  = pi' * (-43) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_idot)
-              , _msgEphemerisGps_af0      =       (-31) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_af0)
-              , _msgEphemerisGps_af1      =       (-43) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_af1)
-              , _msgEphemerisGps_af2      =       (-55) ## (m ^. msg1019_ephemeris ^. gpsEphemeris_af2)
-              , _msgEphemerisGps_iodc     =                 m ^. msg1019_ephemeris ^. gpsEphemeris_iodc
-              , _msgEphemerisGps_iode     =                 m ^. msg1019_ephemeris ^. gpsEphemeris_iode
+              , _msgEphemerisGps_tgd      =       (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_tgd)
+              , _msgEphemerisGps_c_rs     =        (-5) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_rs)
+              , _msgEphemerisGps_c_rc     =        (-5) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_rc)
+              , _msgEphemerisGps_c_uc     =       (-29) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_uc)
+              , _msgEphemerisGps_c_us     =       (-29) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_us)
+              , _msgEphemerisGps_c_ic     =       (-29) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_ic)
+              , _msgEphemerisGps_c_is     =       (-29) ## (m ^. msg1019_ephemeris . gpsEphemeris_c_is)
+              , _msgEphemerisGps_dn       = pi' * (-43) ## (m ^. msg1019_ephemeris . gpsEphemeris_dn)
+              , _msgEphemerisGps_m0       = pi' * (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_m0)
+              , _msgEphemerisGps_ecc      =       (-33) ## (m ^. msg1019_ephemeris . gpsEphemeris_ecc)
+              , _msgEphemerisGps_sqrta    =       (-19) ## (m ^. msg1019_ephemeris . gpsEphemeris_sqrta)
+              , _msgEphemerisGps_omega0   = pi' * (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_omega0)
+              , _msgEphemerisGps_omegadot = pi' * (-43) ## (m ^. msg1019_ephemeris . gpsEphemeris_omegadot)
+              , _msgEphemerisGps_w        = pi' * (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_w)
+              , _msgEphemerisGps_inc      = pi' * (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_i0)
+              , _msgEphemerisGps_inc_dot  = pi' * (-43) ## (m ^. msg1019_ephemeris . gpsEphemeris_idot)
+              , _msgEphemerisGps_af0      =       (-31) ## (m ^. msg1019_ephemeris . gpsEphemeris_af0)
+              , _msgEphemerisGps_af1      =       (-43) ## (m ^. msg1019_ephemeris . gpsEphemeris_af1)
+              , _msgEphemerisGps_af2      =       (-55) ## (m ^. msg1019_ephemeris . gpsEphemeris_af2)
+              , _msgEphemerisGps_iodc     =                 m ^. msg1019_ephemeris . gpsEphemeris_iodc
+              , _msgEphemerisGps_iode     =                 m ^. msg1019_ephemeris . gpsEphemeris_iode
               , _msgEphemerisGps_toc      = toc
               }
   yield [SBPMsgEphemerisGps m' $ toSBP m' 61440]
@@ -205,25 +205,25 @@
   common <- toGlonassEphemerisCommonContent m
   let m' = MsgEphemerisGlo
              { _msgEphemerisGlo_common = common
-             , _msgEphemerisGlo_gamma  = (-40) ## (m ^. msg1020_ephemeris ^. glonassEphemeris_gammaN)
-             , _msgEphemerisGlo_tau    = (-30) ## (m ^. msg1020_ephemeris ^. glonassEphemeris_tauN)
-             , _msgEphemerisGlo_d_tau  = (-30) ## (m ^. msg1020_ephemeris ^. glonassEphemeris_mdeltatau)
+             , _msgEphemerisGlo_gamma  = (-40) ## (m ^. msg1020_ephemeris . glonassEphemeris_gammaN)
+             , _msgEphemerisGlo_tau    = (-30) ## (m ^. msg1020_ephemeris . glonassEphemeris_tauN)
+             , _msgEphemerisGlo_d_tau  = (-30) ## (m ^. msg1020_ephemeris . glonassEphemeris_mdeltatau)
              , _msgEphemerisGlo_pos    = (* 1000) . ((-11) ##) <$>
-                 [ m ^. msg1020_ephemeris ^. glonassEphemeris_xn
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_yn
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_zn
+                 [ m ^. msg1020_ephemeris . glonassEphemeris_xn
+                 , m ^. msg1020_ephemeris . glonassEphemeris_yn
+                 , m ^. msg1020_ephemeris . glonassEphemeris_zn
                  ]
              , _msgEphemerisGlo_vel    = (* 1000) . ((-20) ##) <$>
-                 [ m ^. msg1020_ephemeris ^. glonassEphemeris_xndot
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_yndot
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_zndot
+                 [ m ^. msg1020_ephemeris . glonassEphemeris_xndot
+                 , m ^. msg1020_ephemeris . glonassEphemeris_yndot
+                 , m ^. msg1020_ephemeris . glonassEphemeris_zndot
                  ]
              , _msgEphemerisGlo_acc    = (* 1000) . ((-30) ##) <$>
-                 [ m ^. msg1020_ephemeris ^. glonassEphemeris_xndotdot
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_yndotdot
-                 , m ^. msg1020_ephemeris ^. glonassEphemeris_zndotdot
+                 [ m ^. msg1020_ephemeris . glonassEphemeris_xndotdot
+                 , m ^. msg1020_ephemeris . glonassEphemeris_yndotdot
+                 , m ^. msg1020_ephemeris . glonassEphemeris_zndotdot
                  ]
-             , _msgEphemerisGlo_fcn    = (m ^. msg1020_header ^. glonassEphemerisHeader_channel) + 1
-             , _msgEphemerisGlo_iod    = ((m ^. msg1020_ephemeris ^. glonassEphemeris_tb) * 15 * 60) .&. 127
+             , _msgEphemerisGlo_fcn    = (m ^. msg1020_header . glonassEphemerisHeader_channel) + 1
+             , _msgEphemerisGlo_iod    = ((m ^. msg1020_ephemeris . glonassEphemeris_tb) * 15 * 60) .&. 127
              }
   yield [SBPMsgEphemerisGlo m' $ toSBP m' 61440]
diff --git a/src/Data/RTCM3/SBP/Logging.hs b/src/Data/RTCM3/SBP/Logging.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/RTCM3/SBP/Logging.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+
+-- |
+-- Module:      Data.RTCM3.SBP.Logging
+-- Copyright:   Copyright (C) 2018 Swift Navigation, Inc.
+-- License:     LGPL-3
+-- Maintainer:  Swift Navigation <dev@swiftnav.com>
+-- Stability:   experimental
+-- Portability: portable
+--
+-- RTCMv3 to SBP Loggings Conversions.
+
+module Data.RTCM3.SBP.Logging
+  ( converter
+  ) where
+
+import BasicPrelude
+import Control.Lens
+import Data.Bits
+import Data.Conduit
+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
+
+-- | Convert an RTCM 1029 text message into an SBP MsgLog message.
+--
+converter :: Monad m => Msg1029 -> Conduit i m [SBPMsg]
+converter m = do
+  let message = m ^. msg1029_message
+      sender  = toSender $ message ^. textMessage_station
+      m'      = MsgLog
+        { _msgLog_level = 6
+        , _msgLog_text  = message ^. textMessage_text
+        }
+  yield [SBPMsgLog m' $ toSBP m' sender]
diff --git a/src/Data/RTCM3/SBP/SSR.hs b/src/Data/RTCM3/SBP/SSR.hs
--- a/src/Data/RTCM3/SBP/SSR.hs
+++ b/src/Data/RTCM3/SBP/SSR.hs
@@ -52,7 +52,7 @@
 
 gpsOrbitClockConverter :: MonadStore e m => Msg1060 -> Conduit i m [SBPMsg]
 gpsOrbitClockConverter m = do
-  time <- toGpsTimeSec $ m ^. msg1060_header ^. gpsOrbitClockCorrectionHeader_epochs
+  time <- toGpsTimeSec $ m ^. msg1060_header . gpsOrbitClockCorrectionHeader_epochs
   yield $ flip map (m ^. msg1060_corrections) $ \c -> do
     let m' = MsgSsrOrbitClock
              { _msgSsrOrbitClock_time            = time
@@ -60,8 +60,8 @@
                { _gnssSignal_sat  = c ^. gpsOrbitClockCorrection_sat
                , _gnssSignal_code = 0
                }
-             , _msgSsrOrbitClock_update_interval = m ^. msg1060_header ^. gpsOrbitClockCorrectionHeader_updateInterval
-             , _msgSsrOrbitClock_iod_ssr         = m ^. msg1060_header ^. gpsOrbitClockCorrectionHeader_iod
+             , _msgSsrOrbitClock_update_interval = m ^. msg1060_header . gpsOrbitClockCorrectionHeader_updateInterval
+             , _msgSsrOrbitClock_iod_ssr         = m ^. msg1060_header . gpsOrbitClockCorrectionHeader_iod
              , _msgSsrOrbitClock_iod             = c ^. gpsOrbitClockCorrection_iode
              , _msgSsrOrbitClock_radial          = c ^. gpsOrbitClockCorrection_deltaRadial
              , _msgSsrOrbitClock_along           = c ^. gpsOrbitClockCorrection_deltaAlongTrack
@@ -77,7 +77,7 @@
 
 glonassOrbitClockConverter :: MonadStore e m => Msg1066 -> Conduit i m [SBPMsg]
 glonassOrbitClockConverter m = do
-  time <- toGlonassTimeSec $ m ^. msg1066_header ^. glonassOrbitClockCorrectionHeader_epochs
+  time <- toGlonassTimeSec $ m ^. msg1066_header . glonassOrbitClockCorrectionHeader_epochs
   yield $ flip map (m ^. msg1066_corrections) $ \c -> do
     let m' = MsgSsrOrbitClock
              { _msgSsrOrbitClock_time            = time
@@ -85,8 +85,8 @@
                { _gnssSignal_sat  = c ^. glonassOrbitClockCorrection_sat
                , _gnssSignal_code = 3
                  }
-             , _msgSsrOrbitClock_update_interval = m ^. msg1066_header ^. glonassOrbitClockCorrectionHeader_updateInterval
-             , _msgSsrOrbitClock_iod_ssr         = m ^. msg1066_header ^. glonassOrbitClockCorrectionHeader_iod
+             , _msgSsrOrbitClock_update_interval = m ^. msg1066_header . glonassOrbitClockCorrectionHeader_updateInterval
+             , _msgSsrOrbitClock_iod_ssr         = m ^. msg1066_header . glonassOrbitClockCorrectionHeader_iod
              , _msgSsrOrbitClock_iod             = c ^. glonassOrbitClockCorrection_iode
              , _msgSsrOrbitClock_radial          = c ^. glonassOrbitClockCorrection_deltaRadial
              , _msgSsrOrbitClock_along           = c ^. glonassOrbitClockCorrection_deltaAlongTrack
@@ -102,7 +102,7 @@
 
 gpsCodeBiasConverter :: MonadStore e m => Msg1059 -> Conduit i m [SBPMsg]
 gpsCodeBiasConverter m = do
-  time <- toGpsTimeSec $ m ^. msg1059_header ^. gpsCodeBiasCorrectionHeader_epochs
+  time <- toGpsTimeSec $ m ^. msg1059_header . gpsCodeBiasCorrectionHeader_epochs
   yield $ flip map (m ^. msg1059_corrections) $ \c -> do
     let m' = MsgSsrCodeBiases
              { _msgSsrCodeBiases_time            = time
@@ -110,8 +110,8 @@
                { _gnssSignal_sat  = c ^. gpsCodeBiasCorrection_sat
                , _gnssSignal_code = 0
                }
-             , _msgSsrCodeBiases_update_interval = m ^. msg1059_header ^. gpsCodeBiasCorrectionHeader_updateInterval
-             , _msgSsrCodeBiases_iod_ssr         = m ^. msg1059_header ^. gpsCodeBiasCorrectionHeader_iod
+             , _msgSsrCodeBiases_update_interval = m ^. msg1059_header . gpsCodeBiasCorrectionHeader_updateInterval
+             , _msgSsrCodeBiases_iod_ssr         = m ^. msg1059_header . gpsCodeBiasCorrectionHeader_iod
              , _msgSsrCodeBiases_biases          = flip map (c ^. gpsCodeBiasCorrection_codeBiases) $ \b -> CodeBiasesContent
                { _codeBiasesContent_code  = b ^. gpsCodeBias_signal
                , _codeBiasesContent_value = b ^. gpsCodeBias_codeBias
@@ -121,7 +121,7 @@
 
 glonassCodeBiasConverter :: MonadStore e m => Msg1065 -> Conduit i m [SBPMsg]
 glonassCodeBiasConverter m = do
-  time <- toGlonassTimeSec $ m ^. msg1065_header ^. glonassCodeBiasCorrectionHeader_epochs
+  time <- toGlonassTimeSec $ m ^. msg1065_header . glonassCodeBiasCorrectionHeader_epochs
   yield $ flip map (m ^. msg1065_corrections) $ \c -> do
     let m' = MsgSsrCodeBiases
              { _msgSsrCodeBiases_time            = time
@@ -129,8 +129,8 @@
                { _gnssSignal_sat  = c ^. glonassCodeBiasCorrection_sat
                , _gnssSignal_code = 3
                }
-             , _msgSsrCodeBiases_update_interval = m ^. msg1065_header ^. glonassCodeBiasCorrectionHeader_updateInterval
-             , _msgSsrCodeBiases_iod_ssr         = m ^. msg1065_header ^. glonassCodeBiasCorrectionHeader_iod
+             , _msgSsrCodeBiases_update_interval = m ^. msg1065_header . glonassCodeBiasCorrectionHeader_updateInterval
+             , _msgSsrCodeBiases_iod_ssr         = m ^. msg1065_header . glonassCodeBiasCorrectionHeader_iod
              , _msgSsrCodeBiases_biases          = flip map (c ^. glonassCodeBiasCorrection_codeBiases) $ \b -> CodeBiasesContent
                { _codeBiasesContent_code  = b ^. glonassCodeBias_signal
                , _codeBiasesContent_value = b ^. glonassCodeBias_codeBias
@@ -140,7 +140,7 @@
 
 gpsPhaseBiasConverter :: MonadStore e m => Msg1265 -> Conduit i m [SBPMsg]
 gpsPhaseBiasConverter m = do
-  time <- toGpsTimeSec $ m ^. msg1265_header ^. gpsPhaseBiasCorrectionHeader_epochs
+  time <- toGpsTimeSec $ m ^. msg1265_header . gpsPhaseBiasCorrectionHeader_epochs
   yield $ flip map (m ^. msg1265_corrections) $ \c -> do
     let m' = MsgSsrPhaseBiases
              { _msgSsrPhaseBiases_time            = time
@@ -148,10 +148,10 @@
                { _gnssSignal_sat  = c ^. gpsPhaseBiasCorrection_sat
                , _gnssSignal_code = 0
                }
-             , _msgSsrPhaseBiases_update_interval = m ^. msg1265_header ^. gpsPhaseBiasCorrectionHeader_updateInterval
-             , _msgSsrPhaseBiases_iod_ssr         = m ^. msg1265_header ^. gpsPhaseBiasCorrectionHeader_iod
-             , _msgSsrPhaseBiases_dispersive_bias = bool 0 1 $ m ^. msg1265_header ^. gpsPhaseBiasCorrectionHeader_dispersive
-             , _msgSsrPhaseBiases_mw_consistency  = bool 0 1 $ m ^. msg1265_header ^. gpsPhaseBiasCorrectionHeader_mw
+             , _msgSsrPhaseBiases_update_interval = m ^. msg1265_header . gpsPhaseBiasCorrectionHeader_updateInterval
+             , _msgSsrPhaseBiases_iod_ssr         = m ^. msg1265_header . gpsPhaseBiasCorrectionHeader_iod
+             , _msgSsrPhaseBiases_dispersive_bias = bool 0 1 $ m ^. msg1265_header . gpsPhaseBiasCorrectionHeader_dispersive
+             , _msgSsrPhaseBiases_mw_consistency  = bool 0 1 $ m ^. msg1265_header . gpsPhaseBiasCorrectionHeader_mw
              , _msgSsrPhaseBiases_yaw             = c ^. gpsPhaseBiasCorrection_yawAngle
              , _msgSsrPhaseBiases_yaw_rate        = c ^. gpsPhaseBiasCorrection_yawRate
              , _msgSsrPhaseBiases_biases          = flip map (c ^. gpsPhaseBiasCorrection_phaseBiases) $ \b -> PhaseBiasesContent
@@ -166,7 +166,7 @@
 
 glonassPhaseBiasConverter :: MonadStore e m => Msg1266 -> Conduit i m [SBPMsg]
 glonassPhaseBiasConverter m = do
-  time <- toGlonassTimeSec $ m ^. msg1266_header ^. glonassPhaseBiasCorrectionHeader_epochs
+  time <- toGlonassTimeSec $ m ^. msg1266_header . glonassPhaseBiasCorrectionHeader_epochs
   yield $ flip map (m ^. msg1266_corrections) $ \c -> do
     let m' = MsgSsrPhaseBiases
              { _msgSsrPhaseBiases_time            = time
@@ -174,10 +174,10 @@
                { _gnssSignal_sat  = c ^. glonassPhaseBiasCorrection_sat
                , _gnssSignal_code = 3
                }
-             , _msgSsrPhaseBiases_update_interval = m ^. msg1266_header ^. glonassPhaseBiasCorrectionHeader_updateInterval
-             , _msgSsrPhaseBiases_iod_ssr         = m ^. msg1266_header ^. glonassPhaseBiasCorrectionHeader_iod
-             , _msgSsrPhaseBiases_dispersive_bias = bool 0 1 $ m ^. msg1266_header ^. glonassPhaseBiasCorrectionHeader_dispersive
-             , _msgSsrPhaseBiases_mw_consistency  = bool 0 1 $ m ^. msg1266_header ^. glonassPhaseBiasCorrectionHeader_mw
+             , _msgSsrPhaseBiases_update_interval = m ^. msg1266_header . glonassPhaseBiasCorrectionHeader_updateInterval
+             , _msgSsrPhaseBiases_iod_ssr         = m ^. msg1266_header . glonassPhaseBiasCorrectionHeader_iod
+             , _msgSsrPhaseBiases_dispersive_bias = bool 0 1 $ m ^. msg1266_header . glonassPhaseBiasCorrectionHeader_dispersive
+             , _msgSsrPhaseBiases_mw_consistency  = bool 0 1 $ m ^. msg1266_header . glonassPhaseBiasCorrectionHeader_mw
              , _msgSsrPhaseBiases_yaw             = c ^. glonassPhaseBiasCorrection_yawAngle
              , _msgSsrPhaseBiases_yaw_rate        = c ^. glonassPhaseBiasCorrection_yawRate
              , _msgSsrPhaseBiases_biases          = flip map (c ^. glonassPhaseBiasCorrection_phaseBiases) $ \b -> PhaseBiasesContent
