sbp 1.0.1 → 1.1.0
raw patch · 3 files changed
+35/−1 lines, 3 files
Files
- sbp.cabal +1/−1
- src/SwiftNav/SBP.hs +6/−0
- src/SwiftNav/SBP/Settings.hs +28/−0
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 1.0.1+version: 1.1.0 synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: LGPL-3
@@ -109,6 +109,7 @@ | SBPMsgSettingsReadByIndexResp MsgSettingsReadByIndexResp Msg | SBPMsgSettingsReadReq MsgSettingsReadReq Msg | SBPMsgSettingsReadResp MsgSettingsReadResp Msg+ | SBPMsgSettingsRegister MsgSettingsRegister Msg | SBPMsgSettingsSave MsgSettingsSave Msg | SBPMsgSettingsWrite MsgSettingsWrite Msg | SBPMsgStartup MsgStartup Msg@@ -194,6 +195,7 @@ | _msgSBPType == msgSettingsReadByIndexResp = SBPMsgSettingsReadByIndexResp (decode (fromStrict _msgSBPPayload)) m | _msgSBPType == msgSettingsReadReq = SBPMsgSettingsReadReq (decode (fromStrict _msgSBPPayload)) m | _msgSBPType == msgSettingsReadResp = SBPMsgSettingsReadResp (decode (fromStrict _msgSBPPayload)) m+ | _msgSBPType == msgSettingsRegister = SBPMsgSettingsRegister (decode (fromStrict _msgSBPPayload)) m | _msgSBPType == msgSettingsSave = SBPMsgSettingsSave (decode (fromStrict _msgSBPPayload)) m | _msgSBPType == msgSettingsWrite = SBPMsgSettingsWrite (decode (fromStrict _msgSBPPayload)) m | _msgSBPType == msgStartup = SBPMsgStartup (decode (fromStrict _msgSBPPayload)) m@@ -271,6 +273,7 @@ encode' (SBPMsgSettingsReadByIndexResp _ m) = put m encode' (SBPMsgSettingsReadReq _ m) = put m encode' (SBPMsgSettingsReadResp _ m) = put m+ encode' (SBPMsgSettingsRegister _ m) = put m encode' (SBPMsgSettingsSave _ m) = put m encode' (SBPMsgSettingsWrite _ m) = put m encode' (SBPMsgStartup _ m) = put m@@ -351,6 +354,7 @@ | msgType == msgSettingsReadByIndexResp = SBPMsgSettingsReadByIndexResp <$> parseJSON obj <*> parseJSON obj | msgType == msgSettingsReadReq = SBPMsgSettingsReadReq <$> parseJSON obj <*> parseJSON obj | msgType == msgSettingsReadResp = SBPMsgSettingsReadResp <$> parseJSON obj <*> parseJSON obj+ | msgType == msgSettingsRegister = SBPMsgSettingsRegister <$> parseJSON obj <*> parseJSON obj | msgType == msgSettingsSave = SBPMsgSettingsSave <$> parseJSON obj <*> parseJSON obj | msgType == msgSettingsWrite = SBPMsgSettingsWrite <$> parseJSON obj <*> parseJSON obj | msgType == msgStartup = SBPMsgStartup <$> parseJSON obj <*> parseJSON obj@@ -433,6 +437,7 @@ toJSON (SBPMsgSettingsReadByIndexResp n m) = toJSON n `mergeValues` toJSON m toJSON (SBPMsgSettingsReadReq n m) = toJSON n `mergeValues` toJSON m toJSON (SBPMsgSettingsReadResp n m) = toJSON n `mergeValues` toJSON m+ toJSON (SBPMsgSettingsRegister n m) = toJSON n `mergeValues` toJSON m toJSON (SBPMsgSettingsSave n m) = toJSON n `mergeValues` toJSON m toJSON (SBPMsgSettingsWrite n m) = toJSON n `mergeValues` toJSON m toJSON (SBPMsgStartup n m) = toJSON n `mergeValues` toJSON m@@ -509,6 +514,7 @@ msg f (SBPMsgSettingsReadByIndexResp n m) = SBPMsgSettingsReadByIndexResp n <$> f m msg f (SBPMsgSettingsReadReq n m) = SBPMsgSettingsReadReq n <$> f m msg f (SBPMsgSettingsReadResp n m) = SBPMsgSettingsReadResp n <$> f m+ msg f (SBPMsgSettingsRegister n m) = SBPMsgSettingsRegister n <$> f m msg f (SBPMsgSettingsSave n m) = SBPMsgSettingsSave n <$> f m msg f (SBPMsgSettingsWrite n m) = SBPMsgSettingsWrite n <$> f m msg f (SBPMsgStartup n m) = SBPMsgStartup n <$> f m
@@ -217,3 +217,31 @@ $(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadByIndexDone_" . stripPrefix "_msgSettingsReadByIndexDone_"} ''MsgSettingsReadByIndexDone) $(makeLenses ''MsgSettingsReadByIndexDone)++msgSettingsRegister :: Word16+msgSettingsRegister = 0x00AE++-- | SBP class for message MSG_SETTINGS_REGISTER (0x00AE).+--+-- This message registers the presence and default value of a setting with a+-- settings daemon. The host should reply with MSG_SETTINGS_WRITE for this+-- setting to set the initial value.+data MsgSettingsRegister = MsgSettingsRegister+ { _msgSettingsRegister_setting :: ByteString+ -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,+ -- SETTING, VALUE].+ } deriving ( Show, Read, Eq )++instance Binary MsgSettingsRegister where+ get = do+ _msgSettingsRegister_setting <- liftM toStrict getRemainingLazyByteString+ return MsgSettingsRegister {..}++ put MsgSettingsRegister {..} = do+ putByteString _msgSettingsRegister_setting++$(deriveSBP 'msgSettingsRegister ''MsgSettingsRegister)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsRegister_" . stripPrefix "_msgSettingsRegister_"}+ ''MsgSettingsRegister)+$(makeLenses ''MsgSettingsRegister)