26#include "LMS7002M_parameters.h" 
   41#if defined _WIN32 || defined __CYGWIN__ 
   42#   define CALL_CONV __cdecl 
   44#       define API_EXPORT __attribute__ ((dllexport)) 
   46#       define API_EXPORT __declspec(dllexport) 
   48#elif defined _DOXYGEN_ONLY_ 
   56#   define API_EXPORT __attribute__ ((visibility ("default"))) 
  190                                           size_t chan, 
bool enabled);
 
  316                                        size_t chan, 
size_t index);
 
  386                                        size_t chan, 
unsigned gain);
 
  424                                                size_t chan, 
unsigned *gain);
 
  478                                    size_t chan, 
bool enable);
 
  495                               size_t chan, 
bool enabled, 
float_type bandwidth);
 
  513                                        size_t chan, 
double bw, 
unsigned flags);
 
  702                                    size_t chan, 
int index, 
bool downconv);
 
  829                                     struct LMS7Parameter param, uint16_t *val);
 
  841                                      struct LMS7Parameter param, uint16_t val);
 
  873#define BOARD_PARAM_DAC     0 
  875#define BOARD_PARAM_TEMP    1 
  911#define LMS_CLOCK_REF    0x0000 
  913#define LMS_CLOCK_SXR    0x0001 
  915#define LMS_CLOCK_SXT    0x0002 
  917#define LMS_CLOCK_CGEN   0x0003 
  919#define LMS_CLOCK_RXTSP  0x0004 
  921#define LMS_CLOCK_TXTSP  0x0005 
  929#define LMS_CLOCK_EXTREF 0x0006 
 1068#define LMS_ALIGN_CH_PHASE (1<<16) 
 1216                            const void *samples,
size_t sample_count,
 
 1231                                uint8_t chCount, 
size_t sample_count, 
int format);
 
 1331#define LMS_LOG_CRITICAL 0 
 1333#define LMS_LOG_ERROR    1 
 1335#define LMS_LOG_WARNING  2 
 1337#define LMS_LOG_INFO     3 
 1339#define LMS_LOG_DEBUG    4 
double float_type
Floating point data type.
static const int LMS_SUCCESS
convenience constant for good return code
static const int LMS_NCO_VAL_COUNT
Number of NCO frequency/phase offset values.
API_EXPORT int CALL_CONV LMS_GetNCOPhase(lms_device_t *device, bool dir_tx, size_t chan, float_type *phases, float_type *fcw)
API_EXPORT int CALL_CONV LMS_SetGFIR(lms_device_t *device, bool dir_tx, size_t chan, lms_gfir_t filt, bool enabled)
API_EXPORT int CALL_CONV LMS_EnableCache(lms_device_t *dev, bool enable)
API_EXPORT int CALL_CONV LMS_GetGFIRCoeff(lms_device_t *device, bool dir_tx, size_t chan, lms_gfir_t filt, float_type *coef)
API_EXPORT int CALL_CONV LMS_SetNCOFrequency(lms_device_t *device, bool dir_tx, size_t chan, const float_type *freq, float_type pho)
API_EXPORT int CALL_CONV LMS_SetNCOIndex(lms_device_t *device, bool dir_tx, size_t chan, int index, bool downconv)
lms_gfir_t
Enumeration of LMS7 GFIRS.
API_EXPORT int CALL_CONV LMS_SetSampleRateDir(lms_device_t *device, bool dir_tx, float_type rate, size_t oversample)
API_EXPORT int CALL_CONV LMS_SetNCOPhase(lms_device_t *device, bool dir_tx, size_t chan, const float_type *phases, float_type fcw)
API_EXPORT int CALL_CONV LMS_GetNCOIndex(lms_device_t *device, bool dir_tx, size_t chan)
API_EXPORT int CALL_CONV LMS_GetNCOFrequency(lms_device_t *device, bool dir_tx, size_t chan, float_type *freq, float_type *pho)
API_EXPORT int CALL_CONV LMS_SetGFIRCoeff(lms_device_t *device, bool dir_tx, size_t chan, lms_gfir_t filt, const float_type *coef, size_t count)
API_EXPORT int CALL_CONV LMS_GetTestSignal(lms_device_t *device, bool dir_tx, size_t chan, lms_testsig_t *sig)
API_EXPORT int CALL_CONV LMS_GetLPFBW(lms_device_t *device, bool dir_tx, size_t chan, float_type *bandwidth)
API_EXPORT int CALL_CONV LMS_GetLOFrequency(lms_device_t *device, bool dir_tx, size_t chan, float_type *frequency)
API_EXPORT int CALL_CONV LMS_SetGaindB(lms_device_t *device, bool dir_tx, size_t chan, unsigned gain)
API_EXPORT int CALL_CONV LMS_SaveConfig(lms_device_t *device, const char *filename)
API_EXPORT int CALL_CONV LMS_EnableChannel(lms_device_t *device, bool dir_tx, size_t chan, bool enabled)
API_EXPORT int CALL_CONV LMS_GetGaindB(lms_device_t *device, bool dir_tx, size_t chan, unsigned *gain)
API_EXPORT int CALL_CONV LMS_GetSampleRateRange(lms_device_t *device, bool dir_tx, lms_range_t *range)
API_EXPORT int CALL_CONV LMS_SetLOFrequency(lms_device_t *device, bool dir_tx, size_t chan, float_type frequency)
API_EXPORT int CALL_CONV LMS_Calibrate(lms_device_t *device, bool dir_tx, size_t chan, double bw, unsigned flags)
API_EXPORT int CALL_CONV LMS_GetLOFrequencyRange(lms_device_t *device, bool dir_tx, lms_range_t *range)
API_EXPORT int CALL_CONV LMS_SetSampleRate(lms_device_t *device, float_type rate, size_t oversample)
API_EXPORT int CALL_CONV LMS_GetSampleRate(lms_device_t *device, bool dir_tx, size_t chan, float_type *host_Hz, float_type *rf_Hz)
static const bool LMS_CH_RX
Convenience constants for RX selection.
API_EXPORT int CALL_CONV LMS_LoadConfig(lms_device_t *device, const char *filename)
API_EXPORT int CALL_CONV LMS_GetAntenna(lms_device_t *dev, bool dir_tx, size_t chan)
API_EXPORT int CALL_CONV LMS_GetAntennaList(lms_device_t *dev, bool dir_tx, size_t chan, lms_name_t *list)
API_EXPORT int CALL_CONV LMS_Init(lms_device_t *device)
static const bool LMS_CH_TX
Convenience constants for TX selection.
API_EXPORT int CALL_CONV LMS_GetNormalizedGain(lms_device_t *device, bool dir_tx, size_t chan, float_type *gain)
API_EXPORT int CALL_CONV LMS_GetLPFBWRange(lms_device_t *device, bool dir_tx, lms_range_t *range)
API_EXPORT int CALL_CONV LMS_SetLPF(lms_device_t *device, bool dir_tx, size_t chan, bool enable)
API_EXPORT int CALL_CONV LMS_SetGFIRLPF(lms_device_t *device, bool dir_tx, size_t chan, bool enabled, float_type bandwidth)
API_EXPORT int CALL_CONV LMS_GetChipTemperature(lms_device_t *dev, size_t ind, float_type *temp)
API_EXPORT int CALL_CONV LMS_SetTestSignal(lms_device_t *device, bool dir_tx, size_t chan, lms_testsig_t sig, int16_t dc_i, int16_t dc_q)
API_EXPORT int CALL_CONV LMS_SetAntenna(lms_device_t *dev, bool dir_tx, size_t chan, size_t index)
API_EXPORT int CALL_CONV LMS_SetNormalizedGain(lms_device_t *device, bool dir_tx, size_t chan, float_type gain)
API_EXPORT int CALL_CONV LMS_SetLPFBW(lms_device_t *device, bool dir_tx, size_t chan, float_type bandwidth)
API_EXPORT int CALL_CONV LMS_GetAntennaBW(lms_device_t *dev, bool dir_tx, size_t chan, size_t index, lms_range_t *range)
API_EXPORT int CALL_CONV LMS_GetNumChannels(lms_device_t *device, bool dir_tx)
@ LMS_PATH_NONE
No active path (RX or TX)
@ LMS_PATH_LNAW
RX LNA_W port.
@ LMS_PATH_LNAH
RX LNA_H port.
@ LMS_PATH_AUTO
Automatically select port (if supported)
@ LMS_PATH_LNAL
RX LNA_L port.
@ LMS_TESTSIG_DC
DC test signal.
@ LMS_TESTSIG_NCODIV8
Test signal from NCO half scale.
@ LMS_TESTSIG_NONE
Disable test signals. Return to normal operation.
@ LMS_TESTSIG_NCODIV4
Test signal from NCO half scale.
@ LMS_TESTSIG_NCODIV4F
Test signal from NCO full scale.
@ LMS_TESTSIG_NCODIV8F
Test signal from NCO full scale.
void lms_device_t
LMS Device handle.
API_EXPORT int CALL_CONV LMS_GetDeviceList(lms_info_str_t *dev_list)
char lms_info_str_t[256]
Convenience type for fixed length LMS Device information string.
API_EXPORT int CALL_CONV LMS_Open(lms_device_t **device, const lms_info_str_t info, void *args)
API_EXPORT int CALL_CONV LMS_Close(lms_device_t *device)
API_EXPORT int CALL_CONV LMS_WriteFPGAReg(lms_device_t *device, uint32_t address, uint16_t val)
API_EXPORT int CALL_CONV LMS_WriteParam(lms_device_t *device, struct LMS7Parameter param, uint16_t val)
API_EXPORT int CALL_CONV LMS_Synchronize(lms_device_t *dev, bool toChip)
API_EXPORT int CALL_CONV LMS_Reset(lms_device_t *device)
API_EXPORT int CALL_CONV LMS_GPIOWrite(lms_device_t *dev, const uint8_t *buffer, size_t len)
API_EXPORT int CALL_CONV LMS_WriteCustomBoardParam(lms_device_t *device, uint8_t id, float_type val, const lms_name_t units)
API_EXPORT int CALL_CONV LMS_GPIORead(lms_device_t *dev, uint8_t *buffer, size_t len)
API_EXPORT int CALL_CONV LMS_ReadFPGAReg(lms_device_t *device, uint32_t address, uint16_t *val)
API_EXPORT int CALL_CONV LMS_VCTCXOWrite(lms_device_t *dev, uint16_t val)
API_EXPORT int CALL_CONV LMS_GPIODirRead(lms_device_t *dev, uint8_t *buffer, size_t len)
API_EXPORT int CALL_CONV LMS_GetClockFreq(lms_device_t *dev, size_t clk_id, float_type *freq)
API_EXPORT int CALL_CONV LMS_GPIODirWrite(lms_device_t *dev, const uint8_t *buffer, size_t len)
API_EXPORT int CALL_CONV LMS_ReadCustomBoardParam(lms_device_t *device, uint8_t id, float_type *val, lms_name_t units)
API_EXPORT int CALL_CONV LMS_ReadLMSReg(lms_device_t *device, uint32_t address, uint16_t *val)
API_EXPORT int CALL_CONV LMS_SetClockFreq(lms_device_t *dev, size_t clk_id, float_type freq)
API_EXPORT int CALL_CONV LMS_ReadParam(lms_device_t *device, struct LMS7Parameter param, uint16_t *val)
API_EXPORT int CALL_CONV LMS_VCTCXORead(lms_device_t *dev, uint16_t *val)
API_EXPORT int CALL_CONV LMS_WriteLMSReg(lms_device_t *device, uint32_t address, uint16_t val)
API_EXPORT int CALL_CONV LMS_UploadWFM(lms_device_t *device, const void **samples, uint8_t chCount, size_t sample_count, int format)
API_EXPORT int CALL_CONV LMS_GetStreamStatus(lms_stream_t *stream, lms_stream_status_t *status)
API_EXPORT int CALL_CONV LMS_StopStream(lms_stream_t *stream)
API_EXPORT int CALL_CONV LMS_DestroyStream(lms_device_t *dev, lms_stream_t *stream)
API_EXPORT int CALL_CONV LMS_SetupStream(lms_device_t *device, lms_stream_t *stream)
API_EXPORT int CALL_CONV LMS_RecvStream(lms_stream_t *stream, void *samples, size_t sample_count, lms_stream_meta_t *meta, unsigned timeout_ms)
API_EXPORT int CALL_CONV LMS_EnableTxWFM(lms_device_t *device, unsigned chan, bool active)
API_EXPORT int CALL_CONV LMS_SendStream(lms_stream_t *stream, const void *samples, size_t sample_count, const lms_stream_meta_t *meta, unsigned timeout_ms)
API_EXPORT int CALL_CONV LMS_StartStream(lms_stream_t *stream)
API_EXPORT const lms_dev_info_t *CALL_CONV LMS_GetDeviceInfo(lms_device_t *device)
API_EXPORT int CALL_CONV LMS_GetProgramModes(lms_device_t *device, lms_name_t *list)
API_EXPORT const char * LMS_GetLibraryVersion(void)
Returns API library version.
API_EXPORT const char *CALL_CONV LMS_GetLastErrorMessage(void)
API_EXPORT int CALL_CONV LMS_Program(lms_device_t *device, const char *data, size_t size, const lms_name_t mode, lms_prog_callback_t callback)
API_EXPORT void LMS_RegisterLogHandler(LMS_LogHandler handler)
void(* LMS_LogHandler)(int lvl, const char *msg)
bool(* lms_prog_callback_t)(int bsent, int btotal, const char *progressMsg)
char protocolVersion[16]
The protocol version as a string.
char deviceName[32]
The display name of the device.
uint64_t boardSerialNumber
A unique board serial number.
char expansionName[32]
The display name of the expansion card.
char gatewareVersion[16]
Gateware version as a string.
char firmwareVersion[16]
The firmware version as a string.
char gatewareTargetBoard[32]
Which board should use this gateware.
char hardwareVersion[16]
The hardware version as a string.
float_type step
Minimum value step.
float_type min
Minimum allowed value.
float_type max
Maximum allowed value.
float_type sampleRate
Currently not used.
bool active
Indicates whether the stream is currently active.
float_type linkRate
Data transfer rate (B/s) over the last 1 s per direction per LMS chip.
uint32_t overrun
FIFO overrun count since the last call to LMS_GetStreamStatus()
uint64_t timestamp
The most recently received Rx timestamp, or the last timestamp submitted to Tx.
uint32_t underrun
FIFO underrun count since the last call to LMS_GetStreamStatus()
uint32_t droppedPackets
Number of dropped packets by HW since the last call to LMS_GetStreamStatus()
uint32_t fifoFilledCount
Number of samples in FIFO buffer.
uint32_t fifoSize
Size (in samples) of FIFO buffer.
uint32_t channel
Channel number, starts at 0. Can be combined with additional flags (Additional streaming options)
float throughputVsLatency
Parameter for controlling configuration bias toward low latency or high data throughput range [0,...
@ LMS_LINK_FMT_I12
12-bit integers
@ LMS_LINK_FMT_I16
16-bit integers
@ LMS_FMT_F32
32-bit floating point
@ LMS_FMT_I16
16-bit integers
@ LMS_FMT_I12
12-bit integers stored in 16-bit variables
size_t handle
Stream handle. Should not be modified manually. Assigned by LMS_SetupStream().
bool isTx
Indicates whether stream is TX (true) or RX (false)
uint32_t fifoSize
FIFO size (in samples) used by stream.