{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Navigation
( module SwiftNav.SBP.Navigation
) where
import BasicPrelude
import Control.Lens
import Control.Monad.Loops
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
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
pure MsgGpsTime {..}
put MsgGpsTime {..} = do
putWord16le _msgGpsTime_wn
putWord32le _msgGpsTime_tow
putWord32le $ fromIntegral _msgGpsTime_ns_residual
putWord8 _msgGpsTime_flags
$(makeSBP 'msgGpsTime ''MsgGpsTime)
$(makeJSON "_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
pure 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
$(makeSBP 'msgUtcTime ''MsgUtcTime)
$(makeJSON "_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
pure 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
$(makeSBP 'msgDops ''MsgDops)
$(makeJSON "_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
pure 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
$(makeSBP 'msgPosEcef ''MsgPosEcef)
$(makeJSON "_msgPosEcef_" ''MsgPosEcef)
$(makeLenses ''MsgPosEcef)
msgPosEcefCov :: Word16
msgPosEcefCov = 0x0214
data MsgPosEcefCov = MsgPosEcefCov
{ _msgPosEcefCov_tow :: !Word32
, _msgPosEcefCov_x :: !Double
, _msgPosEcefCov_y :: !Double
, _msgPosEcefCov_z :: !Double
, _msgPosEcefCov_cov_x_x :: !Float
, _msgPosEcefCov_cov_x_y :: !Float
, _msgPosEcefCov_cov_x_z :: !Float
, _msgPosEcefCov_cov_y_y :: !Float
, _msgPosEcefCov_cov_y_z :: !Float
, _msgPosEcefCov_cov_z_z :: !Float
, _msgPosEcefCov_n_sats :: !Word8
, _msgPosEcefCov_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosEcefCov where
get = do
_msgPosEcefCov_tow <- getWord32le
_msgPosEcefCov_x <- getFloat64le
_msgPosEcefCov_y <- getFloat64le
_msgPosEcefCov_z <- getFloat64le
_msgPosEcefCov_cov_x_x <- getFloat32le
_msgPosEcefCov_cov_x_y <- getFloat32le
_msgPosEcefCov_cov_x_z <- getFloat32le
_msgPosEcefCov_cov_y_y <- getFloat32le
_msgPosEcefCov_cov_y_z <- getFloat32le
_msgPosEcefCov_cov_z_z <- getFloat32le
_msgPosEcefCov_n_sats <- getWord8
_msgPosEcefCov_flags <- getWord8
pure MsgPosEcefCov {..}
put MsgPosEcefCov {..} = do
putWord32le _msgPosEcefCov_tow
putFloat64le _msgPosEcefCov_x
putFloat64le _msgPosEcefCov_y
putFloat64le _msgPosEcefCov_z
putFloat32le _msgPosEcefCov_cov_x_x
putFloat32le _msgPosEcefCov_cov_x_y
putFloat32le _msgPosEcefCov_cov_x_z
putFloat32le _msgPosEcefCov_cov_y_y
putFloat32le _msgPosEcefCov_cov_y_z
putFloat32le _msgPosEcefCov_cov_z_z
putWord8 _msgPosEcefCov_n_sats
putWord8 _msgPosEcefCov_flags
$(makeSBP 'msgPosEcefCov ''MsgPosEcefCov)
$(makeJSON "_msgPosEcefCov_" ''MsgPosEcefCov)
$(makeLenses ''MsgPosEcefCov)
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
pure 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
$(makeSBP 'msgPosLlh ''MsgPosLlh)
$(makeJSON "_msgPosLlh_" ''MsgPosLlh)
$(makeLenses ''MsgPosLlh)
msgPosLlhCov :: Word16
msgPosLlhCov = 0x0211
data MsgPosLlhCov = MsgPosLlhCov
{ _msgPosLlhCov_tow :: !Word32
, _msgPosLlhCov_lat :: !Double
, _msgPosLlhCov_lon :: !Double
, _msgPosLlhCov_height :: !Double
, _msgPosLlhCov_cov_n_n :: !Float
, _msgPosLlhCov_cov_n_e :: !Float
, _msgPosLlhCov_cov_n_d :: !Float
, _msgPosLlhCov_cov_e_e :: !Float
, _msgPosLlhCov_cov_e_d :: !Float
, _msgPosLlhCov_cov_d_d :: !Float
, _msgPosLlhCov_n_sats :: !Word8
, _msgPosLlhCov_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgPosLlhCov where
get = do
_msgPosLlhCov_tow <- getWord32le
_msgPosLlhCov_lat <- getFloat64le
_msgPosLlhCov_lon <- getFloat64le
_msgPosLlhCov_height <- getFloat64le
_msgPosLlhCov_cov_n_n <- getFloat32le
_msgPosLlhCov_cov_n_e <- getFloat32le
_msgPosLlhCov_cov_n_d <- getFloat32le
_msgPosLlhCov_cov_e_e <- getFloat32le
_msgPosLlhCov_cov_e_d <- getFloat32le
_msgPosLlhCov_cov_d_d <- getFloat32le
_msgPosLlhCov_n_sats <- getWord8
_msgPosLlhCov_flags <- getWord8
pure MsgPosLlhCov {..}
put MsgPosLlhCov {..} = do
putWord32le _msgPosLlhCov_tow
putFloat64le _msgPosLlhCov_lat
putFloat64le _msgPosLlhCov_lon
putFloat64le _msgPosLlhCov_height
putFloat32le _msgPosLlhCov_cov_n_n
putFloat32le _msgPosLlhCov_cov_n_e
putFloat32le _msgPosLlhCov_cov_n_d
putFloat32le _msgPosLlhCov_cov_e_e
putFloat32le _msgPosLlhCov_cov_e_d
putFloat32le _msgPosLlhCov_cov_d_d
putWord8 _msgPosLlhCov_n_sats
putWord8 _msgPosLlhCov_flags
$(makeSBP 'msgPosLlhCov ''MsgPosLlhCov)
$(makeJSON "_msgPosLlhCov_" ''MsgPosLlhCov)
$(makeLenses ''MsgPosLlhCov)
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
pure 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
$(makeSBP 'msgBaselineEcef ''MsgBaselineEcef)
$(makeJSON "_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
pure 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
$(makeSBP 'msgBaselineNed ''MsgBaselineNed)
$(makeJSON "_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
pure 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
$(makeSBP 'msgVelEcef ''MsgVelEcef)
$(makeJSON "_msgVelEcef_" ''MsgVelEcef)
$(makeLenses ''MsgVelEcef)
msgVelEcefCov :: Word16
msgVelEcefCov = 0x0215
data MsgVelEcefCov = MsgVelEcefCov
{ _msgVelEcefCov_tow :: !Word32
, _msgVelEcefCov_x :: !Int32
, _msgVelEcefCov_y :: !Int32
, _msgVelEcefCov_z :: !Int32
, _msgVelEcefCov_cov_x_x :: !Float
, _msgVelEcefCov_cov_x_y :: !Float
, _msgVelEcefCov_cov_x_z :: !Float
, _msgVelEcefCov_cov_y_y :: !Float
, _msgVelEcefCov_cov_y_z :: !Float
, _msgVelEcefCov_cov_z_z :: !Float
, _msgVelEcefCov_n_sats :: !Word8
, _msgVelEcefCov_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelEcefCov where
get = do
_msgVelEcefCov_tow <- getWord32le
_msgVelEcefCov_x <- fromIntegral <$> getWord32le
_msgVelEcefCov_y <- fromIntegral <$> getWord32le
_msgVelEcefCov_z <- fromIntegral <$> getWord32le
_msgVelEcefCov_cov_x_x <- getFloat32le
_msgVelEcefCov_cov_x_y <- getFloat32le
_msgVelEcefCov_cov_x_z <- getFloat32le
_msgVelEcefCov_cov_y_y <- getFloat32le
_msgVelEcefCov_cov_y_z <- getFloat32le
_msgVelEcefCov_cov_z_z <- getFloat32le
_msgVelEcefCov_n_sats <- getWord8
_msgVelEcefCov_flags <- getWord8
pure MsgVelEcefCov {..}
put MsgVelEcefCov {..} = do
putWord32le _msgVelEcefCov_tow
putWord32le $ fromIntegral _msgVelEcefCov_x
putWord32le $ fromIntegral _msgVelEcefCov_y
putWord32le $ fromIntegral _msgVelEcefCov_z
putFloat32le _msgVelEcefCov_cov_x_x
putFloat32le _msgVelEcefCov_cov_x_y
putFloat32le _msgVelEcefCov_cov_x_z
putFloat32le _msgVelEcefCov_cov_y_y
putFloat32le _msgVelEcefCov_cov_y_z
putFloat32le _msgVelEcefCov_cov_z_z
putWord8 _msgVelEcefCov_n_sats
putWord8 _msgVelEcefCov_flags
$(makeSBP 'msgVelEcefCov ''MsgVelEcefCov)
$(makeJSON "_msgVelEcefCov_" ''MsgVelEcefCov)
$(makeLenses ''MsgVelEcefCov)
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
pure 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
$(makeSBP 'msgVelNed ''MsgVelNed)
$(makeJSON "_msgVelNed_" ''MsgVelNed)
$(makeLenses ''MsgVelNed)
msgVelNedCov :: Word16
msgVelNedCov = 0x0212
data MsgVelNedCov = MsgVelNedCov
{ _msgVelNedCov_tow :: !Word32
, _msgVelNedCov_n :: !Int32
, _msgVelNedCov_e :: !Int32
, _msgVelNedCov_d :: !Int32
, _msgVelNedCov_cov_n_n :: !Float
, _msgVelNedCov_cov_n_e :: !Float
, _msgVelNedCov_cov_n_d :: !Float
, _msgVelNedCov_cov_e_e :: !Float
, _msgVelNedCov_cov_e_d :: !Float
, _msgVelNedCov_cov_d_d :: !Float
, _msgVelNedCov_n_sats :: !Word8
, _msgVelNedCov_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelNedCov where
get = do
_msgVelNedCov_tow <- getWord32le
_msgVelNedCov_n <- fromIntegral <$> getWord32le
_msgVelNedCov_e <- fromIntegral <$> getWord32le
_msgVelNedCov_d <- fromIntegral <$> getWord32le
_msgVelNedCov_cov_n_n <- getFloat32le
_msgVelNedCov_cov_n_e <- getFloat32le
_msgVelNedCov_cov_n_d <- getFloat32le
_msgVelNedCov_cov_e_e <- getFloat32le
_msgVelNedCov_cov_e_d <- getFloat32le
_msgVelNedCov_cov_d_d <- getFloat32le
_msgVelNedCov_n_sats <- getWord8
_msgVelNedCov_flags <- getWord8
pure MsgVelNedCov {..}
put MsgVelNedCov {..} = do
putWord32le _msgVelNedCov_tow
putWord32le $ fromIntegral _msgVelNedCov_n
putWord32le $ fromIntegral _msgVelNedCov_e
putWord32le $ fromIntegral _msgVelNedCov_d
putFloat32le _msgVelNedCov_cov_n_n
putFloat32le _msgVelNedCov_cov_n_e
putFloat32le _msgVelNedCov_cov_n_d
putFloat32le _msgVelNedCov_cov_e_e
putFloat32le _msgVelNedCov_cov_e_d
putFloat32le _msgVelNedCov_cov_d_d
putWord8 _msgVelNedCov_n_sats
putWord8 _msgVelNedCov_flags
$(makeSBP 'msgVelNedCov ''MsgVelNedCov)
$(makeJSON "_msgVelNedCov_" ''MsgVelNedCov)
$(makeLenses ''MsgVelNedCov)
msgVelBody :: Word16
msgVelBody = 0x0213
data MsgVelBody = MsgVelBody
{ _msgVelBody_tow :: !Word32
, _msgVelBody_x :: !Int32
, _msgVelBody_y :: !Int32
, _msgVelBody_z :: !Int32
, _msgVelBody_cov_x_x :: !Float
, _msgVelBody_cov_x_y :: !Float
, _msgVelBody_cov_x_z :: !Float
, _msgVelBody_cov_y_y :: !Float
, _msgVelBody_cov_y_z :: !Float
, _msgVelBody_cov_z_z :: !Float
, _msgVelBody_n_sats :: !Word8
, _msgVelBody_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgVelBody where
get = do
_msgVelBody_tow <- getWord32le
_msgVelBody_x <- fromIntegral <$> getWord32le
_msgVelBody_y <- fromIntegral <$> getWord32le
_msgVelBody_z <- fromIntegral <$> getWord32le
_msgVelBody_cov_x_x <- getFloat32le
_msgVelBody_cov_x_y <- getFloat32le
_msgVelBody_cov_x_z <- getFloat32le
_msgVelBody_cov_y_y <- getFloat32le
_msgVelBody_cov_y_z <- getFloat32le
_msgVelBody_cov_z_z <- getFloat32le
_msgVelBody_n_sats <- getWord8
_msgVelBody_flags <- getWord8
pure MsgVelBody {..}
put MsgVelBody {..} = do
putWord32le _msgVelBody_tow
putWord32le $ fromIntegral _msgVelBody_x
putWord32le $ fromIntegral _msgVelBody_y
putWord32le $ fromIntegral _msgVelBody_z
putFloat32le _msgVelBody_cov_x_x
putFloat32le _msgVelBody_cov_x_y
putFloat32le _msgVelBody_cov_x_z
putFloat32le _msgVelBody_cov_y_y
putFloat32le _msgVelBody_cov_y_z
putFloat32le _msgVelBody_cov_z_z
putWord8 _msgVelBody_n_sats
putWord8 _msgVelBody_flags
$(makeSBP 'msgVelBody ''MsgVelBody)
$(makeJSON "_msgVelBody_" ''MsgVelBody)
$(makeLenses ''MsgVelBody)
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
pure MsgAgeCorrections {..}
put MsgAgeCorrections {..} = do
putWord32le _msgAgeCorrections_tow
putWord16le _msgAgeCorrections_age
$(makeSBP 'msgAgeCorrections ''MsgAgeCorrections)
$(makeJSON "_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
pure MsgGpsTimeDepA {..}
put MsgGpsTimeDepA {..} = do
putWord16le _msgGpsTimeDepA_wn
putWord32le _msgGpsTimeDepA_tow
putWord32le $ fromIntegral _msgGpsTimeDepA_ns_residual
putWord8 _msgGpsTimeDepA_flags
$(makeSBP 'msgGpsTimeDepA ''MsgGpsTimeDepA)
$(makeJSON "_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
pure MsgDopsDepA {..}
put MsgDopsDepA {..} = do
putWord32le _msgDopsDepA_tow
putWord16le _msgDopsDepA_gdop
putWord16le _msgDopsDepA_pdop
putWord16le _msgDopsDepA_tdop
putWord16le _msgDopsDepA_hdop
putWord16le _msgDopsDepA_vdop
$(makeSBP 'msgDopsDepA ''MsgDopsDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgPosEcefDepA ''MsgPosEcefDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgPosLlhDepA ''MsgPosLlhDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgBaselineEcefDepA ''MsgBaselineEcefDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgBaselineNedDepA ''MsgBaselineNedDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgVelEcefDepA ''MsgVelEcefDepA)
$(makeJSON "_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
pure 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
$(makeSBP 'msgVelNedDepA ''MsgVelNedDepA)
$(makeJSON "_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
pure MsgBaselineHeadingDepA {..}
put MsgBaselineHeadingDepA {..} = do
putWord32le _msgBaselineHeadingDepA_tow
putWord32le _msgBaselineHeadingDepA_heading
putWord8 _msgBaselineHeadingDepA_n_sats
putWord8 _msgBaselineHeadingDepA_flags
$(makeSBP 'msgBaselineHeadingDepA ''MsgBaselineHeadingDepA)
$(makeJSON "_msgBaselineHeadingDepA_" ''MsgBaselineHeadingDepA)
$(makeLenses ''MsgBaselineHeadingDepA)