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)
1109 LMS_LINK_FMT_DEFAULT=0,
1216 const void *samples,
size_t sample_count,
1231 uint8_t chCount,
size_t sample_count,
int format);
1288 char deviceName[32];
1289 char expansionName[32];
1290 char firmwareVersion[16];
1291 char hardwareVersion[16];
1292 char protocolVersion[16];
1294 char gatewareVersion[16];
1295 char gatewareTargetBoard[32];
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)
uint64_t boardSerialNumber
A unique board serial number.
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_I16
16-bit integers
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)
@ LMS_FMT_I16
16-bit integers
uint32_t fifoSize
FIFO size (in samples) used by stream.