bglib 1.0.0.0 → 1.0.0.1
raw patch · 2 files changed
+19/−6 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- BGLib.Types: type UInt16 = Word16
- BGLib.Types: type UInt32 = Word32
+ BGLib.Types: data UInt16
+ BGLib.Types: data UInt32
+ BGLib.Types: instance Data.Binary.Class.Binary BGLib.Types.UInt16
+ BGLib.Types: instance Data.Binary.Class.Binary BGLib.Types.UInt32
+ BGLib.Types: instance Data.Bits.Bits BGLib.Types.UInt16
+ BGLib.Types: instance Data.Bits.Bits BGLib.Types.UInt32
+ BGLib.Types: instance Data.Bits.FiniteBits BGLib.Types.UInt16
+ BGLib.Types: instance Data.Bits.FiniteBits BGLib.Types.UInt32
+ BGLib.Types: instance Data.Data.Data BGLib.Types.UInt16
+ BGLib.Types: instance Data.Data.Data BGLib.Types.UInt32
+ BGLib.Types: instance Foreign.Storable.Storable BGLib.Types.UInt16
+ BGLib.Types: instance Foreign.Storable.Storable BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Arr.Ix BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Arr.Ix BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Classes.Eq BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Classes.Eq BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Classes.Ord BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Classes.Ord BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Enum.Bounded BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Enum.Bounded BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Enum.Enum BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Enum.Enum BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Num.Num BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Num.Num BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Read.Read BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Read.Read BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Real.Integral BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Real.Integral BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Real.Real BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Real.Real BGLib.Types.UInt32
+ BGLib.Types: instance GHC.Show.Show BGLib.Types.UInt16
+ BGLib.Types: instance GHC.Show.Show BGLib.Types.UInt32
+ BGLib.Types: instance Text.Printf.PrintfArg BGLib.Types.UInt16
+ BGLib.Types: instance Text.Printf.PrintfArg BGLib.Types.UInt32
Files
- bglib.cabal +1/−1
- src/BGLib/Types.hs +18/−5
bglib.cabal view
@@ -1,5 +1,5 @@ name: bglib-version: 1.0.0.0+version: 1.0.0.1 synopsis: Implementation of the BGAPI serial protocol description: This library implements Silicon Labs' (formerly BlueGiga) serial protocol to communicate with certain Bluetooth and
src/BGLib/Types.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-} module BGLib.Types ( Int8@@ -61,7 +62,6 @@ , BGResult(..) ) where -import Control.Concurrent import Control.Concurrent.STM.TChan import Control.Monad.Reader import Control.Concurrent.STM@@ -70,9 +70,12 @@ import Data.Binary.Put import Data.Bits import qualified Data.ByteString as BSS+import Data.Data import qualified Data.Int as I+import Data.Ix import Data.String import qualified Data.Word as W+import Foreign.Storable import Numeric import System.Hardware.Serialport import Text.Printf@@ -84,11 +87,21 @@ type UInt8 = W.Word8 -- uint16 2 bytes Unsigned 16-bit integer-type UInt16 = W.Word16+newtype UInt16 = UInt16 { fromUInt16 :: W.Word16 }+ deriving (Bounded, Enum, Eq, Integral, Data, Num, Ord, Read, Real, Show, Ix, FiniteBits, Bits, Storable, PrintfArg) +instance Binary UInt16 where+ get = UInt16 <$> getWord16le+ put = putWord16le . fromUInt16+ -- uint32 4 bytes Unsigned 32-bit integer-type UInt32 = W.Word32+newtype UInt32 = UInt32 { fromUInt32 :: W.Word32 }+ deriving (Bounded, Enum, Eq, Integral, Data, Num, Ord, Read, Real, Show, Ix, FiniteBits, Bits, Storable, PrintfArg) +instance Binary UInt32 where+ get = UInt32 <$> getWord32le+ put = putWord32le . fromUInt32+ -- uint8array byte array, first byte is array size newtype UInt8Array = UInt8Array { fromUInt8Array :: BSS.ByteString } deriving (Show, IsString) @@ -890,7 +903,7 @@ BGRUnsupportedGroupType -> 0x0410 BGRInsufficientResources -> 0x0411 BGRApplicationErrorCode errC -> (fromIntegral errC .&. 0x001f) .|. 0x0480- BGRUnknown errC -> errC+ BGRUnknown errC -> fromIntegral errC get = do errC <- getWord16le@@ -955,4 +968,4 @@ _ -> if errC >= 0x0480 && errC <= 0x049f then BGRApplicationErrorCode $ fromIntegral (errC .&. 0x1f)- else BGRUnknown errC+ else BGRUnknown $ fromIntegral errC