module SwiftNav.SBP.Navigation where
import BasicPrelude as P
import Control.Lens
import Control.Monad.Loops
import Data.Aeson.TH (defaultOptions, deriveJSON, fieldLabelModifier)
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.Encoding
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
msgGpsTime :: Word16
msgGpsTime = 0x0102
data MsgGpsTime = MsgGpsTime
{ _msgGpsTime_wn :: Word16
, _msgGpsTime_tow :: Word32
, _msgGpsTime_ns_residual :: Int32
, _msgGpsTime_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgGpsTime where
get = do
_msgGpsTime_wn <- getWord16le
_msgGpsTime_tow <- getWord32le
_msgGpsTime_ns_residual <- fromIntegral <$> getWord32le
_msgGpsTime_flags <- getWord8
return MsgGpsTime {..}
put MsgGpsTime {..} = do
putWord16le _msgGpsTime_wn
putWord32le _msgGpsTime_tow
putWord32le $ fromIntegral _msgGpsTime_ns_residual
putWord8 _msgGpsTime_flags
$(deriveSBP 'msgGpsTime ''MsgGpsTime)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgGpsTime_" . P.stripPrefix "_msgGpsTime_"}
''MsgGpsTime)
$(makeLenses ''MsgGpsTime)
msgUtcTime :: Word16
msgUtcTime = 0x0103
data MsgUtcTime = MsgUtcTime
{ _msgUtcTime_flags :: Word8
, _msgUtcTime_tow :: Word32
, _msgUtcTime_year :: Word16
, _msgUtcTime_month :: Word8
, _msgUtcTime_day :: Word8
, _msgUtcTime_hours :: Word8
, _msgUtcTime_minutes :: Word8
, _msgUtcTime_seconds :: Word8
, _msgUtcTime_ns :: Word32
} deriving ( Show, Read, Eq )
instance Binary MsgUtcTime where
get = do
_msgUtcTime_flags <- getWord8
_msgUtcTime_tow <- getWord32le
_msgUtcTime_year <- getWord16le
_msgUtcTime_month <- getWord8
_msgUtcTime_day <- getWord8
_msgUtcTime_hours <- getWord8
_msgUtcTime_minutes <- getWord8
_msgUtcTime_seconds <- getWord8
_msgUtcTime_ns <- getWord32le
return MsgUtcTime {..}
put MsgUtcTime {..} = do
putWord8 _msgUtcTime_flags
putWord32le _msgUtcTime_tow
putWord16le _msgUtcTime_year
putWord8 _msgUtcTime_month
putWord8 _msgUtcTime_day
putWord8 _msgUtcTime_hours
putWord8 _msgUtcTime_minutes
putWord8 _msgUtcTime_seconds
putWord32le _msgUtcTime_ns
$(deriveSBP 'msgUtcTime ''MsgUtcTime)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgUtcTime_" . P.stripPrefix "_msgUtcTime_"}
''MsgUtcTime)
$(makeLenses ''MsgUtcTime)
msgDops :: Word16
msgDops = 0x0208
data MsgDops = MsgDops
{ _msgDops_tow :: Word32
, _msgDops_gdop :: Word16
, _msgDops_pdop :: Word16
, _msgDops_tdop :: Word16
, _msgDops_hdop :: Word16
, _msgDops_vdop :: Word16
, _msgDops_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgDops where
get = do
_msgDops_tow <- getWord32le
_msgDops_gdop <- getWord16le
_msgDops_pdop <- getWord16le
_msgDops_tdop <- getWord16le
_msgDops_hdop <- getWord16le
_msgDops_vdop <- getWord16le
_msgDops_flags <- getWord8
return MsgDops {..}
put MsgDops {..} = do
putWord32le _msgDops_tow
putWord16le _msgDops_gdop
putWord16le _msgDops_pdop
putWord16le _msgDops_tdop
putWord16le _msgDops_hdop
putWord16le _msgDops_vdop
putWord8 _msgDops_flags
$(deriveSBP 'msgDops ''MsgDops)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgDops_" . P.stripPrefix "_msgDops_"}
''MsgDops)
$(makeLenses ''MsgDops)
msgPosEcef :: Word16
msgPosEcef = 0x0209
data MsgPosEcef = MsgPosEcef
{ _msgPosEcef_tow :: Word32
, _msgPosEcef_x :: Double
, _msgPosEcef_y :: Double
, _msgPosEcef_z :: Double
, _msgPosEcef_accuracy :: Word16
, _msgPosEcef_n_sats :: Word8
, _msgPosEcef_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosEcef where
get = do
_msgPosEcef_tow <- getWord32le
_msgPosEcef_x <- getFloat64le
_msgPosEcef_y <- getFloat64le
_msgPosEcef_z <- getFloat64le
_msgPosEcef_accuracy <- getWord16le
_msgPosEcef_n_sats <- getWord8
_msgPosEcef_flags <- getWord8
return MsgPosEcef {..}
put MsgPosEcef {..} = do
putWord32le _msgPosEcef_tow
putFloat64le _msgPosEcef_x
putFloat64le _msgPosEcef_y
putFloat64le _msgPosEcef_z
putWord16le _msgPosEcef_accuracy
putWord8 _msgPosEcef_n_sats
putWord8 _msgPosEcef_flags
$(deriveSBP 'msgPosEcef ''MsgPosEcef)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgPosEcef_" . P.stripPrefix "_msgPosEcef_"}
''MsgPosEcef)
$(makeLenses ''MsgPosEcef)
msgPosLlh :: Word16
msgPosLlh = 0x020A
data MsgPosLlh = MsgPosLlh
{ _msgPosLlh_tow :: Word32
, _msgPosLlh_lat :: Double
, _msgPosLlh_lon :: Double
, _msgPosLlh_height :: Double
, _msgPosLlh_h_accuracy :: Word16
, _msgPosLlh_v_accuracy :: Word16
, _msgPosLlh_n_sats :: Word8
, _msgPosLlh_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosLlh where
get = do
_msgPosLlh_tow <- getWord32le
_msgPosLlh_lat <- getFloat64le
_msgPosLlh_lon <- getFloat64le
_msgPosLlh_height <- getFloat64le
_msgPosLlh_h_accuracy <- getWord16le
_msgPosLlh_v_accuracy <- getWord16le
_msgPosLlh_n_sats <- getWord8
_msgPosLlh_flags <- getWord8
return MsgPosLlh {..}
put MsgPosLlh {..} = do
putWord32le _msgPosLlh_tow
putFloat64le _msgPosLlh_lat
putFloat64le _msgPosLlh_lon
putFloat64le _msgPosLlh_height
putWord16le _msgPosLlh_h_accuracy
putWord16le _msgPosLlh_v_accuracy
putWord8 _msgPosLlh_n_sats
putWord8 _msgPosLlh_flags
$(deriveSBP 'msgPosLlh ''MsgPosLlh)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgPosLlh_" . P.stripPrefix "_msgPosLlh_"}
''MsgPosLlh)
$(makeLenses ''MsgPosLlh)
msgBaselineEcef :: Word16
msgBaselineEcef = 0x020B
data MsgBaselineEcef = MsgBaselineEcef
{ _msgBaselineEcef_tow :: Word32
, _msgBaselineEcef_x :: Int32
, _msgBaselineEcef_y :: Int32
, _msgBaselineEcef_z :: Int32
, _msgBaselineEcef_accuracy :: Word16
, _msgBaselineEcef_n_sats :: Word8
, _msgBaselineEcef_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineEcef where
get = do
_msgBaselineEcef_tow <- getWord32le
_msgBaselineEcef_x <- fromIntegral <$> getWord32le
_msgBaselineEcef_y <- fromIntegral <$> getWord32le
_msgBaselineEcef_z <- fromIntegral <$> getWord32le
_msgBaselineEcef_accuracy <- getWord16le
_msgBaselineEcef_n_sats <- getWord8
_msgBaselineEcef_flags <- getWord8
return MsgBaselineEcef {..}
put MsgBaselineEcef {..} = do
putWord32le _msgBaselineEcef_tow
putWord32le $ fromIntegral _msgBaselineEcef_x
putWord32le $ fromIntegral _msgBaselineEcef_y
putWord32le $ fromIntegral _msgBaselineEcef_z
putWord16le _msgBaselineEcef_accuracy
putWord8 _msgBaselineEcef_n_sats
putWord8 _msgBaselineEcef_flags
$(deriveSBP 'msgBaselineEcef ''MsgBaselineEcef)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineEcef_" . P.stripPrefix "_msgBaselineEcef_"}
''MsgBaselineEcef)
$(makeLenses ''MsgBaselineEcef)
msgBaselineNed :: Word16
msgBaselineNed = 0x020C
data MsgBaselineNed = MsgBaselineNed
{ _msgBaselineNed_tow :: Word32
, _msgBaselineNed_n :: Int32
, _msgBaselineNed_e :: Int32
, _msgBaselineNed_d :: Int32
, _msgBaselineNed_h_accuracy :: Word16
, _msgBaselineNed_v_accuracy :: Word16
, _msgBaselineNed_n_sats :: Word8
, _msgBaselineNed_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineNed where
get = do
_msgBaselineNed_tow <- getWord32le
_msgBaselineNed_n <- fromIntegral <$> getWord32le
_msgBaselineNed_e <- fromIntegral <$> getWord32le
_msgBaselineNed_d <- fromIntegral <$> getWord32le
_msgBaselineNed_h_accuracy <- getWord16le
_msgBaselineNed_v_accuracy <- getWord16le
_msgBaselineNed_n_sats <- getWord8
_msgBaselineNed_flags <- getWord8
return MsgBaselineNed {..}
put MsgBaselineNed {..} = do
putWord32le _msgBaselineNed_tow
putWord32le $ fromIntegral _msgBaselineNed_n
putWord32le $ fromIntegral _msgBaselineNed_e
putWord32le $ fromIntegral _msgBaselineNed_d
putWord16le _msgBaselineNed_h_accuracy
putWord16le _msgBaselineNed_v_accuracy
putWord8 _msgBaselineNed_n_sats
putWord8 _msgBaselineNed_flags
$(deriveSBP 'msgBaselineNed ''MsgBaselineNed)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineNed_" . P.stripPrefix "_msgBaselineNed_"}
''MsgBaselineNed)
$(makeLenses ''MsgBaselineNed)
msgVelEcef :: Word16
msgVelEcef = 0x020D
data MsgVelEcef = MsgVelEcef
{ _msgVelEcef_tow :: Word32
, _msgVelEcef_x :: Int32
, _msgVelEcef_y :: Int32
, _msgVelEcef_z :: Int32
, _msgVelEcef_accuracy :: Word16
, _msgVelEcef_n_sats :: Word8
, _msgVelEcef_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelEcef where
get = do
_msgVelEcef_tow <- getWord32le
_msgVelEcef_x <- fromIntegral <$> getWord32le
_msgVelEcef_y <- fromIntegral <$> getWord32le
_msgVelEcef_z <- fromIntegral <$> getWord32le
_msgVelEcef_accuracy <- getWord16le
_msgVelEcef_n_sats <- getWord8
_msgVelEcef_flags <- getWord8
return MsgVelEcef {..}
put MsgVelEcef {..} = do
putWord32le _msgVelEcef_tow
putWord32le $ fromIntegral _msgVelEcef_x
putWord32le $ fromIntegral _msgVelEcef_y
putWord32le $ fromIntegral _msgVelEcef_z
putWord16le _msgVelEcef_accuracy
putWord8 _msgVelEcef_n_sats
putWord8 _msgVelEcef_flags
$(deriveSBP 'msgVelEcef ''MsgVelEcef)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgVelEcef_" . P.stripPrefix "_msgVelEcef_"}
''MsgVelEcef)
$(makeLenses ''MsgVelEcef)
msgVelNed :: Word16
msgVelNed = 0x020E
data MsgVelNed = MsgVelNed
{ _msgVelNed_tow :: Word32
, _msgVelNed_n :: Int32
, _msgVelNed_e :: Int32
, _msgVelNed_d :: Int32
, _msgVelNed_h_accuracy :: Word16
, _msgVelNed_v_accuracy :: Word16
, _msgVelNed_n_sats :: Word8
, _msgVelNed_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelNed where
get = do
_msgVelNed_tow <- getWord32le
_msgVelNed_n <- fromIntegral <$> getWord32le
_msgVelNed_e <- fromIntegral <$> getWord32le
_msgVelNed_d <- fromIntegral <$> getWord32le
_msgVelNed_h_accuracy <- getWord16le
_msgVelNed_v_accuracy <- getWord16le
_msgVelNed_n_sats <- getWord8
_msgVelNed_flags <- getWord8
return MsgVelNed {..}
put MsgVelNed {..} = do
putWord32le _msgVelNed_tow
putWord32le $ fromIntegral _msgVelNed_n
putWord32le $ fromIntegral _msgVelNed_e
putWord32le $ fromIntegral _msgVelNed_d
putWord16le _msgVelNed_h_accuracy
putWord16le _msgVelNed_v_accuracy
putWord8 _msgVelNed_n_sats
putWord8 _msgVelNed_flags
$(deriveSBP 'msgVelNed ''MsgVelNed)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgVelNed_" . P.stripPrefix "_msgVelNed_"}
''MsgVelNed)
$(makeLenses ''MsgVelNed)
msgBaselineHeading :: Word16
msgBaselineHeading = 0x020F
data MsgBaselineHeading = MsgBaselineHeading
{ _msgBaselineHeading_tow :: Word32
, _msgBaselineHeading_heading :: Word32
, _msgBaselineHeading_n_sats :: Word8
, _msgBaselineHeading_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineHeading where
get = do
_msgBaselineHeading_tow <- getWord32le
_msgBaselineHeading_heading <- getWord32le
_msgBaselineHeading_n_sats <- getWord8
_msgBaselineHeading_flags <- getWord8
return MsgBaselineHeading {..}
put MsgBaselineHeading {..} = do
putWord32le _msgBaselineHeading_tow
putWord32le _msgBaselineHeading_heading
putWord8 _msgBaselineHeading_n_sats
putWord8 _msgBaselineHeading_flags
$(deriveSBP 'msgBaselineHeading ''MsgBaselineHeading)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineHeading_" . P.stripPrefix "_msgBaselineHeading_"}
''MsgBaselineHeading)
$(makeLenses ''MsgBaselineHeading)
msgAgeCorrections :: Word16
msgAgeCorrections = 0x0210
data MsgAgeCorrections = MsgAgeCorrections
{ _msgAgeCorrections_tow :: Word32
, _msgAgeCorrections_age :: Word16
} deriving ( Show, Read, Eq )
instance Binary MsgAgeCorrections where
get = do
_msgAgeCorrections_tow <- getWord32le
_msgAgeCorrections_age <- getWord16le
return MsgAgeCorrections {..}
put MsgAgeCorrections {..} = do
putWord32le _msgAgeCorrections_tow
putWord16le _msgAgeCorrections_age
$(deriveSBP 'msgAgeCorrections ''MsgAgeCorrections)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgAgeCorrections_" . P.stripPrefix "_msgAgeCorrections_"}
''MsgAgeCorrections)
$(makeLenses ''MsgAgeCorrections)
msgGpsTimeDepA :: Word16
msgGpsTimeDepA = 0x0100
data MsgGpsTimeDepA = MsgGpsTimeDepA
{ _msgGpsTimeDepA_wn :: Word16
, _msgGpsTimeDepA_tow :: Word32
, _msgGpsTimeDepA_ns_residual :: Int32
, _msgGpsTimeDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgGpsTimeDepA where
get = do
_msgGpsTimeDepA_wn <- getWord16le
_msgGpsTimeDepA_tow <- getWord32le
_msgGpsTimeDepA_ns_residual <- fromIntegral <$> getWord32le
_msgGpsTimeDepA_flags <- getWord8
return MsgGpsTimeDepA {..}
put MsgGpsTimeDepA {..} = do
putWord16le _msgGpsTimeDepA_wn
putWord32le _msgGpsTimeDepA_tow
putWord32le $ fromIntegral _msgGpsTimeDepA_ns_residual
putWord8 _msgGpsTimeDepA_flags
$(deriveSBP 'msgGpsTimeDepA ''MsgGpsTimeDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgGpsTimeDepA_" . P.stripPrefix "_msgGpsTimeDepA_"}
''MsgGpsTimeDepA)
$(makeLenses ''MsgGpsTimeDepA)
msgDopsDepA :: Word16
msgDopsDepA = 0x0206
data MsgDopsDepA = MsgDopsDepA
{ _msgDopsDepA_tow :: Word32
, _msgDopsDepA_gdop :: Word16
, _msgDopsDepA_pdop :: Word16
, _msgDopsDepA_tdop :: Word16
, _msgDopsDepA_hdop :: Word16
, _msgDopsDepA_vdop :: Word16
} deriving ( Show, Read, Eq )
instance Binary MsgDopsDepA where
get = do
_msgDopsDepA_tow <- getWord32le
_msgDopsDepA_gdop <- getWord16le
_msgDopsDepA_pdop <- getWord16le
_msgDopsDepA_tdop <- getWord16le
_msgDopsDepA_hdop <- getWord16le
_msgDopsDepA_vdop <- getWord16le
return MsgDopsDepA {..}
put MsgDopsDepA {..} = do
putWord32le _msgDopsDepA_tow
putWord16le _msgDopsDepA_gdop
putWord16le _msgDopsDepA_pdop
putWord16le _msgDopsDepA_tdop
putWord16le _msgDopsDepA_hdop
putWord16le _msgDopsDepA_vdop
$(deriveSBP 'msgDopsDepA ''MsgDopsDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgDopsDepA_" . P.stripPrefix "_msgDopsDepA_"}
''MsgDopsDepA)
$(makeLenses ''MsgDopsDepA)
msgPosEcefDepA :: Word16
msgPosEcefDepA = 0x0200
data MsgPosEcefDepA = MsgPosEcefDepA
{ _msgPosEcefDepA_tow :: Word32
, _msgPosEcefDepA_x :: Double
, _msgPosEcefDepA_y :: Double
, _msgPosEcefDepA_z :: Double
, _msgPosEcefDepA_accuracy :: Word16
, _msgPosEcefDepA_n_sats :: Word8
, _msgPosEcefDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosEcefDepA where
get = do
_msgPosEcefDepA_tow <- getWord32le
_msgPosEcefDepA_x <- getFloat64le
_msgPosEcefDepA_y <- getFloat64le
_msgPosEcefDepA_z <- getFloat64le
_msgPosEcefDepA_accuracy <- getWord16le
_msgPosEcefDepA_n_sats <- getWord8
_msgPosEcefDepA_flags <- getWord8
return MsgPosEcefDepA {..}
put MsgPosEcefDepA {..} = do
putWord32le _msgPosEcefDepA_tow
putFloat64le _msgPosEcefDepA_x
putFloat64le _msgPosEcefDepA_y
putFloat64le _msgPosEcefDepA_z
putWord16le _msgPosEcefDepA_accuracy
putWord8 _msgPosEcefDepA_n_sats
putWord8 _msgPosEcefDepA_flags
$(deriveSBP 'msgPosEcefDepA ''MsgPosEcefDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgPosEcefDepA_" . P.stripPrefix "_msgPosEcefDepA_"}
''MsgPosEcefDepA)
$(makeLenses ''MsgPosEcefDepA)
msgPosLlhDepA :: Word16
msgPosLlhDepA = 0x0201
data MsgPosLlhDepA = MsgPosLlhDepA
{ _msgPosLlhDepA_tow :: Word32
, _msgPosLlhDepA_lat :: Double
, _msgPosLlhDepA_lon :: Double
, _msgPosLlhDepA_height :: Double
, _msgPosLlhDepA_h_accuracy :: Word16
, _msgPosLlhDepA_v_accuracy :: Word16
, _msgPosLlhDepA_n_sats :: Word8
, _msgPosLlhDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosLlhDepA where
get = do
_msgPosLlhDepA_tow <- getWord32le
_msgPosLlhDepA_lat <- getFloat64le
_msgPosLlhDepA_lon <- getFloat64le
_msgPosLlhDepA_height <- getFloat64le
_msgPosLlhDepA_h_accuracy <- getWord16le
_msgPosLlhDepA_v_accuracy <- getWord16le
_msgPosLlhDepA_n_sats <- getWord8
_msgPosLlhDepA_flags <- getWord8
return MsgPosLlhDepA {..}
put MsgPosLlhDepA {..} = do
putWord32le _msgPosLlhDepA_tow
putFloat64le _msgPosLlhDepA_lat
putFloat64le _msgPosLlhDepA_lon
putFloat64le _msgPosLlhDepA_height
putWord16le _msgPosLlhDepA_h_accuracy
putWord16le _msgPosLlhDepA_v_accuracy
putWord8 _msgPosLlhDepA_n_sats
putWord8 _msgPosLlhDepA_flags
$(deriveSBP 'msgPosLlhDepA ''MsgPosLlhDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgPosLlhDepA_" . P.stripPrefix "_msgPosLlhDepA_"}
''MsgPosLlhDepA)
$(makeLenses ''MsgPosLlhDepA)
msgBaselineEcefDepA :: Word16
msgBaselineEcefDepA = 0x0202
data MsgBaselineEcefDepA = MsgBaselineEcefDepA
{ _msgBaselineEcefDepA_tow :: Word32
, _msgBaselineEcefDepA_x :: Int32
, _msgBaselineEcefDepA_y :: Int32
, _msgBaselineEcefDepA_z :: Int32
, _msgBaselineEcefDepA_accuracy :: Word16
, _msgBaselineEcefDepA_n_sats :: Word8
, _msgBaselineEcefDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineEcefDepA where
get = do
_msgBaselineEcefDepA_tow <- getWord32le
_msgBaselineEcefDepA_x <- fromIntegral <$> getWord32le
_msgBaselineEcefDepA_y <- fromIntegral <$> getWord32le
_msgBaselineEcefDepA_z <- fromIntegral <$> getWord32le
_msgBaselineEcefDepA_accuracy <- getWord16le
_msgBaselineEcefDepA_n_sats <- getWord8
_msgBaselineEcefDepA_flags <- getWord8
return MsgBaselineEcefDepA {..}
put MsgBaselineEcefDepA {..} = do
putWord32le _msgBaselineEcefDepA_tow
putWord32le $ fromIntegral _msgBaselineEcefDepA_x
putWord32le $ fromIntegral _msgBaselineEcefDepA_y
putWord32le $ fromIntegral _msgBaselineEcefDepA_z
putWord16le _msgBaselineEcefDepA_accuracy
putWord8 _msgBaselineEcefDepA_n_sats
putWord8 _msgBaselineEcefDepA_flags
$(deriveSBP 'msgBaselineEcefDepA ''MsgBaselineEcefDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineEcefDepA_" . P.stripPrefix "_msgBaselineEcefDepA_"}
''MsgBaselineEcefDepA)
$(makeLenses ''MsgBaselineEcefDepA)
msgBaselineNedDepA :: Word16
msgBaselineNedDepA = 0x0203
data MsgBaselineNedDepA = MsgBaselineNedDepA
{ _msgBaselineNedDepA_tow :: Word32
, _msgBaselineNedDepA_n :: Int32
, _msgBaselineNedDepA_e :: Int32
, _msgBaselineNedDepA_d :: Int32
, _msgBaselineNedDepA_h_accuracy :: Word16
, _msgBaselineNedDepA_v_accuracy :: Word16
, _msgBaselineNedDepA_n_sats :: Word8
, _msgBaselineNedDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineNedDepA where
get = do
_msgBaselineNedDepA_tow <- getWord32le
_msgBaselineNedDepA_n <- fromIntegral <$> getWord32le
_msgBaselineNedDepA_e <- fromIntegral <$> getWord32le
_msgBaselineNedDepA_d <- fromIntegral <$> getWord32le
_msgBaselineNedDepA_h_accuracy <- getWord16le
_msgBaselineNedDepA_v_accuracy <- getWord16le
_msgBaselineNedDepA_n_sats <- getWord8
_msgBaselineNedDepA_flags <- getWord8
return MsgBaselineNedDepA {..}
put MsgBaselineNedDepA {..} = do
putWord32le _msgBaselineNedDepA_tow
putWord32le $ fromIntegral _msgBaselineNedDepA_n
putWord32le $ fromIntegral _msgBaselineNedDepA_e
putWord32le $ fromIntegral _msgBaselineNedDepA_d
putWord16le _msgBaselineNedDepA_h_accuracy
putWord16le _msgBaselineNedDepA_v_accuracy
putWord8 _msgBaselineNedDepA_n_sats
putWord8 _msgBaselineNedDepA_flags
$(deriveSBP 'msgBaselineNedDepA ''MsgBaselineNedDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineNedDepA_" . P.stripPrefix "_msgBaselineNedDepA_"}
''MsgBaselineNedDepA)
$(makeLenses ''MsgBaselineNedDepA)
msgVelEcefDepA :: Word16
msgVelEcefDepA = 0x0204
data MsgVelEcefDepA = MsgVelEcefDepA
{ _msgVelEcefDepA_tow :: Word32
, _msgVelEcefDepA_x :: Int32
, _msgVelEcefDepA_y :: Int32
, _msgVelEcefDepA_z :: Int32
, _msgVelEcefDepA_accuracy :: Word16
, _msgVelEcefDepA_n_sats :: Word8
, _msgVelEcefDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelEcefDepA where
get = do
_msgVelEcefDepA_tow <- getWord32le
_msgVelEcefDepA_x <- fromIntegral <$> getWord32le
_msgVelEcefDepA_y <- fromIntegral <$> getWord32le
_msgVelEcefDepA_z <- fromIntegral <$> getWord32le
_msgVelEcefDepA_accuracy <- getWord16le
_msgVelEcefDepA_n_sats <- getWord8
_msgVelEcefDepA_flags <- getWord8
return MsgVelEcefDepA {..}
put MsgVelEcefDepA {..} = do
putWord32le _msgVelEcefDepA_tow
putWord32le $ fromIntegral _msgVelEcefDepA_x
putWord32le $ fromIntegral _msgVelEcefDepA_y
putWord32le $ fromIntegral _msgVelEcefDepA_z
putWord16le _msgVelEcefDepA_accuracy
putWord8 _msgVelEcefDepA_n_sats
putWord8 _msgVelEcefDepA_flags
$(deriveSBP 'msgVelEcefDepA ''MsgVelEcefDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgVelEcefDepA_" . P.stripPrefix "_msgVelEcefDepA_"}
''MsgVelEcefDepA)
$(makeLenses ''MsgVelEcefDepA)
msgVelNedDepA :: Word16
msgVelNedDepA = 0x0205
data MsgVelNedDepA = MsgVelNedDepA
{ _msgVelNedDepA_tow :: Word32
, _msgVelNedDepA_n :: Int32
, _msgVelNedDepA_e :: Int32
, _msgVelNedDepA_d :: Int32
, _msgVelNedDepA_h_accuracy :: Word16
, _msgVelNedDepA_v_accuracy :: Word16
, _msgVelNedDepA_n_sats :: Word8
, _msgVelNedDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelNedDepA where
get = do
_msgVelNedDepA_tow <- getWord32le
_msgVelNedDepA_n <- fromIntegral <$> getWord32le
_msgVelNedDepA_e <- fromIntegral <$> getWord32le
_msgVelNedDepA_d <- fromIntegral <$> getWord32le
_msgVelNedDepA_h_accuracy <- getWord16le
_msgVelNedDepA_v_accuracy <- getWord16le
_msgVelNedDepA_n_sats <- getWord8
_msgVelNedDepA_flags <- getWord8
return MsgVelNedDepA {..}
put MsgVelNedDepA {..} = do
putWord32le _msgVelNedDepA_tow
putWord32le $ fromIntegral _msgVelNedDepA_n
putWord32le $ fromIntegral _msgVelNedDepA_e
putWord32le $ fromIntegral _msgVelNedDepA_d
putWord16le _msgVelNedDepA_h_accuracy
putWord16le _msgVelNedDepA_v_accuracy
putWord8 _msgVelNedDepA_n_sats
putWord8 _msgVelNedDepA_flags
$(deriveSBP 'msgVelNedDepA ''MsgVelNedDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgVelNedDepA_" . P.stripPrefix "_msgVelNedDepA_"}
''MsgVelNedDepA)
$(makeLenses ''MsgVelNedDepA)
msgBaselineHeadingDepA :: Word16
msgBaselineHeadingDepA = 0x0207
data MsgBaselineHeadingDepA = MsgBaselineHeadingDepA
{ _msgBaselineHeadingDepA_tow :: Word32
, _msgBaselineHeadingDepA_heading :: Word32
, _msgBaselineHeadingDepA_n_sats :: Word8
, _msgBaselineHeadingDepA_flags :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgBaselineHeadingDepA where
get = do
_msgBaselineHeadingDepA_tow <- getWord32le
_msgBaselineHeadingDepA_heading <- getWord32le
_msgBaselineHeadingDepA_n_sats <- getWord8
_msgBaselineHeadingDepA_flags <- getWord8
return MsgBaselineHeadingDepA {..}
put MsgBaselineHeadingDepA {..} = do
putWord32le _msgBaselineHeadingDepA_tow
putWord32le _msgBaselineHeadingDepA_heading
putWord8 _msgBaselineHeadingDepA_n_sats
putWord8 _msgBaselineHeadingDepA_flags
$(deriveSBP 'msgBaselineHeadingDepA ''MsgBaselineHeadingDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgBaselineHeadingDepA_" . P.stripPrefix "_msgBaselineHeadingDepA_"}
''MsgBaselineHeadingDepA)
$(makeLenses ''MsgBaselineHeadingDepA)