SM API
sm_api.h
Go to the documentation of this file.
1// Copyright (c).2025, Signal Hound, Inc.
2// For licensing information, please see the API license in the software_licenses folder
3
13#ifndef SM_API_H
14#define SM_API_H
15
16#if defined(_WIN32) // Windows
17 #ifdef SM_EXPORTS
18 #define SM_API __declspec(dllexport)
19 #else
20 #define SM_API
21 #endif
22
23 // bare minimum stdint typedef support
24 #if _MSC_VER < 1700 // For VS2010 or earlier
25 typedef signed char int8_t;
26 typedef short int16_t;
27 typedef int int32_t;
28 typedef long long int64_t;
29 typedef unsigned char uint8_t;
30 typedef unsigned short uint16_t;
31 typedef unsigned int uint32_t;
32 typedef unsigned long long uint64_t;
33 #else
34 #include <stdint.h>
35 #endif
36
37 #define SM_DEPRECATED(comment) __declspec(deprecated(comment))
38#else // Linux
39 #include <stdint.h>
40 #define SM_API __attribute__((visibility("default")))
41
42 #if defined(__GNUC__)
43 #define SM_DEPRECATED(comment) __attribute__((deprecated))
44 #else
45 #define SM_DEPRECATED(comment) comment
46 #endif
47#endif
48
49#define SM_INVALID_HANDLE (-1)
50
52#define SM_TRUE (1)
54#define SM_FALSE (0)
55
57#define SM_MAX_DEVICES (16)
58
60#define SM_ADDR_ANY ("0.0.0.0")
62#define SM_DEFAULT_ADDR ("192.168.2.10")
64#define SM_DEFAULT_PORT (51665)
65
67#define SM_AUTO_ATTEN (-1)
69#define SM_MAX_ATTEN (6)
71#define SM_MAX_REF_LEVEL (20.0)
72
74#define SM_MAX_SWEEP_QUEUE_SZ (16)
75
77#define SM200_MIN_FREQ (100.0e3)
79#define SM200_MAX_FREQ (20.6e9)
81#define SM435_MIN_FREQ (100.0e3)
83#define SM435_MAX_FREQ (44.2e9)
85#define SM435_MAX_FREQ_IF_OPT (40.8e9)
86
88#define SM_MAX_IQ_DECIMATION (4096)
89
94#define SM_PRESELECTOR_MAX_FREQ (645.0e6)
95
97#define SM_FAST_SWEEP_MIN_RBW (30.0e3)
98
100#define SM_REAL_TIME_MIN_SPAN (200.0e3)
102#define SM_REAL_TIME_MAX_SPAN (160.0e6)
103
105#define SM_MIN_SWEEP_TIME (1.0e-6)
107#define SM_MAX_SWEEP_TIME (100.0)
108
110#define SM_SPI_MAX_BYTES (4)
111
113#define SM_GPIO_SWEEP_MAX_STEPS (64)
114
116#define SM_GPIO_SWITCH_MAX_STEPS (64)
118#define SM_GPIO_SWITCH_MIN_COUNT (2)
120#define SM_GPIO_SWITCH_MAX_COUNT (4194303 - 1)
121
123#define SM_TEMP_WARNING (95.0)
125#define SM_TEMP_MAX (102.0)
126
128#define SM_MAX_SEGMENTED_IQ_SEGMENTS (250)
130#define SM_MAX_SEGMENTED_IQ_SAMPLES (520e6)
131
133#define SM435_IF_OUTPUT_FREQ (1.5e9)
135#define SM435_IF_OUTPUT_MIN_FREQ (24.0e9)
137#define SM435_IF_OUTPUT_MAX_FREQ (43.5e9)
138
142typedef enum SmStatus {
143 // Internal use
144 smCalErr = -1003,
145 // Internal use
146 smMeasErr = -1002,
147 // Internal use
148 smErrorIOErr = -1001,
149
156
169
171 smGPSErr = -17,
178
203
206
229} SmStatus;
230
234typedef enum SmDataType {
240
244typedef enum SmMode {
259
260 // Deprecated, use smModeIQStreaming
261 smModeIQ = 3,
262} SmMode;
263
267typedef enum SmSweepSpeed {
275
285
289typedef enum SmPowerState {
295
299typedef enum SmDetector {
305
309typedef enum SmScale {
317
321typedef enum SmVideoUnits {
329 smVideoSample = 3
331
335typedef enum SmWindowType {
347 smWindowRect = 6
349
353typedef enum SmTriggerType {
363
367typedef enum SmTriggerEdge {
373
378typedef enum SmBool {
382 smTrue = 1
384
388typedef enum SmGPIOState {
394
398typedef enum SmReference {
404
408typedef enum SmDeviceType {
420
424typedef enum SmAudioType {
434 smAudioTypeCW = 4
436
440typedef enum SmGPSState {
448
453typedef enum SmGPSPlatformModel {
491
495typedef struct SmGPIOStep {
497 double freq;
499 uint8_t mask;
500} SmGPIOStep;
501
505typedef struct SmDeviceDiagnostics {
507 float voltage;
513 float current58;
519 float tempOCXO;
521 float tempVCO;
527
528#ifdef __cplusplus
529extern "C" {
530#endif
531
551SM_API SmStatus smGetDeviceList(int *serials, int *deviceCount);
552
576SM_API SmStatus smGetDeviceList2(int *serials, SmDeviceType *deviceTypes, int *deviceCount);
577
590SM_API SmStatus smOpenDevice(int *device);
591
603SM_API SmStatus smOpenDeviceBySerial(int *device, int serialNumber);
604
633 const char *hostAddr,
634 const char *deviceAddr,
635 uint16_t port);
636
649SM_API SmStatus smCloseDevice(int device);
650
665SM_API SmStatus smPreset(int device);
666
678SM_API SmStatus smPresetSerial(int serialNumber);
679
696SM_API SmStatus smNetworkedSpeedTest(int device, double durationSeconds, double *bytesPerSecond);
697
711SM_API SmStatus smGetDeviceInfo(int device, SmDeviceType *deviceType, int *serialNumber);
712
727SM_API SmStatus smGetFirmwareVersion(int device, int *major, int *minor, int *revision);
728
739SM_API SmStatus smHasIFOutput(int device, SmBool *present);
740
757SM_API SmStatus smGetDeviceDiagnostics(int device, float *voltage, float *current, float *temperature);
758
771
791 float *temp,
792 float *voltage,
793 float *txPower,
794 float *rxPower);
795
806SM_API SmStatus smSetPowerState(int device, SmPowerState powerState);
807
817SM_API SmStatus smGetPowerState(int device, SmPowerState *powerState);
818
834SM_API SmStatus smSetAttenuator(int device, int atten);
835
846SM_API SmStatus smGetAttenuator(int device, int *atten);
847
860SM_API SmStatus smSetRefLevel(int device, double refLevel);
861
871SM_API SmStatus smGetRefLevel(int device, double *refLevel);
872
883SM_API SmStatus smSetPreselector(int device, SmBool enabled);
884
894SM_API SmStatus smGetPreselector(int device, SmBool *enabled);
895
908SM_API SmStatus smSetGPIOState(int device, SmGPIOState lowerState, SmGPIOState upperState);
909
921SM_API SmStatus smGetGPIOState(int device, SmGPIOState *lowerState, SmGPIOState *upperState);
922
935SM_API SmStatus smWriteGPIOImm(int device, uint8_t data);
936
953SM_API SmStatus smReadGPIOImm(int device, uint8_t *data);
954
966SM_API SmStatus smWriteSPI(int device, uint32_t data, int byteCount);
967
978
993SM_API SmStatus smSetGPIOSweep(int device, SmGPIOStep *steps, int stepCount);
994
1007
1023SM_API SmStatus smSetGPIOSwitching(int device, uint8_t *gpio, uint32_t *counts, int gpioSteps);
1024
1036SM_API SmStatus smSetExternalReference(int device, SmBool enabled);
1037
1047SM_API SmStatus smGetExternalReference(int device, SmBool *enabled);
1048
1061SM_API SmStatus smSetReference(int device, SmReference reference);
1062
1072SM_API SmStatus smGetReference(int device, SmReference *reference);
1073
1085SM_API SmStatus smSetGPSTimebaseUpdate(int device, SmBool enabled);
1086
1097SM_API SmStatus smGetGPSTimebaseUpdate(int device, SmBool *enabled);
1098
1116SM_API SmStatus smGetGPSHoldoverInfo(int device, SmBool *usingGPSHoldover, uint64_t *lastHoldoverTime);
1117
1128SM_API SmStatus smGetGPSState(int device, SmGPSState *GPSState);
1129
1139SM_API SmStatus smSetSweepSpeed(int device, SmSweepSpeed sweepSpeed);
1140
1152SM_API SmStatus smSetSweepCenterSpan(int device, double centerFreqHz, double spanHz);
1153
1165SM_API SmStatus smSetSweepStartStop(int device, double startFreqHz, double stopFreqHz);
1166
1182SM_API SmStatus smSetSweepCoupling(int device, double rbw, double vbw, double sweepTime);
1183
1195SM_API SmStatus smSetSweepDetector(int device, SmDetector detector, SmVideoUnits videoUnits);
1196
1206SM_API SmStatus smSetSweepScale(int device, SmScale scale);
1207
1217SM_API SmStatus smSetSweepWindow(int device, SmWindowType window);
1218
1228SM_API SmStatus smSetSweepSpurReject(int device, SmBool spurRejectEnabled);
1229
1241SM_API SmStatus smSetRealTimeCenterSpan(int device, double centerFreqHz, double spanHz);
1242
1252SM_API SmStatus smSetRealTimeRBW(int device, double rbw);
1253
1263SM_API SmStatus smSetRealTimeDetector(int device, SmDetector detector);
1264
1280SM_API SmStatus smSetRealTimeScale(int device, SmScale scale, double frameRef, double frameScale);
1281
1291SM_API SmStatus smSetRealTimeWindow(int device, SmWindowType window);
1292
1304
1314SM_API SmStatus smSetIQDataType(int device, SmDataType dataType);
1315
1325SM_API SmStatus smSetIQCenterFreq(int device, double centerFreqHz);
1326
1336SM_API SmStatus smGetIQCenterFreq(int device, double *centerFreqHz);
1337
1348SM_API SmStatus smSetIQSampleRate(int device, int decimation);
1349
1363SM_API SmStatus smSetIQBandwidth(int device, SmBool enableSoftwareFilter, double bandwidth);
1364
1375
1386SM_API SmStatus smSetIQTriggerSentinel(double sentinelValue);
1387
1406SM_API SmStatus smSetIQQueueSize(int device, float ms);
1407
1417SM_API SmStatus smSetIQSweepListDataType(int device, SmDataType dataType);
1418
1431SM_API SmStatus smSetIQSweepListCorrected(int device, SmBool corrected);
1432
1442SM_API SmStatus smSetIQSweepListSteps(int device, int steps);
1443
1453SM_API SmStatus smGetIQSweepListSteps(int device, int *steps);
1454
1469SM_API SmStatus smSetIQSweepListFreq(int device, int step, double freq);
1470
1485SM_API SmStatus smSetIQSweepListRef(int device, int step, double level);
1486
1503SM_API SmStatus smSetIQSweepListAtten(int device, int step, int atten);
1504
1521SM_API SmStatus smSetIQSweepListSampleCount(int device, int step, uint32_t samples);
1522
1532SM_API SmStatus smSetSegIQDataType(int device, SmDataType dataType);
1533
1543SM_API SmStatus smSetSegIQCenterFreq(int device, double centerFreqHz);
1544
1557SM_API SmStatus smSetSegIQVideoTrigger(int device, double triggerLevel, SmTriggerEdge triggerEdge);
1558
1569SM_API SmStatus smSetSegIQExtTrigger(int device, SmTriggerEdge extTriggerEdge);
1570
1596 int fftSize,
1597 const double *frequencies,
1598 const double *ampls,
1599 int count);
1600
1611SM_API SmStatus smSetSegIQSegmentCount(int device, int segmentCount);
1612
1637SM_API SmStatus smSetSegIQSegment(int device,
1638 int segment,
1639 SmTriggerType triggerType,
1640 int preTrigger,
1641 int captureSize,
1642 double timeoutSeconds);
1643
1653SM_API SmStatus smSetAudioCenterFreq(int device, double centerFreqHz);
1654
1664SM_API SmStatus smSetAudioType(int device, SmAudioType audioType);
1665
1679SM_API SmStatus smSetAudioFilters(int device,
1680 double ifBandwidth,
1681 double audioLpf,
1682 double audioHpf);
1683
1693SM_API SmStatus smSetAudioFMDeemphasis(int device, double deemphasis);
1694
1709SM_API SmStatus smConfigure(int device, SmMode mode);
1710
1720SM_API SmStatus smGetCurrentMode(int device, SmMode *mode);
1721
1731SM_API SmStatus smAbort(int device);
1732
1756 double *actualRBW,
1757 double *actualVBW,
1758 double *actualStartFreq,
1759 double *binSize,
1760 int *sweepSize);
1761
1789 double *actualRBW,
1790 int *sweepSize,
1791 double *actualStartFreq,
1792 double *binSize,
1793 int *frameWidth,
1794 int *frameHeight,
1795 double *poi);
1796
1810SM_API SmStatus smGetIQParameters(int device, double *sampleRate, double *bandwidth);
1811
1824SM_API SmStatus smGetIQCorrection(int device, float *scale);
1825
1841SM_API SmStatus smIQSweepListGetCorrections(int device, float *corrections);
1842
1856SM_API SmStatus smSegIQGetMaxCaptures(int device, int *maxCaptures);
1857
1876SM_API SmStatus smGetSweep(int device, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch);
1877
1892SM_API SmStatus smSetSweepGPIO(int device, int pos, uint8_t data);
1893
1904SM_API SmStatus smStartSweep(int device, int pos);
1905
1922SM_API SmStatus smFinishSweep(int device, int pos, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch);
1923
1951 float *colorFrame,
1952 float *alphaFrame,
1953 float *sweepMin,
1954 float *sweepMax,
1955 int *frameCount,
1956 int64_t *nsSinceEpoch);
1957
1997SM_API SmStatus smGetIQ(int device,
1998 void *iqBuf,
1999 int iqBufSize,
2000 double *triggers,
2001 int triggerBufSize,
2002 int64_t *nsSinceEpoch,
2003 SmBool purge,
2004 int *sampleLoss,
2005 int *samplesRemaining);
2006
2030SM_API SmStatus smIQSweepListGetSweep(int device, void *dst, int64_t *timestamps);
2031
2057SM_API SmStatus smIQSweepListStartSweep(int device, int pos, void *dst, int64_t *timestamps);
2058
2069SM_API SmStatus smIQSweepListFinishSweep(int device, int pos);
2070
2081SM_API SmStatus smSegIQCaptureStart(int device, int capture);
2082
2094SM_API SmStatus smSegIQCaptureWait(int device, int capture);
2095
2107SM_API SmStatus smSegIQCaptureWaitAsync(int device, int capture, SmBool *completed);
2108
2124SM_API SmStatus smSegIQCaptureTimeout(int device, int capture, int segment, SmBool *timedOut);
2125
2148SM_API SmStatus smSegIQCaptureTime(int device, int capture, int segment, int64_t *nsSinceEpoch);
2149
2171SM_API SmStatus smSegIQCaptureRead(int device, int capture, int segment, void *iq, int offset, int len);
2172
2182SM_API SmStatus smSegIQCaptureFinish(int device, int capture);
2183
2208 int capture,
2209 void *iq,
2210 int offset,
2211 int len,
2212 int64_t *nsSinceEpoch,
2213 SmBool *timedOut);
2214
2243SM_API SmStatus smSegIQLTEResample(float *input,
2244 int inputLen,
2245 float *output,
2246 int *outputLen,
2247 bool clearDelayLine);
2248
2259SM_API SmStatus smSetIQFullBandAtten(int device, int atten);
2260
2273SM_API SmStatus smSetIQFullBandCorrected(int device, SmBool corrected);
2274
2285SM_API SmStatus smSetIQFullBandSamples(int device, int samples);
2286
2298SM_API SmStatus smSetIQFullBandTriggerType(int device, SmTriggerType triggerType);
2299
2309SM_API SmStatus smSetIQFullBandVideoTrigger(int device, double triggerLevel);
2310
2324SM_API SmStatus smSetIQFullBandTriggerTimeout(int device, double triggerTimeout);
2325
2369SM_API SmStatus smGetIQFullBand(int device, float *iq, int freq);
2370
2438SM_API SmStatus smGetIQFullBandSweep(int device, float *iq, int startIndex, int stepSize, int steps);
2439
2455SM_API SmStatus smGetAudio(int device, float *audio);
2456
2502SM_API SmStatus smGetGPSInfo(int device,
2503 SmBool refresh,
2504 SmBool *updated,
2505 int64_t *secSinceEpoch,
2506 double *latitude,
2507 double *longitude,
2508 double *altitude,
2509 char *nmea,
2510 int *nmeaLen);
2511
2526SM_API SmStatus smWriteToGPS(int device, const uint8_t *mem, int len);
2527
2549SM_API SmStatus smSetGPSPlatformModel(int device, SmGPSPlatformModel platformModel);
2550
2563SM_API SmStatus smSetFanThreshold(int device, int temp);
2564
2574SM_API SmStatus smGetFanThreshold(int device, int *temp);
2575
2589SM_API SmStatus smSetIFOutput(int device, double frequency);
2590
2600SM_API SmStatus smGetCalDate(int device, uint64_t *lastCalDate);
2601
2626SM_API SmStatus smBroadcastNetworkConfig(const char *hostAddr,
2627 const char *deviceAddr,
2628 uint16_t port,
2629 SmBool nonVolatile);
2630
2644SM_API SmStatus smNetworkConfigGetDeviceList(int *serials, int *deviceCount);
2645
2659SM_API SmStatus smNetworkConfigOpenDevice(int *device, int serialNumber);
2660
2674
2690SM_API SmStatus smNetworkConfigGetMAC(int device, char *mac);
2691
2711SM_API SmStatus smNetworkConfigSetIP(int device, const char *addr, SmBool nonVolatile);
2712
2729SM_API SmStatus smNetworkConfigGetIP(int device, char *addr);
2730
2747SM_API SmStatus smNetworkConfigSetPort(int device, int port, SmBool nonVolatile);
2748
2762SM_API SmStatus smNetworkConfigGetPort(int device, int *port);
2763
2779SM_API const char* smGetAPIVersion();
2780
2789SM_API const char* smGetErrorString(SmStatus status);
2790
2791SM_DEPRECATED("smSetIQUSBQueueSize has been deprecated, use smSetIQQueueSize")
2792SM_API SmStatus smSetIQUSBQueueSize(int device, float ms);
2793
2794#ifdef __cplusplus
2795} // Extern "C"
2796#endif
2797
2798// Deprecated macros
2799#define SM200A_AUTO_ATTEN (SM_AUTO_ATTEN)
2800#define SM200A_MAX_ATTEN (SM_MAX_ATTEN)
2801#define SM200A_MAX_REF_LEVEL (SM_MAX_REF_LEVEL)
2802#define SM200A_MAX_SWEEP_QUEUE_SZ (SM_MAX_SWEEP_QUEUE_SZ)
2803#define SM200A_MIN_FREQ (SM200_MIN_FREQ)
2804#define SM200A_MAX_FREQ (SM200_MAX_FREQ)
2805#define SM200A_MAX_IQ_DECIMATION (SM_MAX_IQ_DECIMATION)
2806#define SM200A_PRESELECTOR_MAX_FREQ (SM_PRESELECTOR_MAX_FREQ)
2807#define SM200A_FAST_SWEEP_MIN_RBW (SM_FAST_SWEEP_MIN_RBW)
2808#define SM200A_RTSA_MIN_SPAN (SM_REAL_TIME_MIN_SPAN)
2809#define SM200A_RTSA_MAX_SPAN (SM_REAL_TIME_MAX_SPAN)
2810#define SM200A_MIN_SWEEP_TIME (SM_MIN_SWEEP_TIME)
2811#define SM200A_MAX_SWEEP_TIME (SM_MAX_SWEEP_TIME)
2812#define SM200A_SPI_MAX_BYTES (SM_SPI_MAX_BYTES)
2813#define SM200A_GPIO_SWEEP_MAX_STEPS (SM_GPIO_SWEEP_MAX_STEPS)
2814#define SM200A_GPIO_SWITCH_MAX_STEPS (SM_GPIO_SWITCH_MAX_STEPS)
2815#define SM200A_GPIO_SWITCH_MIN_COUNT (SM_GPIO_SWITCH_MIN_COUNT)
2816#define SM200A_GPIO_SWITCH_MAX_COUNT (SM_GPIO_SWITCH_MAX_COUNT)
2817#define SM200A_TEMP_WARNING (SM_TEMP_WARNING)
2818#define SM200A_TEMP_MAX (SM_TEMP_MAX)
2819#define SM200B_MAX_SEGMENTED_IQ_SEGMENTS (SM_MAX_SEGMENTED_IQ_SEGMENTS)
2820#define SM200B_MAX_SEGMENTED_IQ_SAMPLES (SM_MAX_SEGMENTED_IQ_SAMPLES)
2821#define SM200_ADDR_ANY (SM_ADDR_ANY)
2822#define SM200_DEFAULT_ADDR (SM_DEFAULT_ADDR)
2823#define SM200_DEFAULT_PORT (SM_DEFAULT_PORT)
2824
2825#endif // SM_API_H
SM_API SmStatus smIQSweepListStartSweep(int device, int pos, void *dst, int64_t *timestamps)
SM_API SmStatus smOpenDevice(int *device)
SM_API SmStatus smGetIQFullBandSweep(int device, float *iq, int startIndex, int stepSize, int steps)
SmScale
Definition: sm_api.h:309
@ smScaleLog
Definition: sm_api.h:311
@ smScaleLin
Definition: sm_api.h:313
@ smScaleFullScale
Definition: sm_api.h:315
SM_API SmStatus smNetworkConfigGetMAC(int device, char *mac)
SM_API SmStatus smSetIQCenterFreq(int device, double centerFreqHz)
SM_API SmStatus smGetFullDeviceDiagnostics(int device, SmDeviceDiagnostics *diagnostics)
SM_API const char * smGetAPIVersion()
SM_API SmStatus smSetSweepSpeed(int device, SmSweepSpeed sweepSpeed)
SM_API SmStatus smIQSweepListFinishSweep(int device, int pos)
SM_API SmStatus smSetSweepWindow(int device, SmWindowType window)
SM_API SmStatus smSetIQExtTriggerEdge(int device, SmTriggerEdge edge)
SM_API SmStatus smNetworkConfigOpenDevice(int *device, int serialNumber)
SM_API SmStatus smSetIQFullBandAtten(int device, int atten)
SM_API SmStatus smSetIQSweepListSampleCount(int device, int step, uint32_t samples)
SM_API SmStatus smSetRealTimeRBW(int device, double rbw)
SM_API SmStatus smGetRealTimeFrame(int device, float *colorFrame, float *alphaFrame, float *sweepMin, float *sweepMax, int *frameCount, int64_t *nsSinceEpoch)
SM_API SmStatus smSetRealTimeCenterSpan(int device, double centerFreqHz, double spanHz)
SM_API SmStatus smSetSweepCoupling(int device, double rbw, double vbw, double sweepTime)
SM_API SmStatus smSetIQDataType(int device, SmDataType dataType)
SM_API SmStatus smGetAudio(int device, float *audio)
SM_API SmStatus smSetSweepDetector(int device, SmDetector detector, SmVideoUnits videoUnits)
SM_API SmStatus smSetSweepStartStop(int device, double startFreqHz, double stopFreqHz)
SM_API SmStatus smSetRealTimeScale(int device, SmScale scale, double frameRef, double frameScale)
SM_API SmStatus smGetDeviceInfo(int device, SmDeviceType *deviceType, int *serialNumber)
SM_API SmStatus smGetIQ(int device, void *iqBuf, int iqBufSize, double *triggers, int triggerBufSize, int64_t *nsSinceEpoch, SmBool purge, int *sampleLoss, int *samplesRemaining)
SM_API SmStatus smNetworkConfigCloseDevice(int device)
SM_API SmStatus smGetCurrentMode(int device, SmMode *mode)
SM_API SmStatus smSetSegIQSegmentCount(int device, int segmentCount)
SM_API SmStatus smGetSweep(int device, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch)
SM_API SmStatus smSetGPIOSweepDisabled(int device)
SmGPSState
Definition: sm_api.h:440
@ smGPSStateDisciplined
Definition: sm_api.h:446
@ smGPSStateNotPresent
Definition: sm_api.h:442
@ smGPSStateLocked
Definition: sm_api.h:444
SM_API SmStatus smSegIQLTEResample(float *input, int inputLen, float *output, int *outputLen, bool clearDelayLine)
SM_API SmStatus smSetIQFullBandVideoTrigger(int device, double triggerLevel)
SM_API SmStatus smSetIQFullBandTriggerType(int device, SmTriggerType triggerType)
SM_API SmStatus smGetPowerState(int device, SmPowerState *powerState)
SM_API SmStatus smSetIQSweepListDataType(int device, SmDataType dataType)
SM_API SmStatus smGetSweepParameters(int device, double *actualRBW, double *actualVBW, double *actualStartFreq, double *binSize, int *sweepSize)
SM_API SmStatus smGetIQCenterFreq(int device, double *centerFreqHz)
SmTriggerType
Definition: sm_api.h:353
@ smTriggerTypeImm
Definition: sm_api.h:355
@ smTriggerTypeExt
Definition: sm_api.h:359
@ smTriggerTypeFMT
Definition: sm_api.h:361
@ smTriggerTypeVideo
Definition: sm_api.h:357
SmGPSPlatformModel
Definition: sm_api.h:453
@ SmGPSPlatformModelAirborne_1g
Definition: sm_api.h:484
@ SmGPSPlatformModelAtSea
Definition: sm_api.h:479
@ SmGPSPlatformModelPortable
Definition: sm_api.h:458
@ SmGPSPlatformModelAutomotive
Definition: sm_api.h:474
@ SmGPSPlatformModelPedestrian
Definition: sm_api.h:469
@ SmGPSPlatformModelStationary
Definition: sm_api.h:464
@ SmGPSPlatformModelAirborne_2g
Definition: sm_api.h:489
SM_API SmStatus smSetSweepGPIO(int device, int pos, uint8_t data)
SM_API SmStatus smSetAudioCenterFreq(int device, double centerFreqHz)
SM_API SmStatus smSetIQBandwidth(int device, SmBool enableSoftwareFilter, double bandwidth)
SM_API SmStatus smSetSweepScale(int device, SmScale scale)
SM_API SmStatus smGetReference(int device, SmReference *reference)
SM_API SmStatus smSetIQBaseSampleRate(int device, SmIQStreamSampleRate sampleRate)
SM_API SmStatus smGetIQFullBand(int device, float *iq, int freq)
SmDataType
Definition: sm_api.h:234
@ smDataType16sc
Definition: sm_api.h:238
@ smDataType32fc
Definition: sm_api.h:236
SM_API SmStatus smOpenNetworkedDevice(int *device, const char *hostAddr, const char *deviceAddr, uint16_t port)
SM_API SmStatus smSetIQQueueSize(int device, float ms)
SM_API SmStatus smGetAttenuator(int device, int *atten)
SM_API SmStatus smNetworkConfigGetIP(int device, char *addr)
SM_API SmStatus smSegIQCaptureStart(int device, int capture)
SM_API SmStatus smSetGPIOSwitchingDisabled(int device)
SmAudioType
Definition: sm_api.h:424
@ smAudioTypeAM
Definition: sm_api.h:426
@ smAudioTypeFM
Definition: sm_api.h:428
@ smAudioTypeUSB
Definition: sm_api.h:430
@ smAudioTypeCW
Definition: sm_api.h:434
@ smAudioTypeLSB
Definition: sm_api.h:432
SM_API SmStatus smNetworkConfigSetIP(int device, const char *addr, SmBool nonVolatile)
SM_API SmStatus smGetGPSInfo(int device, SmBool refresh, SmBool *updated, int64_t *secSinceEpoch, double *latitude, double *longitude, double *altitude, char *nmea, int *nmeaLen)
SM_API SmStatus smSetIQTriggerSentinel(double sentinelValue)
SM_API SmStatus smSetGPIOSweep(int device, SmGPIOStep *steps, int stepCount)
SM_API SmStatus smSetSegIQFMTParams(int device, int fftSize, const double *frequencies, const double *ampls, int count)
SM_API SmStatus smSegIQCaptureWaitAsync(int device, int capture, SmBool *completed)
SM_API SmStatus smSegIQCaptureRead(int device, int capture, int segment, void *iq, int offset, int len)
SM_API SmStatus smSetAttenuator(int device, int atten)
SM_API SmStatus smWriteSPI(int device, uint32_t data, int byteCount)
SM_API SmStatus smSetSegIQExtTrigger(int device, SmTriggerEdge extTriggerEdge)
SM_API SmStatus smHasIFOutput(int device, SmBool *present)
SM_API SmStatus smWriteGPIOImm(int device, uint8_t data)
SM_API SmStatus smSetReference(int device, SmReference reference)
SmVideoUnits
Definition: sm_api.h:321
@ smVideoPower
Definition: sm_api.h:327
@ smVideoLog
Definition: sm_api.h:323
@ smVideoSample
Definition: sm_api.h:329
@ smVideoVoltage
Definition: sm_api.h:325
SM_API SmStatus smIQSweepListGetCorrections(int device, float *corrections)
SM_API SmStatus smAbort(int device)
SM_API SmStatus smGetIQParameters(int device, double *sampleRate, double *bandwidth)
SmBool
Definition: sm_api.h:378
@ smFalse
Definition: sm_api.h:380
@ smTrue
Definition: sm_api.h:382
SM_API SmStatus smGetDeviceDiagnostics(int device, float *voltage, float *current, float *temperature)
SmDeviceType
Definition: sm_api.h:408
@ smDeviceTypeSM200C
Definition: sm_api.h:414
@ smDeviceTypeSM435C
Definition: sm_api.h:418
@ smDeviceTypeSM200B
Definition: sm_api.h:412
@ smDeviceTypeSM200A
Definition: sm_api.h:410
@ smDeviceTypeSM435B
Definition: sm_api.h:416
SM_API SmStatus smNetworkConfigGetDeviceList(int *serials, int *deviceCount)
SM_API SmStatus smStartSweep(int device, int pos)
SmWindowType
Definition: sm_api.h:335
@ smWindowHamming
Definition: sm_api.h:343
@ smWindowGaussian6dB
Definition: sm_api.h:345
@ smWindowRect
Definition: sm_api.h:347
@ smWindowBlackman
Definition: sm_api.h:341
@ smWindowNutall
Definition: sm_api.h:339
@ smWindowFlatTop
Definition: sm_api.h:337
SM_API SmStatus smOpenDeviceBySerial(int *device, int serialNumber)
SM_API SmStatus smGetGPSHoldoverInfo(int device, SmBool *usingGPSHoldover, uint64_t *lastHoldoverTime)
SM_API SmStatus smSetIQFullBandCorrected(int device, SmBool corrected)
SM_API SmStatus smGetExternalReference(int device, SmBool *enabled)
SM_API SmStatus smSetSegIQCenterFreq(int device, double centerFreqHz)
SmMode
Definition: sm_api.h:244
@ smModeAudio
Definition: sm_api.h:258
@ smModeIQSegmentedCapture
Definition: sm_api.h:254
@ smModeSweeping
Definition: sm_api.h:248
@ smModeIdle
Definition: sm_api.h:246
@ smModeRealTime
Definition: sm_api.h:250
@ smModeIQStreaming
Definition: sm_api.h:252
@ smModeIQSweepList
Definition: sm_api.h:256
SM_API SmStatus smSetPreselector(int device, SmBool enabled)
SM_API SmStatus smSetIQSampleRate(int device, int decimation)
SM_API SmStatus smSetSegIQVideoTrigger(int device, double triggerLevel, SmTriggerEdge triggerEdge)
SM_API SmStatus smNetworkConfigSetPort(int device, int port, SmBool nonVolatile)
SM_API SmStatus smGetDeviceList(int *serials, int *deviceCount)
SM_API SmStatus smSetIQSweepListCorrected(int device, SmBool corrected)
SM_API SmStatus smSetIFOutput(int device, double frequency)
SM_API SmStatus smFinishSweep(int device, int pos, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch)
SM_API SmStatus smSetFanThreshold(int device, int temp)
SM_API SmStatus smSetRefLevel(int device, double refLevel)
SM_API SmStatus smSetIQFullBandSamples(int device, int samples)
SmGPIOState
Definition: sm_api.h:388
@ smGPIOStateInput
Definition: sm_api.h:392
@ smGPIOStateOutput
Definition: sm_api.h:390
SM_API SmStatus smGetPreselector(int device, SmBool *enabled)
SM_API SmStatus smBroadcastNetworkConfig(const char *hostAddr, const char *deviceAddr, uint16_t port, SmBool nonVolatile)
SM_API SmStatus smSetSweepSpurReject(int device, SmBool spurRejectEnabled)
SM_API SmStatus smReadGPIOImm(int device, uint8_t *data)
SmIQStreamSampleRate
Definition: sm_api.h:279
@ smIQStreamSampleRateLTE
Definition: sm_api.h:283
@ smIQStreamSampleRateNative
Definition: sm_api.h:281
SM_API SmStatus smSegIQCaptureFinish(int device, int capture)
SM_API SmStatus smSetExternalReference(int device, SmBool enabled)
SM_API SmStatus smSetAudioType(int device, SmAudioType audioType)
SmReference
Definition: sm_api.h:398
@ smReferenceUseExternal
Definition: sm_api.h:402
@ smReferenceUseInternal
Definition: sm_api.h:400
SM_API SmStatus smIQSweepListGetSweep(int device, void *dst, int64_t *timestamps)
SM_API SmStatus smSetSweepCenterSpan(int device, double centerFreqHz, double spanHz)
SM_API SmStatus smGetCalDate(int device, uint64_t *lastCalDate)
SM_API SmStatus smNetworkConfigGetPort(int device, int *port)
SM_API SmStatus smSetSegIQSegment(int device, int segment, SmTriggerType triggerType, int preTrigger, int captureSize, double timeoutSeconds)
SM_API SmStatus smSetAudioFMDeemphasis(int device, double deemphasis)
SM_API SmStatus smSetIQSweepListRef(int device, int step, double level)
SM_API SmStatus smCloseDevice(int device)
SM_API SmStatus smSetIQSweepListSteps(int device, int steps)
SM_API SmStatus smSetIQSweepListAtten(int device, int step, int atten)
SM_API SmStatus smSegIQCaptureWait(int device, int capture)
SM_API SmStatus smSetIQFullBandTriggerTimeout(int device, double triggerTimeout)
SM_API SmStatus smGetDeviceList2(int *serials, SmDeviceType *deviceTypes, int *deviceCount)
SM_API SmStatus smSetSegIQDataType(int device, SmDataType dataType)
SM_API SmStatus smSetGPSPlatformModel(int device, SmGPSPlatformModel platformModel)
SM_API SmStatus smGetRealTimeParameters(int device, double *actualRBW, int *sweepSize, double *actualStartFreq, double *binSize, int *frameWidth, int *frameHeight, double *poi)
SM_API SmStatus smSetRealTimeWindow(int device, SmWindowType window)
SM_API SmStatus smSegIQCaptureTimeout(int device, int capture, int segment, SmBool *timedOut)
SM_API SmStatus smGetFirmwareVersion(int device, int *major, int *minor, int *revision)
SM_API SmStatus smPreset(int device)
SM_API SmStatus smSetPowerState(int device, SmPowerState powerState)
SM_API SmStatus smSegIQGetMaxCaptures(int device, int *maxCaptures)
SM_API SmStatus smConfigure(int device, SmMode mode)
SmPowerState
Definition: sm_api.h:289
@ smPowerStateOn
Definition: sm_api.h:291
@ smPowerStateStandby
Definition: sm_api.h:293
SM_API SmStatus smGetIQSweepListSteps(int device, int *steps)
SM_API SmStatus smSetIQSweepListFreq(int device, int step, double freq)
SmSweepSpeed
Definition: sm_api.h:267
@ smSweepSpeedAuto
Definition: sm_api.h:269
@ smSweepSpeedFast
Definition: sm_api.h:273
@ smSweepSpeedNormal
Definition: sm_api.h:271
SM_API SmStatus smGetGPSTimebaseUpdate(int device, SmBool *enabled)
SM_API SmStatus smPresetSerial(int serialNumber)
SmTriggerEdge
Definition: sm_api.h:367
@ smTriggerEdgeRising
Definition: sm_api.h:369
@ smTriggerEdgeFalling
Definition: sm_api.h:371
SM_API const char * smGetErrorString(SmStatus status)
SM_API SmStatus smSetGPIOState(int device, SmGPIOState lowerState, SmGPIOState upperState)
SM_API SmStatus smGetIQCorrection(int device, float *scale)
SmStatus
Definition: sm_api.h:142
@ smSettingClamped
Definition: sm_api.h:208
@ smCpuLimited
Definition: sm_api.h:220
@ smNullPtrErr
Definition: sm_api.h:198
@ smInvalidParameterErr
Definition: sm_api.h:196
@ smGPSErr
Definition: sm_api.h:171
@ smAllocationErr
Definition: sm_api.h:177
@ smFx3RunErr
Definition: sm_api.h:162
@ smVersionMismatchErr
Definition: sm_api.h:175
@ smInvalidSweepPosition
Definition: sm_api.h:186
@ smMaxDevicesConnectedErr
Definition: sm_api.h:164
@ smSyncErr
Definition: sm_api.h:184
@ smUpdateAPI
Definition: sm_api.h:226
@ smNoError
Definition: sm_api.h:205
@ smInvalidDeviceErr
Definition: sm_api.h:200
@ smTempDriftWarning
Definition: sm_api.h:214
@ smInvalidIQDecimationErr
Definition: sm_api.h:155
@ smFPGABootErr
Definition: sm_api.h:166
@ smInvalidCenterFreqErr
Definition: sm_api.h:153
@ smInvalidCalibrationFileErr
Definition: sm_api.h:151
@ smUncalData
Definition: sm_api.h:212
@ smConnectionLostErr
Definition: sm_api.h:194
@ smBootErr
Definition: sm_api.h:168
@ smSpanExceedsPreselector
Definition: sm_api.h:216
@ smDeviceNotFoundErr
Definition: sm_api.h:202
@ smInvalidConfigurationErr
Definition: sm_api.h:192
@ smJESDErr
Definition: sm_api.h:158
@ smNetworkErr
Definition: sm_api.h:160
@ smInvalidCalData
Definition: sm_api.h:228
@ smGpsNotLockedErr
Definition: sm_api.h:173
@ smAdcOverflow
Definition: sm_api.h:210
@ smTempHighWarning
Definition: sm_api.h:218
SM_API SmStatus smSetGPSTimebaseUpdate(int device, SmBool enabled)
SM_API SmStatus smWriteToGPS(int device, const uint8_t *mem, int len)
SM_API SmStatus smSetRealTimeDetector(int device, SmDetector detector)
SM_API SmStatus smSetGPIOSwitching(int device, uint8_t *gpio, uint32_t *counts, int gpioSteps)
SmDetector
Definition: sm_api.h:299
@ smDetectorAverage
Definition: sm_api.h:301
@ smDetectorMinMax
Definition: sm_api.h:303
SM_API SmStatus smGetSFPDiagnostics(int device, float *temp, float *voltage, float *txPower, float *rxPower)
SM_API SmStatus smSegIQCaptureFull(int device, int capture, void *iq, int offset, int len, int64_t *nsSinceEpoch, SmBool *timedOut)
SM_API SmStatus smNetworkedSpeedTest(int device, double durationSeconds, double *bytesPerSecond)
SM_API SmStatus smGetGPSState(int device, SmGPSState *GPSState)
SM_API SmStatus smSegIQCaptureTime(int device, int capture, int segment, int64_t *nsSinceEpoch)
SM_API SmStatus smSetAudioFilters(int device, double ifBandwidth, double audioLpf, double audioHpf)
SM_API SmStatus smGetFanThreshold(int device, int *temp)
SM_API SmStatus smGetRefLevel(int device, double *refLevel)
SM_API SmStatus smGetGPIOState(int device, SmGPIOState *lowerState, SmGPIOState *upperState)
Definition: sm_api.h:505
float tempRFBoardLO
Definition: sm_api.h:523
float tempPowerSupply
Definition: sm_api.h:525
float tempVCO
Definition: sm_api.h:521
float voltage
Definition: sm_api.h:507
float tempFPGAInternal
Definition: sm_api.h:515
float currentInput
Definition: sm_api.h:509
float tempFPGANear
Definition: sm_api.h:517
float currentOCXO
Definition: sm_api.h:511
float tempOCXO
Definition: sm_api.h:519
Definition: sm_api.h:495
double freq
Definition: sm_api.h:497
uint8_t mask
Definition: sm_api.h:499