Bv      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u   Safe-Inferredvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdev wxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk  Safe-Inferredlmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~ None None Safe-InferredNone Safe-InferredNoneNoneHHHportable provisionaleocallaghan@alterapraxis.comNonevwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdelmnopqrstuvwxyz{|}~portable provisionaleocallaghan@alterapraxis.com Trustworthy;Sample metadata. /This structure is used in conjunction with the  G format to TX scheduled bursts or retrieve timestamp information about  received samples. 7Free-running FPGA counter that monotonically increases 0 at the sample rate of the associated module. 4Input bit field to control the behavior of the call - that the metadata structure is passed to. +Output bit field to denoting the status of  transmissions/ receptions. 7This output parameter is updated to reflect the actual 9 number of contiguous samples that have been populated  in an RX buffer during a  call. EThis enum describes the USB Speed at which the bladeRF is connected. *Speeds not listed here are not supported. USB3.0 USB2.0 Unknown  Correction parameter selection. FThese values specify the correction parameter to modify or query when  calling   or   . Note that the  meaning of the value/ parameter to these functions depends upon the  correction parameter. /Adjusts FPGA-based gain correction of [0.0, 2.0], via provided & values in the range of [-4096, 4096]$, where a value of 0 corresponds to  a gain of 1.0. /Adjusts FPGA-based phase correction of [-10, 10] degrees, via a provided  count value of [-4096, 4096]. DAdjusts the quadrature DC offset via controls provided the LMS6002D + front end. Valid values are [-2048, 2048], which are scaled to the  available control bits. EAdjusts the in-phase DC offset via controls provided by the LMS6002D + front end. Valid values are [-2048, 2048], which are scaled to the - available control bits in the LMS device. "Device control and configuration. JThis section provides functions pertaining to accessing, controlling, and 4 configuring various device options and parameters. Maximum TXVGA2 gain, in dB Minimum TXVGA2 gain, in dB Maximum TXVGA1 gain, in dB Minimum TXVGA1 gain, in dB Maximum RXVGA2 gain, in dB Minimum RXVGA2 gain, in dB Maximum RXVGA1 gain, in dB Minimum RXVGA1 gain, in dB LNA gain options.  LNA Max Gain LNA Mid Gain (MAX-6dB) LNA bypassed - 0dB gain Invalid LNA gain Sample format. This format is the same as the  format, except the K first 4 samples (16 bytes) in every block of 1024 samples are replaced M with metadata, organized as follows, with all fields being little endian  byte order:    0x00 [uint32_t: Reserved] & 0x04 [uint64_t: 64-bit Timestamp] / 0x0c [uint32_t: BLADERF_META_FLAG_* flags] When using the  and  ( actions, this detail is transparent to 0 caller. These functions take care of packing/unpacking the metadata  into/from the data, via the  structure. ICurrently, when using the asynchronous data transfer interface, the user ' is responsible for manually packingunpacking this metadata intofrom  their sample data. GSigned, Complex 16-bit Q11. This is the native format of the DAC data. EValues in the range [-2048, 2048) are used to represent [-1.0, 1.0). J Note that the lower bound here is inclusive, and the upper bound is F exclusive. Ensure that provided samples stay within [-2048, 2047]. FSamples consist of interleaved IQ value pairs, with I being the first D value in the pair. Each value in the pair is a right-aligned, D little-endian int16_t. The FPGA ensures that these values are  sign-extended. GWhen using this format the minimum required buffer size, in bytes, is:  9 buffer_size_min = [ 2 * num_samples * sizeof(int16_t) ] HFor example, to hold 2048 samples, a buffer must be at least 8192 bytes  large. CModule selection for those which have both RX and TX constituents. !Transmit Module "Receive Module #%Rational sample rate representation. %Integer portion & Numerator in fractional portion '5Denominator in fractional portion. This must be > 0. (8Backend by which the host communicates with the device. )$Dummy used for development purposes *CyAPI +libusb ,Linux kernel driver -Don'"t Care, use any available backend .FPGA device variant (size). / 115 kLE FPGA 0 40 kLE FPGA 1!Unable to determine FPGA variant 24Information about a bladeRF attached to the system. 4)Backend to use when connecting to device 5Device serial number string 6!Bus number device is attached to 7Device address on bus 8Device instance or ID 9LVersion structure for FPGA, firmware, libbladeRF, and associated utilities. ;Major version <Minor version =Patch version >7Version string with any additional suffix information. T  !"#$%&'()*+,-./0123456789:;<=>     ?  !"#$%&'()*+,-./0123456789:;<=>?9:;<=>2345678.10/(-,+*)#$%&' "!   !    "!#$%&'(-,+*).10/23456789:;<=>     portable provisionaleocallaghan@alterapraxis.comNone?8DeviceHandle wrapper around C device descriptor pointer B7Error codes returned by internal libbladeRF functions. C#Requested timestamp is in the past DA firmware update is requied EAn FPGA update is required FFile not found GInvalid checksum HMisaligned flash access IOperation not supported JNo device(s) available KOperation timed out LFileDevice IO error MMemory allocation error NInvalid operation/ parameter O#Provided parameter is out of range PAn unexpected failure occurred QEssential wrapper +Handy helper to wrap around Either results KClose device. Deallocates the memory allocated by openBladeRF when called. ?@ABCDEFGHIJKLMNOPQ?@ABCDEFGHIJKLMNOPQQ?@ABPONMLKJIHGFEDC?@ABPONMLKJIHGFEDCQportable provisionaleocallaghan@alterapraxis.comNone R$Get libbladeRF version information. SQuery firmware version. TQuery FPGA version. U Load device's FPGA. <Note that this FPGA configuration will be reset at the next 0 power cycle. Pass Full path to FPGA bitstream. V6Obtain the bus speed at which the device is operating WFill out a provided ) structure, given an open device handle. XQuery a device's serial number. YQuery a device' s FPGA size. Z"Enable or disable the specified RX/ TX module. HWhen a synchronous stream is associated with the specified module, this 8 will shut down the underlying asynchronous stream when enable =  . RSDevice handle Returned firmware version TDevice handle Returned firmware version UDevice handle Full path to FPGA bitstream VDevice handle  Device speed WDevice handle .Device information populated by this function XDevice handle Returned serial number. YDevice handle Returned on-board FPGA's size. ZDevice handle Device module ! to enable,   to disable RSTUVWXYZ RSTVUWXYZ RSTUVWXYZportable provisionaleocallaghan@alterapraxis.comNone[Erase regions of the bladeRF' s SPI flash. 7This function operates in units of 64KiB erase blocks. \Read data from the bladeRF' s SPI flash. 3This function operates in units of 256-byte pages. ]Write data from the bladeRF' s SPI flash. %XXX - Buffer allocation size must be page, * BLADERF_FLASH_PAGE_SIZE bytes or larger. [Device handle  Erase block to start erasing at Number of blocks to erase. \Device handle Page to begin reading from Number of pages to read ]Device handle Data to write to flash page Page to begin writing at count [\][\][\]portable provisionaleocallaghan@alterapraxis.comNone^A(Re)Configure a device for synchronous transmission or reception _Transmit IQ samples. IUnder the hood, this call starts up an underlying asynchronous stream as E needed. This stream can be stopped by disabling the TX module. (See   for more details.) JSamples 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 ^. `Receive IQ samples. HUnderthe hood, this call starts up an underlying asynchronous stream as E needed. This stream can be stopped by disabling the RX module. (See   for more details.) ^Device handle )Module to use with synchronous interface ,Format to use in synchronous data transfers <The number of buffers to use in the underlying data stream. ^The size of the underlying stream buffers, in samples. This value must be a multiple of 1024. LThe number of active USB transfers that may be in-flight at any given time. DTimeout (milliseconds) for transfers in the underlying data stream. _Device handle Array of samples Number of samples to write 2Sample metadata. This must be provided when using  the  format, but may 0 be NULL when the interface is configured for  the  format. ITimeout (milliseconds) for this call to complete. Zero implies infinite. `Device handle Number of samples to read ITimeout (milliseconds) for this call to complete. Zero implies infinite. ^_`^_`^_`portable provisionaleocallaghan@alterapraxis.comNonea$Read a configuration GPIO register. b%Write a configuration GPIO register. HCallers should be sure to perform a read-modify-write sequence to avoid R accidentally clearing other GPIO bits that may be set by the library internally. aDevice handle  Read data bDevice handle Data to write to GPIO register abababportable provisionaleocallaghan@alterapraxis.comNone cSet the PA gain in dB. dGet the PA gain in dB. eSet the post-LPF gain in dB. fGet the post-LPF gain in dB. gSet the post-LPF VGA gain. hGet the post-LPF VGA gain. iSet the pre-LPF VGA gain jGet the pre-LPF VGA gain k Set LNA Gain l Get LNA Gain mSet a combined VGA TX gain N This function computes the optimal TXVGA1 and TXVGA2 gains for a requested  amount of gain  XXX symb not found!!! 1bladeRFSetTXGain :: DeviceHandle -> Int -> IO () bladeRFSetTXGain dev g = do  c':bladerf_set_tx_gain (unDeviceHandle dev) (fromIntegral g)  return () -- ignores ret (Set a combined pre and post LPF RX gain I This function computes the optimal LNA, RXVGA1, and RVGA2 gains for a Q requested amount of RX gain, and computes the optimal TXVGA1 and TXVGA2 gains % for a requested amount of TX gain cDevice handle  Desired gain dDevice handle Returned gain eDevice handle  Desired gain fDevice handle Returned gain gDevice handle  Desired gain hDevice handle Returned set gain level iDevice handle  Desired gain jDevice handle Returned set gain level kDevice handle Desired gain level lDevice handle Returned set gain level mDevice handle Module  Desired gain cdefghijklm cdefghijklm cdefghijklmportable provisionaleocallaghan@alterapraxis.comNonenConfigure the device's sample rate, in Hz. >Note this requires the sample rate is an integer value of Hz.  Use o for more arbitrary values. oConfigure the device',s sample rate as a rational fraction of Hz. -Sample rates are in the form of integer + num/denom. p;Set the bandwidth of the LMS LPF to specified value in Hz. nDevice handle Module to change  Sample rate Actual sample rate achieved. oDevice handle Module to change Rational sample rate &Actual rational sample rate achieved. pDevice handle Module for bandwidth request Desired bandwidth 6Actual bandwidth that the device was able to achieve. nopnopnop portable provisionaleocallaghan@alterapraxis.comNoneqWrite value to VCTCXO DAC. r Get module's current frequency in Hz. s Set module's frequency in Hz. tCObtain the current value of the specified configuration parameter. u8Set the value of the specified configuration parameter. qDevice handle Data to write to DAC register rDevice handle Module to configure Returned frequency sDevice handle Module to configure Desired frequency tDevice handle /Module to retrieve correction information from Correction type Current value uDevice handle Module to apply correction to Correction type Value to apply qrstuqrstuqrstuportable provisionaleocallaghan@alterapraxis.comNonen  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm" !"#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKKLMNOPQQRSTUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                           !"#$%&'()*+,*+-.hlibBladeRF-0.1.0.1LibBladeRF.TypesLibBladeRF.LibBladeRFLibBladeRF.UtilsLibBladeRF.FlashLibBladeRF.SyncLibBladeRF.GpioLibBladeRF.GainLibBladeRF.SamplingLibBladeRF.FrequencyBindings.LibBladeRF.TypesBindings.LibBladeRF.GainBindings.LibBladeRF.GpioBindings.LibBladeRF.LmsBindings.LibBladeRF.SyncBindings.LibBladeRF.Si5338Bindings.LibBladeRF.FlashBindings.LibBladeRF.UtilsBindings.LibBladeRF.LibBladeRFBindings.LibBladeRF bladeRFSyncRxbladeRFSetCorrectionbladeRFGetCorrection bladeRFSyncTxBladeRFDevInfobladeRFEnableModule LibBladeRFBladeRFMetadata timestampflagsstatuscount BladeRFSpeedDEVICE_SPEED_SUPERDEVICE_SPEED_HIGHDEVICE_SPEED_UNKNOWNBladeRFCorrectionCORR_FPGA_GAINCORR_FPGA_PHASECORR_LMS_DCOFF_QCORR_LMS_DCOFF_IBladeRFVGAGainBoundsTXVGA2_GAIN_MAXTXVGA2_GAIN_MINTXVGA1_GAIN_MAXTXVGA1_GAIN_MINRXVGA2_GAIN_MAXRXVGA2_GAIN_MINRXVGA1_GAIN_MAXRXVGA1_GAIN_MINBladeRFLNAGain LNA_GAIN_MAX LNA_GAIN_MIDLNA_GAIN_BYPASSLNA_GAIN_UNKNOWN BladeRFFormatFORMAT_SC16_Q11_METAFORMAT_SC16_Q11 BladeRFModule MODULE_TX MODULE_RXBladeRFRationalRateintegernumdenBladeRFBackend BACKEND_DUMMYBACKEND_CYPRESSBACKEND_LIBUSB BACKEND_LINUX BACKEND_ANYBladeRFFPGASize FPGA_115KLE FPGA_40KLE FPGA_UNKNOWNBladeRFDeviceInfobackendserialusbBususbAddrinstBladeRFVersionmajorminorpatchdescr DeviceHandleunDeviceHandle BladeRFErrorBLADERF_ERR_TIME_PASTBLADERF_ERR_UPDATE_FWBLADERF_ERR_UPDATE_FPGABLADERF_ERR_NO_FILEBLADERF_ERR_CHECKSUMBLADERF_ERR_MISALIGNEDBLADERF_ERR_UNSUPPORTEDBLADERF_ERR_NODEVBLADERF_ERR_TIMEOUTBLADERF_ERR_IOBLADERF_ERR_MEMBLADERF_ERR_INVALBLADERF_ERR_RANGEBLADERF_ERR_UNEXPECTED withBladeRFbladeRFLibVersionbladeRFFwVersionbladeRFFPGAVersionbladeRFLoadFPGAbladeRFDeviceSpeedbladeRFGetDevInfobladeRFGetSerialbladeRFGetFPGASizebladeRFEraseFlashbladeRFReadFlashbladeRFWriteFlashbladeRFSyncConfigbladeRFConfigGPIOReadbladeRFConfigGPIOWritebladeRFSetTXVGA2bladeRFGetTXVGA2bladeRFSetTXVGA1bladeRFGetTXVGA1bladeRFSetRXVGA2bladeRFGetRXVGA2bladeRFSetRXVGA1bladeRFGetRXVGA1bladeRFSetLNAGainbladeRFGetLNAGainbladeRFSetGainbladeRFSetSampleRatebladeRFSetRationalSampleRatebladeRFSetBandwidthbladeRFDACWritebladeRFGetFrequencybladeRFSetFrequencyC'bladerf_lms_dc_cals c'bladerf_lms_dc_cals'lpf_tuningc'bladerf_lms_dc_cals'tx_lpf_ic'bladerf_lms_dc_cals'tx_lpf_qc'bladerf_lms_dc_cals'rx_lpf_ic'bladerf_lms_dc_cals'rx_lpf_qc'bladerf_lms_dc_cals'dc_refc'bladerf_lms_dc_cals'rxvga2a_ic'bladerf_lms_dc_cals'rxvga2a_qc'bladerf_lms_dc_cals'rxvga2b_ic'bladerf_lms_dc_cals'rxvga2b_qC'bladerf_imagec'bladerf_image'magicc'bladerf_image'checksumc'bladerf_image'versionc'bladerf_image'timestampc'bladerf_image'serialc'bladerf_image'reservedc'bladerf_image'typec'bladerf_image'addressc'bladerf_image'lengthc'bladerf_image'dataC'bladerf_image_typeC'bladerf_log_levelC'bladerf_fpga_sizeC'bladerf_versionc'bladerf_version'majorc'bladerf_version'minorc'bladerf_version'patchc'bladerf_version'describeC'bladerf_stream_cbC'bladerf_metadatac'bladerf_metadata'timestampc'bladerf_metadata'flagsc'bladerf_metadata'statusc'bladerf_metadata'actual_countc'bladerf_metadata'reservedC'bladerf_formatC'bladerf_correctionC'bladerf_cal_moduleC'bladerf_xb200_pathC'bladerf_xb200_filter C'bladerf_xbC'bladerf_moduleC'bladerf_lpf_modeC'bladerf_lna_gainC'bladerf_samplingC'bladerf_rational_ratec'bladerf_rational_rate'integerc'bladerf_rational_rate'numc'bladerf_rational_rate'denC'bladerf_loopbackC'bladerf_devinfoc'bladerf_devinfo'backendc'bladerf_devinfo'serialc'bladerf_devinfo'usb_busc'bladerf_devinfo'usb_addrc'bladerf_devinfo'instanceC'bladerf_dev_speedC'bladerf_backend C'bladerfmK'bladerf_stream_cbmk'bladerf_stream_cbc'BLADERF_ERR_UNEXPECTEDc'BLADERF_ERR_RANGEc'BLADERF_ERR_INVALc'BLADERF_ERR_MEMc'BLADERF_ERR_IOc'BLADERF_ERR_TIMEOUTc'BLADERF_ERR_NODEVc'BLADERF_ERR_UNSUPPORTEDc'BLADERF_ERR_MISALIGNEDc'BLADERF_ERR_CHECKSUMc'BLADERF_ERR_NO_FILEc'BLADERF_ERR_UPDATE_FPGAc'BLADERF_ERR_UPDATE_FWc'BLADERF_ERR_TIME_PASTc'BLADERF_BACKEND_ANYc'BLADERF_BACKEND_LINUXc'BLADERF_BACKEND_LIBUSBc'BLADERF_BACKEND_CYPRESSc'BLADERF_BACKEND_DUMMYc'BLADERF_DEVICE_SPEED_UNKNOWNc'BLADERF_DEVICE_SPEED_HIGHc'BLADERF_DEVICE_SPEED_SUPERc'BLADERF_SERIAL_LENGTHp'bladerf_devinfo'backendp'bladerf_devinfo'serialp'bladerf_devinfo'usb_busp'bladerf_devinfo'usb_addrp'bladerf_devinfo'instancec'BLADERF_RXVGA1_GAIN_MINc'BLADERF_RXVGA1_GAIN_MAXc'BLADERF_RXVGA2_GAIN_MINc'BLADERF_RXVGA2_GAIN_MAXc'BLADERF_TXVGA1_GAIN_MINc'BLADERF_TXVGA1_GAIN_MAXc'BLADERF_TXVGA2_GAIN_MINc'BLADERF_TXVGA2_GAIN_MAXc'BLADERF_SAMPLERATE_MINc'BLADERF_SAMPLERATE_REC_MAXc'BLADERF_BANDWIDTH_MINc'BLADERF_BANDWIDTH_MAXc'BLADERF_FREQUENCY_MINc'BLADERF_FREQUENCY_MIN_XB200c'BLADERF_FREQUENCY_MAXc'BLADERF_LB_FIRMWAREc'BLADERF_LB_BB_TXLPF_RXVGA2c'BLADERF_LB_BB_TXVGA1_RXVGA2c'BLADERF_LB_BB_TXLPF_RXLPFc'BLADERF_LB_BB_TXVGA1_RXLPFc'BLADERF_LB_RF_LNA1c'BLADERF_LB_RF_LNA2c'BLADERF_LB_RF_LNA3c'BLADERF_LB_NONEp'bladerf_rational_rate'integerp'bladerf_rational_rate'nump'bladerf_rational_rate'denc'BLADERF_SAMPLING_UNKNOWNc'BLADERF_SAMPLING_INTERNALc'BLADERF_SAMPLING_EXTERNALc'BLADERF_LNA_GAIN_UNKNOWNc'BLADERF_LNA_GAIN_BYPASSc'BLADERF_LNA_GAIN_MIDc'BLADERF_LNA_GAIN_MAXc'BLADERF_LNA_GAIN_MID_DBc'BLADERF_LNA_GAIN_MAX_DBc'BLADERF_LPF_NORMALc'BLADERF_LPF_BYPASSEDc'BLADERF_LPF_DISABLEDc'BLADERF_MODULE_RXc'BLADERF_MODULE_TXc'BLADERF_XB_NONEc'BLADERF_XB_100c'BLADERF_XB_200c'BLADERF_XB200_50Mc'BLADERF_XB200_144Mc'BLADERF_XB200_222Mc'BLADERF_XB200_CUSTOMc'BLADERF_XB200_AUTO_1DBc'BLADERF_XB200_AUTO_3DBc'BLADERF_XB200_BYPASSc'BLADERF_XB200_MIXc'BLADERF_DC_CAL_LPF_TUNINGc'BLADERF_DC_CAL_TX_LPFc'BLADERF_DC_CAL_RX_LPFc'BLADERF_DC_CAL_RXVGA2c'BLADERF_CORR_LMS_DCOFF_Ic'BLADERF_CORR_LMS_DCOFF_Qc'BLADERF_CORR_FPGA_PHASEc'BLADERF_CORR_FPGA_GAINc'BLADERF_FORMAT_SC16_Q11c'BLADERF_FORMAT_SC16_Q11_METAc'BLADERF_META_STATUS_OVERRUNc'BLADERF_META_STATUS_UNDERRUN"c'BLADERF_META_FLAG_TX_BURST_START c'BLADERF_META_FLAG_TX_BURST_ENDc'BLADERF_META_FLAG_TX_NOWc'BLADERF_META_FLAG_RX_NOWp'bladerf_metadata'timestampp'bladerf_metadata'flagsp'bladerf_metadata'statusp'bladerf_metadata'actual_countp'bladerf_metadata'reservedp'bladerf_version'majorp'bladerf_version'minorp'bladerf_version'patchp'bladerf_version'describec'BLADERF_FPGA_UNKNOWNc'BLADERF_FPGA_40KLEc'BLADERF_FPGA_115KLEc'BLADERF_LOG_LEVEL_VERBOSEc'BLADERF_LOG_LEVEL_DEBUGc'BLADERF_LOG_LEVEL_INFOc'BLADERF_LOG_LEVEL_WARNINGc'BLADERF_LOG_LEVEL_ERRORc'BLADERF_LOG_LEVEL_CRITICALc'BLADERF_LOG_LEVEL_SILENTc'BLADERF_IMAGE_TYPE_INVALIDc'BLADERF_IMAGE_TYPE_RAWc'BLADERF_IMAGE_TYPE_FIRMWAREc'BLADERF_IMAGE_TYPE_FPGA_40KLE c'BLADERF_IMAGE_TYPE_FPGA_115KLE c'BLADERF_IMAGE_TYPE_CALIBRATIONc'BLADERF_IMAGE_TYPE_RX_DC_CALc'BLADERF_IMAGE_TYPE_TX_DC_CALc'BLADERF_IMAGE_TYPE_RX_IQ_CALc'BLADERF_IMAGE_TYPE_TX_IQ_CALc'BLADERF_IMAGE_MAGIC_LENc'BLADERF_IMAGE_CHECKSUM_LENc'BLADERF_IMAGE_RESERVED_LENp'bladerf_image'magicp'bladerf_image'checksump'bladerf_image'versionp'bladerf_image'timestampp'bladerf_image'serialp'bladerf_image'reservedp'bladerf_image'typep'bladerf_image'addressp'bladerf_image'lengthp'bladerf_image'data p'bladerf_lms_dc_cals'lpf_tuningp'bladerf_lms_dc_cals'tx_lpf_ip'bladerf_lms_dc_cals'tx_lpf_qp'bladerf_lms_dc_cals'rx_lpf_ip'bladerf_lms_dc_cals'rx_lpf_qp'bladerf_lms_dc_cals'dc_refp'bladerf_lms_dc_cals'rxvga2a_ip'bladerf_lms_dc_cals'rxvga2a_qp'bladerf_lms_dc_cals'rxvga2b_ip'bladerf_lms_dc_cals'rxvga2b_qc'BLADERF_GPIO_LMS_RX_ENABLEc'BLADERF_GPIO_LMS_TX_ENABLEc'BLADERF_GPIO_TX_LB_ENABLEc'BLADERF_GPIO_TX_HB_ENABLEc'BLADERF_GPIO_COUNTER_ENABLEc'BLADERF_GPIO_RX_LB_ENABLEc'BLADERF_GPIO_RX_HB_ENABLE%c'BLADERF_GPIO_FEATURE_SMALL_DMA_XFERc'BLADERF_GPIO_TIMESTAMPc'BLADERF_GPIO_TIMESTAMP_DIV2c'BLADERF_FLASH_TOTAL_SIZEc'BLADERF_FLASH_PAGE_SIZEc'BLADERF_FLASH_EB_SIZEc'BLADERF_FLASH_NUM_PAGESc'BLADERF_FLASH_NUM_EBSc'BLADERF_FLASH_ADDR_FIRMWARE!c'BLADERF_FLASH_BYTE_LEN_FIRMWAREc'BLADERF_FLASH_ADDR_CALc'BLADERF_FLASH_BYTE_LEN_CALc'BLADERF_FLASH_EB_LEN_CALc'BLADERF_FLASH_ADDR_FPGAc'BLADERF_FLASH_BYTE_LEN_FPGA$fStorableC'bladerf_lms_dc_cals$fStorableC'bladerf_image$fStorableC'bladerf_version$fStorableC'bladerf_metadata!$fStorableC'bladerf_rational_rate$fStorableC'bladerf_devinfop'bladerf_set_gainc'bladerf_set_gainp'bladerf_get_rxvga2c'bladerf_get_rxvga2p'bladerf_set_rxvga2c'bladerf_set_rxvga2p'bladerf_get_rxvga1c'bladerf_get_rxvga1p'bladerf_set_rxvga1c'bladerf_set_rxvga1p'bladerf_get_lna_gainc'bladerf_get_lna_gainp'bladerf_set_lna_gainc'bladerf_set_lna_gainp'bladerf_get_txvga1c'bladerf_get_txvga1p'bladerf_set_txvga1c'bladerf_set_txvga1p'bladerf_get_txvga2c'bladerf_get_txvga2p'bladerf_set_txvga2c'bladerf_set_txvga2p'bladerf_calibrate_dcc'bladerf_calibrate_dcp'bladerf_xb_spi_writec'bladerf_xb_spi_write"p'bladerf_expansion_gpio_dir_write"c'bladerf_expansion_gpio_dir_write!p'bladerf_expansion_gpio_dir_read!c'bladerf_expansion_gpio_dir_readp'bladerf_expansion_gpio_writec'bladerf_expansion_gpio_writep'bladerf_expansion_gpio_readc'bladerf_expansion_gpio_readp'bladerf_config_gpio_writec'bladerf_config_gpio_writep'bladerf_config_gpio_readc'bladerf_config_gpio_readp'bladerf_lms_get_dc_calsc'bladerf_lms_get_dc_calsp'bladerf_lms_set_dc_calsc'bladerf_lms_set_dc_calsp'bladerf_lms_writec'bladerf_lms_writep'bladerf_lms_readc'bladerf_lms_readp'bladerf_sync_rxc'bladerf_sync_rxp'bladerf_sync_txc'bladerf_sync_txp'bladerf_sync_configc'bladerf_sync_configp'bladerf_si5338_writec'bladerf_si5338_writep'bladerf_si5338_readc'bladerf_si5338_readp'bladerf_write_flashc'bladerf_write_flashp'bladerf_read_flashc'bladerf_read_flashp'bladerf_erase_flashc'bladerf_erase_flashp'bladerf_log_set_verbosityc'bladerf_log_set_verbosityp'bladerf_versionc'bladerf_versionp'bladerf_fw_versionc'bladerf_fw_versionp'bladerf_device_speedc'bladerf_device_speedp'bladerf_load_fpgac'bladerf_load_fpgap'bladerf_fpga_versionc'bladerf_fpga_versionp'bladerf_is_fpga_configuredc'bladerf_is_fpga_configuredp'bladerf_get_fpga_sizec'bladerf_get_fpga_sizep'bladerf_get_vctcxo_trimc'bladerf_get_vctcxo_trimp'bladerf_get_serialc'bladerf_get_serialp'bladerf_xb200_get_pathc'bladerf_xb200_get_pathp'bladerf_xb200_set_pathc'bladerf_xb200_set_pathp'bladerf_xb200_get_filterbankc'bladerf_xb200_get_filterbankp'bladerf_xb200_set_filterbankc'bladerf_xb200_set_filterbank p'bladerf_expansion_get_attached c'bladerf_expansion_get_attachedp'bladerf_expansion_attachc'bladerf_expansion_attachp'bladerf_dac_writec'bladerf_dac_writep'bladerf_get_frequencyc'bladerf_get_frequencyp'bladerf_set_frequencyc'bladerf_set_frequencyp'bladerf_select_bandc'bladerf_select_bandp'bladerf_get_lpf_modec'bladerf_get_lpf_modep'bladerf_set_lpf_modec'bladerf_set_lpf_modep'bladerf_get_bandwidthc'bladerf_get_bandwidthp'bladerf_set_bandwidthc'bladerf_set_bandwidthp'bladerf_get_correctionc'bladerf_get_correctionp'bladerf_set_correctionc'bladerf_set_correction"p'bladerf_get_rational_sample_rate"c'bladerf_get_rational_sample_rate"p'bladerf_set_rational_sample_rate"c'bladerf_set_rational_sample_ratep'bladerf_get_sample_ratec'bladerf_get_sample_ratep'bladerf_set_sample_ratec'bladerf_set_sample_ratep'bladerf_get_samplingc'bladerf_get_samplingp'bladerf_set_samplingc'bladerf_set_samplingp'bladerf_get_loopbackc'bladerf_get_loopbackp'bladerf_set_loopbackc'bladerf_set_loopbackp'bladerf_enable_modulec'bladerf_enable_modulep'bladerf_backend_strc'bladerf_backend_strp'bladerf_devstr_matchesc'bladerf_devstr_matchesp'bladerf_devinfo_matchesc'bladerf_devinfo_matchesp'bladerf_get_devinfo_from_strc'bladerf_get_devinfo_from_strp'bladerf_get_devinfoc'bladerf_get_devinfop'bladerf_init_devinfoc'bladerf_init_devinfop'bladerf_closec'bladerf_closep'bladerf_openc'bladerf_openp'bladerf_open_with_devinfoc'bladerf_open_with_devinfop'bladerf_free_device_listc'bladerf_free_device_listp'bladerf_get_device_listc'bladerf_get_device_listsizesbackendsmodulesformatslgainsvgains correctionsspeeds$fEnumBladeRFSpeed$fShowBladeRFSpeed$fEnumBladeRFCorrection$fEnumBladeRFVGAGainBounds$fEnumBladeRFLNAGain$fEnumBladeRFFormat$fEnumBladeRFModule$fEnumBladeRFBackend$fShowBladeRFBackend$fEnumBladeRFFPGASize$fShowBladeRFFPGASize$fShowBladeRFDeviceInfo$fShowBladeRFVersion openBladeRF closeBladeRF openBladeRF'$fExceptionBladeRFError$fShowBladeRFErrorghc-prim GHC.TypesFalseTrue