packages feed

hlibBladeRF 0.1.0.0 → 0.1.0.1

raw patch · 2 files changed

+26/−24 lines, 2 files

Files

hlibBladeRF.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                hlibBladeRF-version:             0.1.0.0+version:             0.1.0.1 synopsis:            Haskell binding to libBladeRF SDR library description:         IO Monadic binding for libbladeRF software defined radio. homepage:            https://victoredwardocallaghan.github.io/hlibBladeRF@@ -37,18 +37,7 @@ --------------------------------------------  library-  exposed-modules:     Bindings.LibBladeRF-                       Bindings.LibBladeRF.LibBladeRF-                       Bindings.LibBladeRF.Utils-                       Bindings.LibBladeRF.Flash-                       Bindings.LibBladeRF.Si5338-                       Bindings.LibBladeRF.Sync-                       Bindings.LibBladeRF.Lms-                       Bindings.LibBladeRF.Gain-                       Bindings.LibBladeRF.Gpio-                       Bindings.LibBladeRF.Types--                       LibBladeRF+  exposed-modules:     LibBladeRF                        LibBladeRF.LibBladeRF                        LibBladeRF.Sampling                        LibBladeRF.Sync@@ -58,7 +47,17 @@                        LibBladeRF.Frequency                        LibBladeRF.Utils                        LibBladeRF.Types-  -- other-modules:       ++  other-modules:       Bindings.LibBladeRF+                       Bindings.LibBladeRF.LibBladeRF+                       Bindings.LibBladeRF.Utils+                       Bindings.LibBladeRF.Flash+                       Bindings.LibBladeRF.Si5338+                       Bindings.LibBladeRF.Sync+                       Bindings.LibBladeRF.Lms+                       Bindings.LibBladeRF.Gain+                       Bindings.LibBladeRF.Gpio+                       Bindings.LibBladeRF.Types   -- other-extensions:       default-extensions:  ForeignFunctionInterface   build-depends:       base >=4 && <4.8,@@ -74,4 +73,3 @@   type:                git   location:            git://github.com/victoredwardocallaghan/hlibBladeRF   branch:              master-  subdir:              bindings-hlibbladeRF
src/LibBladeRF/Flash.hs view
@@ -12,13 +12,15 @@  module LibBladeRF.Flash ( bladeRFEraseFlash                         , bladeRFReadFlash---                        , bladeRFWriteFlash+                        , bladeRFWriteFlash                         ) where  import Foreign import Foreign.C.Types import Foreign.C.String +import qualified Data.ByteString as BS+ import Bindings.LibBladeRF import LibBladeRF.LibBladeRF @@ -47,11 +49,13 @@   return (ret, buffer)  -- | Write data from the bladeRF's SPI flash--- FIXME - how to pass in a buffer of data???---bladeRFWriteFlash :: DeviceHandle -> Word32 -> Word32 -> IO (CInt, Word8)---bladeRFWriteFlash dev p c = do---  bptr <- malloc :: IO (Ptr Word8)---  ret <- c'bladerf_write_flash (unDeviceHandle dev) bptr p c---  buffer <- peek bptr---  free bptr---  return (ret, buffer)+-- XXX - Buffer allocation size must be `page` * BLADERF_FLASH_PAGE_SIZE bytes or larger.+bladeRFWriteFlash :: DeviceHandle     -- ^ Device handle+                  -> BS.ByteString    -- ^ Data to write to flash+                  -> Word32           -- ^ page  Page to begin writing at+                  -> Word32           -- ^ count+                  -> IO ()+bladeRFWriteFlash dev b p c = allocaBytes (fromIntegral $ p * c'BLADERF_FLASH_PAGE_SIZE) $ \bptr -> do+  pokeArray bptr (BS.unpack b) -- XXX can we overflow here??+  _ <- c'bladerf_write_flash (unDeviceHandle dev) bptr p c+  return () -- ignore ret