packages feed

hlibBladeRF 0.1.0.2 → 0.1.0.3

raw patch · 7 files changed

+61/−88 lines, 7 filesdep −processdep −regex-compatdep ~base

Dependencies removed: process, regex-compat

Dependency ranges changed: base

Files

ChangeLog view
@@ -1,3 +1,10 @@+Changes in 0.1.0.3++* HLint clean project.+* When the interface is configured for the 'FORMAT_SC16_Q11'+  format there is no metadata and so the 'bladeRFSyncTx'+  action 'BladeRFMetadata' argument is a Maybe type.+ Changes in 0.1.0.2  * Minor cabal file fixes.
hlibBladeRF.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                hlibBladeRF-version:             0.1.0.2+version:             0.1.0.3 synopsis:            Haskell binding to libBladeRF SDR library description:         IO Monadic binding for libbladeRF software defined radio. homepage:            https://victoredwardocallaghan.github.io/hlibBladeRF@@ -20,12 +20,13 @@ -------------------------------------------- -- Test suites ---test-suite haddock-    build-depends:    base, process, regex-compat-    default-language: Haskell2010-    hs-source-dirs:   test-suite-    main-is:          Haddock.hs-    type:             exitcode-stdio-1.0+--test-suite haddock+--    build-depends:    base, process, regex-compat+--    default-language: Haskell2010+--    hs-source-dirs:   test-suite+--    main-is:          Haddock.hs+--    type:             exitcode-stdio-1.0+-- XXX disable until Haddock does not fail on bindings  test-suite hlint     build-depends:    base, hlint@@ -35,7 +36,8 @@     type:             exitcode-stdio-1.0  ---------------------------------------------+-- Library modules+-- library   exposed-modules:     LibBladeRF                        LibBladeRF.LibBladeRF@@ -68,9 +70,11 @@   c-sources:           src/inlines.c   default-language:    Haskell2010 -+--------------------------------------------+-- Source repository+-- source-repository head   type:                git   location:            git://github.com/victoredwardocallaghan/hlibBladeRF   branch:              master-  tag:                 v0.1.0.2+  tag:                 v0.1.0.3
src/LibBladeRF/Flash.hs view
@@ -32,7 +32,7 @@                   -> Word32        -- ^ Erase block to start erasing at                   -> Word32        -- ^ Number of blocks to erase.                   -> IO CInt-bladeRFEraseFlash dev b c = c'bladerf_erase_flash (unDeviceHandle dev) b c+bladeRFEraseFlash dev = c'bladerf_erase_flash (unDeviceHandle dev)  -- | Read data from the bladeRF's SPI flash. --
src/LibBladeRF/Sync.hs view
@@ -59,28 +59,32 @@ -- Samples will only be sent to the FPGA when a buffer have been filled. The -- number of samples required to fill a buffer corresponds to the `buffer_size` -- parameter passed to 'bladeRFSyncConfig'.-bladeRFSyncTx :: DeviceHandle    -- ^ Device handle-              -> BS.ByteString   -- ^ Array of samples-              -> Int             -- ^ Number of samples to write-              -> BladeRFMetadata -- ^ Sample metadata. This must be provided when using-                                 --   the 'FORMAT_SC16_Q11_META' format, but may-                                 --   be NULL when the interface is configured for-                                 --   the 'FORMAT_SC16_Q11' format.-              -> Int             -- ^ Timeout (milliseconds) for this call to complete. Zero implies infinite.+bladeRFSyncTx :: DeviceHandle          -- ^ Device handle+              -> BS.ByteString         -- ^ Array of samples+              -> Int                   -- ^ Number of samples to write+              -> Maybe BladeRFMetadata -- ^ Sample metadata. This must be provided when using+                                       --   the 'FORMAT_SC16_Q11_META' format, but may+                                       --   be 'Nothing' when the interface is configured for+                                       --   the 'FORMAT_SC16_Q11' format.+              -> Int                   -- ^ Timeout (milliseconds) for this call to complete. Zero implies infinite.               -> IO () bladeRFSyncTx dev s n md t = do--- Use the following instead when switching to ghc7.8 later..--- bladeRFMetadataToCBladeRFMetadata :: BladeRFMetadata -> C'bladerf_metadata-  let meta = C'bladerf_metadata { c'bladerf_metadata'timestamp    = timestamp md-                                , c'bladerf_metadata'flags        = flags     md-                                , c'bladerf_metadata'status       = status    md-                                , c'bladerf_metadata'actual_count = (fromIntegral . count) md-                                , c'bladerf_metadata'reserved     = [0]-                                }-  alloca $ \pmd -> do-    poke pmd meta-    BS.useAsCStringLen s $-      \(p, _len) -> c'bladerf_sync_tx (unDeviceHandle dev) p (fromIntegral n) pmd (fromIntegral t)+  alloca $ \pmd ->+    case md of+      Nothing -> BS.useAsCStringLen s $+                   \(p, _len) -> c'bladerf_sync_tx (unDeviceHandle dev) p (fromIntegral n) nullPtr (fromIntegral t)+      Just md -> do+                 -- Use the following instead when switching to ghc7.8 later..+                 -- bladeRFMetadataToCBladeRFMetadata :: BladeRFMetadata -> C'bladerf_metadata+                 let meta = C'bladerf_metadata { c'bladerf_metadata'timestamp    = timestamp md+                                               , c'bladerf_metadata'flags        = flags     md+                                               , c'bladerf_metadata'status       = status    md+                                               , c'bladerf_metadata'actual_count = (fromIntegral . count) md+                                               , c'bladerf_metadata'reserved     = [0]+                                               }+                 poke pmd meta+                 BS.useAsCStringLen s $+                   \(p, _len) -> c'bladerf_sync_tx (unDeviceHandle dev) p (fromIntegral n) pmd (fromIntegral t)   return () -- XXX ignores ret  -- | Receive IQ samples.@@ -98,8 +102,8 @@       peekArray (4 * n) ptr   let bs = BS.pack par   cmd <- peek pmd- -- Use the following instead when switching to ghc7.8 later..- -- bladeRFMetadataFromCBladeRFMetadata :: C'bladerf_metadata -> BladeRFMetadata +  -- Use the following instead when switching to ghc7.8 later..+  -- bladeRFMetadataFromCBladeRFMetadata :: C'bladerf_metadata -> BladeRFMetadata   let meta = BladeRFMetadata { timestamp = c'bladerf_metadata'timestamp    cmd                              , flags     = c'bladerf_metadata'flags        cmd                              , status    = c'bladerf_metadata'status       cmd
src/LibBladeRF/Types.hs view
@@ -9,7 +9,8 @@   This module encapsulates types libbladeRF library functions. -} -{-# LANGUAGE Trustworthy, DeriveGeneric #-}+-- {-# LANGUAGE Trustworthy, DeriveGeneric #-}+{-# LANGUAGE Trustworthy #-}  module LibBladeRF.Types ( BladeRFVersion(..)                         , BladeRFDeviceInfo(..)
src/LibBladeRF/Utils.hs view
@@ -31,6 +31,14 @@ import LibBladeRF.Types  +-- internal use only+toBladeRFVer :: C'bladerf_version -> String -> BladeRFVersion+toBladeRFVer brfv desc = BladeRFVersion { major = c'bladerf_version'major brfv+                                        , minor = c'bladerf_version'minor brfv+                                        , patch = c'bladerf_version'patch brfv+                                        , descr = desc+                                        }+ -- | Get libbladeRF version information. bladeRFLibVersion :: IO BladeRFVersion bladeRFLibVersion = do@@ -38,12 +46,7 @@        c'bladerf_version p        peek p   desc <- peekCString $ c'bladerf_version'describe brfv-  let ver = BladeRFVersion { major = c'bladerf_version'major brfv-                           , minor = c'bladerf_version'minor brfv-                           , patch = c'bladerf_version'patch brfv-                           , descr = desc-                           }-  return ver+  return $ toBladeRFVer brfv desc  -- | Query firmware version. bladeRFFwVersion :: DeviceHandle      -- ^ Device handle@@ -53,12 +56,7 @@        c'bladerf_fw_version (unDeviceHandle dev) p        peek p   desc <- peekCString $ c'bladerf_version'describe brfv-  let ver = BladeRFVersion { major = c'bladerf_version'major brfv-                           , minor = c'bladerf_version'minor brfv-                           , patch = c'bladerf_version'patch brfv-                           , descr = desc-                           }-  return ver+  return $ toBladeRFVer brfv desc  -- | Query FPGA version. bladeRFFPGAVersion :: DeviceHandle      -- ^ Device handle@@ -70,12 +68,7 @@          c'bladerf_fpga_version (unDeviceHandle dev) p          peek p     desc <- peekCString $ c'bladerf_version'describe brfv-    let ver = BladeRFVersion { major = c'bladerf_version'major brfv-                             , minor = c'bladerf_version'minor brfv-                             , patch = c'bladerf_version'patch brfv-                             , descr = desc-                             }-    return ver+    return $ toBladeRFVer brfv desc   else     return    BladeRFVersion { major = 0                              , minor = 0
− test-suite/Haddock.hs
@@ -1,36 +0,0 @@-{-|-  Module      : $Header$-  Copyright   : (c) 2014 Edward O'Callaghan-  License     : LGPL-2.1-  Maintainer  : eocallaghan@alterapraxis.com-  Stability   : provisional-  Portability : portable--  test-suite/Haddock.hs--}--module Main (main) where--import Data.List (genericLength)-import Data.Maybe (catMaybes)-import System.Exit (exitFailure, exitSuccess)-import System.Process (readProcess)-import Text.Regex (matchRegex, mkRegex)--average :: (Fractional a, Real b) => [b] -> a-average xs = realToFrac (sum xs) / genericLength xs--expected :: Fractional a => a-expected = 90--main :: IO ()-main = do-    output <- readProcess "cabal" ["haddock"] ""-    if average (match output) >= expected-        then exitSuccess-        else putStr output >> exitFailure--match :: String -> [Int]-match = fmap read . concat . catMaybes . fmap (matchRegex pattern) . lines-  where-    pattern = mkRegex "^ *([0-9]*)% "