module SwiftNav.SBP.GnssSignal where
import BasicPrelude
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
data GnssSignal = GnssSignal
{ _gnssSignal_sat :: Word16
, _gnssSignal_code :: Word8
, _gnssSignal_reserved :: Word8
} deriving ( Show, Read, Eq )
instance Binary GnssSignal where
get = do
_gnssSignal_sat <- getWord16le
_gnssSignal_code <- getWord8
_gnssSignal_reserved <- getWord8
return GnssSignal {..}
put GnssSignal {..} = do
putWord16le _gnssSignal_sat
putWord8 _gnssSignal_code
putWord8 _gnssSignal_reserved
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_gnssSignal_" . stripPrefix "_gnssSignal_"}
''GnssSignal)
$(makeLenses ''GnssSignal)