SM API
sm_api.h
Go to the documentation of this file.
1// Copyright (c).2022, 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 (9)
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
176
201
204
227} SmStatus;
228
232typedef enum SmDataType {
238
242typedef enum SmMode {
257
258 // Deprecated, use smModeIQStreaming
259 smModeIQ = 3,
260} SmMode;
261
265typedef enum SmSweepSpeed {
273
283
287typedef enum SmPowerState {
293
297typedef enum SmDetector {
303
307typedef enum SmScale {
315
319typedef enum SmVideoUnits {
327 smVideoSample = 3
329
333typedef enum SmWindowType {
345 smWindowRect = 6
347
351typedef enum SmTriggerType {
361
365typedef enum SmTriggerEdge {
371
376typedef enum SmBool {
380 smTrue = 1
382
386typedef enum SmGPIOState {
392
396typedef enum SmReference {
402
406typedef enum SmDeviceType {
418
422typedef enum SmAudioType {
432 smAudioTypeCW = 4
434
438typedef enum SmGPSState {
446
450typedef struct SmGPIOStep {
452 double freq;
454 uint8_t mask;
455} SmGPIOStep;
456
460typedef struct SmDeviceDiagnostics {
462 float voltage;
474 float tempOCXO;
476 float tempVCO;
482
483#ifdef __cplusplus
484extern "C" {
485#endif
486
506SM_API SmStatus smGetDeviceList(int *serials, int *deviceCount);
507
531SM_API SmStatus smGetDeviceList2(int *serials, SmDeviceType *deviceTypes, int *deviceCount);
532
545SM_API SmStatus smOpenDevice(int *device);
546
558SM_API SmStatus smOpenDeviceBySerial(int *device, int serialNumber);
559
588 const char *hostAddr,
589 const char *deviceAddr,
590 uint16_t port);
591
604SM_API SmStatus smCloseDevice(int device);
605
620SM_API SmStatus smPreset(int device);
621
633SM_API SmStatus smPresetSerial(int serialNumber);
634
651SM_API SmStatus smNetworkedSpeedTest(int device, double durationSeconds, double *bytesPerSecond);
652
666SM_API SmStatus smGetDeviceInfo(int device, SmDeviceType *deviceType, int *serialNumber);
667
682SM_API SmStatus smGetFirmwareVersion(int device, int *major, int *minor, int *revision);
683
694SM_API SmStatus smHasIFOutput(int device, SmBool *present);
695
712SM_API SmStatus smGetDeviceDiagnostics(int device, float *voltage, float *current, float *temperature);
713
726
746 float *temp,
747 float *voltage,
748 float *txPower,
749 float *rxPower);
750
761SM_API SmStatus smSetPowerState(int device, SmPowerState powerState);
762
772SM_API SmStatus smGetPowerState(int device, SmPowerState *powerState);
773
789SM_API SmStatus smSetAttenuator(int device, int atten);
790
801SM_API SmStatus smGetAttenuator(int device, int *atten);
802
815SM_API SmStatus smSetRefLevel(int device, double refLevel);
816
826SM_API SmStatus smGetRefLevel(int device, double *refLevel);
827
838SM_API SmStatus smSetPreselector(int device, SmBool enabled);
839
849SM_API SmStatus smGetPreselector(int device, SmBool *enabled);
850
863SM_API SmStatus smSetGPIOState(int device, SmGPIOState lowerState, SmGPIOState upperState);
864
876SM_API SmStatus smGetGPIOState(int device, SmGPIOState *lowerState, SmGPIOState *upperState);
877
890SM_API SmStatus smWriteGPIOImm(int device, uint8_t data);
891
908SM_API SmStatus smReadGPIOImm(int device, uint8_t *data);
909
921SM_API SmStatus smWriteSPI(int device, uint32_t data, int byteCount);
922
933
948SM_API SmStatus smSetGPIOSweep(int device, SmGPIOStep *steps, int stepCount);
949
962
978SM_API SmStatus smSetGPIOSwitching(int device, uint8_t *gpio, uint32_t *counts, int gpioSteps);
979
991SM_API SmStatus smSetExternalReference(int device, SmBool enabled);
992
1002SM_API SmStatus smGetExternalReference(int device, SmBool *enabled);
1003
1016SM_API SmStatus smSetReference(int device, SmReference reference);
1017
1027SM_API SmStatus smGetReference(int device, SmReference *reference);
1028
1040SM_API SmStatus smSetGPSTimebaseUpdate(int device, SmBool enabled);
1041
1052SM_API SmStatus smGetGPSTimebaseUpdate(int device, SmBool *enabled);
1053
1071SM_API SmStatus smGetGPSHoldoverInfo(int device, SmBool *usingGPSHoldover, uint64_t *lastHoldoverTime);
1072
1083SM_API SmStatus smGetGPSState(int device, SmGPSState *GPSState);
1084
1094SM_API SmStatus smSetSweepSpeed(int device, SmSweepSpeed sweepSpeed);
1095
1107SM_API SmStatus smSetSweepCenterSpan(int device, double centerFreqHz, double spanHz);
1108
1120SM_API SmStatus smSetSweepStartStop(int device, double startFreqHz, double stopFreqHz);
1121
1137SM_API SmStatus smSetSweepCoupling(int device, double rbw, double vbw, double sweepTime);
1138
1150SM_API SmStatus smSetSweepDetector(int device, SmDetector detector, SmVideoUnits videoUnits);
1151
1161SM_API SmStatus smSetSweepScale(int device, SmScale scale);
1162
1172SM_API SmStatus smSetSweepWindow(int device, SmWindowType window);
1173
1183SM_API SmStatus smSetSweepSpurReject(int device, SmBool spurRejectEnabled);
1184
1196SM_API SmStatus smSetRealTimeCenterSpan(int device, double centerFreqHz, double spanHz);
1197
1207SM_API SmStatus smSetRealTimeRBW(int device, double rbw);
1208
1218SM_API SmStatus smSetRealTimeDetector(int device, SmDetector detector);
1219
1235SM_API SmStatus smSetRealTimeScale(int device, SmScale scale, double frameRef, double frameScale);
1236
1246SM_API SmStatus smSetRealTimeWindow(int device, SmWindowType window);
1247
1259
1269SM_API SmStatus smSetIQDataType(int device, SmDataType dataType);
1270
1280SM_API SmStatus smSetIQCenterFreq(int device, double centerFreqHz);
1281
1291SM_API SmStatus smGetIQCenterFreq(int device, double *centerFreqHz);
1292
1303SM_API SmStatus smSetIQSampleRate(int device, int decimation);
1304
1318SM_API SmStatus smSetIQBandwidth(int device, SmBool enableSoftwareFilter, double bandwidth);
1319
1330
1341SM_API SmStatus smSetIQTriggerSentinel(double sentinelValue);
1342
1361SM_API SmStatus smSetIQQueueSize(int device, float ms);
1362
1372SM_API SmStatus smSetIQSweepListDataType(int device, SmDataType dataType);
1373
1386SM_API SmStatus smSetIQSweepListCorrected(int device, SmBool corrected);
1387
1397SM_API SmStatus smSetIQSweepListSteps(int device, int steps);
1398
1408SM_API SmStatus smGetIQSweepListSteps(int device, int *steps);
1409
1424SM_API SmStatus smSetIQSweepListFreq(int device, int step, double freq);
1425
1440SM_API SmStatus smSetIQSweepListRef(int device, int step, double level);
1441
1458SM_API SmStatus smSetIQSweepListAtten(int device, int step, int atten);
1459
1476SM_API SmStatus smSetIQSweepListSampleCount(int device, int step, uint32_t samples);
1477
1487SM_API SmStatus smSetSegIQDataType(int device, SmDataType dataType);
1488
1498SM_API SmStatus smSetSegIQCenterFreq(int device, double centerFreqHz);
1499
1512SM_API SmStatus smSetSegIQVideoTrigger(int device, double triggerLevel, SmTriggerEdge triggerEdge);
1513
1524SM_API SmStatus smSetSegIQExtTrigger(int device, SmTriggerEdge extTriggerEdge);
1525
1551 int fftSize,
1552 const double *frequencies,
1553 const double *ampls,
1554 int count);
1555
1566SM_API SmStatus smSetSegIQSegmentCount(int device, int segmentCount);
1567
1592SM_API SmStatus smSetSegIQSegment(int device,
1593 int segment,
1594 SmTriggerType triggerType,
1595 int preTrigger,
1596 int captureSize,
1597 double timeoutSeconds);
1598
1608SM_API SmStatus smSetAudioCenterFreq(int device, double centerFreqHz);
1609
1619SM_API SmStatus smSetAudioType(int device, SmAudioType audioType);
1620
1634SM_API SmStatus smSetAudioFilters(int device,
1635 double ifBandwidth,
1636 double audioLpf,
1637 double audioHpf);
1638
1648SM_API SmStatus smSetAudioFMDeemphasis(int device, double deemphasis);
1649
1664SM_API SmStatus smConfigure(int device, SmMode mode);
1665
1675SM_API SmStatus smGetCurrentMode(int device, SmMode *mode);
1676
1686SM_API SmStatus smAbort(int device);
1687
1711 double *actualRBW,
1712 double *actualVBW,
1713 double *actualStartFreq,
1714 double *binSize,
1715 int *sweepSize);
1716
1744 double *actualRBW,
1745 int *sweepSize,
1746 double *actualStartFreq,
1747 double *binSize,
1748 int *frameWidth,
1749 int *frameHeight,
1750 double *poi);
1751
1765SM_API SmStatus smGetIQParameters(int device, double *sampleRate, double *bandwidth);
1766
1779SM_API SmStatus smGetIQCorrection(int device, float *scale);
1780
1796SM_API SmStatus smIQSweepListGetCorrections(int device, float *corrections);
1797
1811SM_API SmStatus smSegIQGetMaxCaptures(int device, int *maxCaptures);
1812
1831SM_API SmStatus smGetSweep(int device, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch);
1832
1847SM_API SmStatus smSetSweepGPIO(int device, int pos, uint8_t data);
1848
1859SM_API SmStatus smStartSweep(int device, int pos);
1860
1877SM_API SmStatus smFinishSweep(int device, int pos, float *sweepMin, float *sweepMax, int64_t *nsSinceEpoch);
1878
1906 float *colorFrame,
1907 float *alphaFrame,
1908 float *sweepMin,
1909 float *sweepMax,
1910 int *frameCount,
1911 int64_t *nsSinceEpoch);
1912
1952SM_API SmStatus smGetIQ(int device,
1953 void *iqBuf,
1954 int iqBufSize,
1955 double *triggers,
1956 int triggerBufSize,
1957 int64_t *nsSinceEpoch,
1958 SmBool purge,
1959 int *sampleLoss,
1960 int *samplesRemaining);
1961
1985SM_API SmStatus smIQSweepListGetSweep(int device, void *dst, int64_t *timestamps);
1986
2012SM_API SmStatus smIQSweepListStartSweep(int device, int pos, void *dst, int64_t *timestamps);
2013
2024SM_API SmStatus smIQSweepListFinishSweep(int device, int pos);
2025
2036SM_API SmStatus smSegIQCaptureStart(int device, int capture);
2037
2049SM_API SmStatus smSegIQCaptureWait(int device, int capture);
2050
2062SM_API SmStatus smSegIQCaptureWaitAsync(int device, int capture, SmBool *completed);
2063
2079SM_API SmStatus smSegIQCaptureTimeout(int device, int capture, int segment, SmBool *timedOut);
2080
2103SM_API SmStatus smSegIQCaptureTime(int device, int capture, int segment, int64_t *nsSinceEpoch);
2104
2126SM_API SmStatus smSegIQCaptureRead(int device, int capture, int segment, void *iq, int offset, int len);
2127
2137SM_API SmStatus smSegIQCaptureFinish(int device, int capture);
2138
2163 int capture,
2164 void *iq,
2165 int offset,
2166 int len,
2167 int64_t *nsSinceEpoch,
2168 SmBool *timedOut);
2169
2198SM_API SmStatus smSegIQLTEResample(float *input,
2199 int inputLen,
2200 float *output,
2201 int *outputLen,
2202 bool clearDelayLine);
2203
2214SM_API SmStatus smSetIQFullBandAtten(int device, int atten);
2215
2228SM_API SmStatus smSetIQFullBandCorrected(int device, SmBool corrected);
2229
2240SM_API SmStatus smSetIQFullBandSamples(int device, int samples);
2241
2253SM_API SmStatus smSetIQFullBandTriggerType(int device, SmTriggerType triggerType);
2254
2264SM_API SmStatus smSetIQFullBandVideoTrigger(int device, double triggerLevel);
2265
2279SM_API SmStatus smSetIQFullBandTriggerTimeout(int device, double triggerTimeout);
2280
2324SM_API SmStatus smGetIQFullBand(int device, float *iq, int freq);
2325
2393SM_API SmStatus smGetIQFullBandSweep(int device, float *iq, int startIndex, int stepSize, int steps);
2394
2410SM_API SmStatus smGetAudio(int device, float *audio);
2411
2457SM_API SmStatus smGetGPSInfo(int device,
2458 SmBool refresh,
2459 SmBool *updated,
2460 int64_t *secSinceEpoch,
2461 double *latitude,
2462 double *longitude,
2463 double *altitude,
2464 char *nmea,
2465 int *nmeaLen);
2466
2481SM_API SmStatus smWriteToGPS(int device, const uint8_t *mem, int len);
2482
2495SM_API SmStatus smSetFanThreshold(int device, int temp);
2496
2506SM_API SmStatus smGetFanThreshold(int device, int *temp);
2507
2521SM_API SmStatus smSetIFOutput(int device, double frequency);
2522
2532SM_API SmStatus smGetCalDate(int device, uint64_t *lastCalDate);
2533
2558SM_API SmStatus smBroadcastNetworkConfig(const char *hostAddr,
2559 const char *deviceAddr,
2560 uint16_t port,
2561 SmBool nonVolatile);
2562
2576SM_API SmStatus smNetworkConfigGetDeviceList(int *serials, int *deviceCount);
2577
2591SM_API SmStatus smNetworkConfigOpenDevice(int *device, int serialNumber);
2592
2606
2622SM_API SmStatus smNetworkConfigGetMAC(int device, char *mac);
2623
2643SM_API SmStatus smNetworkConfigSetIP(int device, const char *addr, SmBool nonVolatile);
2644
2661SM_API SmStatus smNetworkConfigGetIP(int device, char *addr);
2662
2679SM_API SmStatus smNetworkConfigSetPort(int device, int port, SmBool nonVolatile);
2680
2694SM_API SmStatus smNetworkConfigGetPort(int device, int *port);
2695
2711SM_API const char* smGetAPIVersion();
2712
2721SM_API const char* smGetErrorString(SmStatus status);
2722
2723SM_DEPRECATED("smSetIQUSBQueueSize has been deprecated, use smSetIQQueueSize")
2724SM_API SmStatus smSetIQUSBQueueSize(int device, float ms);
2725
2726#ifdef __cplusplus
2727} // Extern "C"
2728#endif
2729
2730// Deprecated macros
2731#define SM200A_AUTO_ATTEN (SM_AUTO_ATTEN)
2732#define SM200A_MAX_ATTEN (SM_MAX_ATTEN)
2733#define SM200A_MAX_REF_LEVEL (SM_MAX_REF_LEVEL)
2734#define SM200A_MAX_SWEEP_QUEUE_SZ (SM_MAX_SWEEP_QUEUE_SZ)
2735#define SM200A_MIN_FREQ (SM200_MIN_FREQ)
2736#define SM200A_MAX_FREQ (SM200_MAX_FREQ)
2737#define SM200A_MAX_IQ_DECIMATION (SM_MAX_IQ_DECIMATION)
2738#define SM200A_PRESELECTOR_MAX_FREQ (SM_PRESELECTOR_MAX_FREQ)
2739#define SM200A_FAST_SWEEP_MIN_RBW (SM_FAST_SWEEP_MIN_RBW)
2740#define SM200A_RTSA_MIN_SPAN (SM_REAL_TIME_MIN_SPAN)
2741#define SM200A_RTSA_MAX_SPAN (SM_REAL_TIME_MAX_SPAN)
2742#define SM200A_MIN_SWEEP_TIME (SM_MIN_SWEEP_TIME)
2743#define SM200A_MAX_SWEEP_TIME (SM_MAX_SWEEP_TIME)
2744#define SM200A_SPI_MAX_BYTES (SM_SPI_MAX_BYTES)
2745#define SM200A_GPIO_SWEEP_MAX_STEPS (SM_GPIO_SWEEP_MAX_STEPS)
2746#define SM200A_GPIO_SWITCH_MAX_STEPS (SM_GPIO_SWITCH_MAX_STEPS)
2747#define SM200A_GPIO_SWITCH_MIN_COUNT (SM_GPIO_SWITCH_MIN_COUNT)
2748#define SM200A_GPIO_SWITCH_MAX_COUNT (SM_GPIO_SWITCH_MAX_COUNT)
2749#define SM200A_TEMP_WARNING (SM_TEMP_WARNING)
2750#define SM200A_TEMP_MAX (SM_TEMP_MAX)
2751#define SM200B_MAX_SEGMENTED_IQ_SEGMENTS (SM_MAX_SEGMENTED_IQ_SEGMENTS)
2752#define SM200B_MAX_SEGMENTED_IQ_SAMPLES (SM_MAX_SEGMENTED_IQ_SAMPLES)
2753#define SM200_ADDR_ANY (SM_ADDR_ANY)
2754#define SM200_DEFAULT_ADDR (SM_DEFAULT_ADDR)
2755#define SM200_DEFAULT_PORT (SM_DEFAULT_PORT)
2756
2757#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:307
@ smScaleLog
Definition: sm_api.h:309
@ smScaleLin
Definition: sm_api.h:311
@ smScaleFullScale
Definition: sm_api.h:313
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:438
@ smGPSStateDisciplined
Definition: sm_api.h:444
@ smGPSStateNotPresent
Definition: sm_api.h:440
@ smGPSStateLocked
Definition: sm_api.h:442
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:351
@ smTriggerTypeImm
Definition: sm_api.h:353
@ smTriggerTypeExt
Definition: sm_api.h:357
@ smTriggerTypeFMT
Definition: sm_api.h:359
@ smTriggerTypeVideo
Definition: sm_api.h:355
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:232
@ smDataType16sc
Definition: sm_api.h:236
@ smDataType32fc
Definition: sm_api.h:234
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:422
@ smAudioTypeAM
Definition: sm_api.h:424
@ smAudioTypeFM
Definition: sm_api.h:426
@ smAudioTypeUSB
Definition: sm_api.h:428
@ smAudioTypeCW
Definition: sm_api.h:432
@ smAudioTypeLSB
Definition: sm_api.h:430
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:319
@ smVideoPower
Definition: sm_api.h:325
@ smVideoLog
Definition: sm_api.h:321
@ smVideoSample
Definition: sm_api.h:327
@ smVideoVoltage
Definition: sm_api.h:323
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:376
@ smFalse
Definition: sm_api.h:378
@ smTrue
Definition: sm_api.h:380
SM_API SmStatus smGetDeviceDiagnostics(int device, float *voltage, float *current, float *temperature)
SmDeviceType
Definition: sm_api.h:406
@ smDeviceTypeSM200C
Definition: sm_api.h:412
@ smDeviceTypeSM435C
Definition: sm_api.h:416
@ smDeviceTypeSM200B
Definition: sm_api.h:410
@ smDeviceTypeSM200A
Definition: sm_api.h:408
@ smDeviceTypeSM435B
Definition: sm_api.h:414
SM_API SmStatus smNetworkConfigGetDeviceList(int *serials, int *deviceCount)
SM_API SmStatus smStartSweep(int device, int pos)
SmWindowType
Definition: sm_api.h:333
@ smWindowHamming
Definition: sm_api.h:341
@ smWindowGaussian6dB
Definition: sm_api.h:343
@ smWindowRect
Definition: sm_api.h:345
@ smWindowBlackman
Definition: sm_api.h:339
@ smWindowNutall
Definition: sm_api.h:337
@ smWindowFlatTop
Definition: sm_api.h:335
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:242
@ smModeAudio
Definition: sm_api.h:256
@ smModeIQSegmentedCapture
Definition: sm_api.h:252
@ smModeSweeping
Definition: sm_api.h:246
@ smModeIdle
Definition: sm_api.h:244
@ smModeRealTime
Definition: sm_api.h:248
@ smModeIQStreaming
Definition: sm_api.h:250
@ smModeIQSweepList
Definition: sm_api.h:254
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:386
@ smGPIOStateInput
Definition: sm_api.h:390
@ smGPIOStateOutput
Definition: sm_api.h:388
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:277
@ smIQStreamSampleRateLTE
Definition: sm_api.h:281
@ smIQStreamSampleRateNative
Definition: sm_api.h:279
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:396
@ smReferenceUseExternal
Definition: sm_api.h:400
@ smReferenceUseInternal
Definition: sm_api.h:398
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 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:287
@ smPowerStateOn
Definition: sm_api.h:289
@ smPowerStateStandby
Definition: sm_api.h:291
SM_API SmStatus smGetIQSweepListSteps(int device, int *steps)
SM_API SmStatus smSetIQSweepListFreq(int device, int step, double freq)
SmSweepSpeed
Definition: sm_api.h:265
@ smSweepSpeedAuto
Definition: sm_api.h:267
@ smSweepSpeedFast
Definition: sm_api.h:271
@ smSweepSpeedNormal
Definition: sm_api.h:269
SM_API SmStatus smGetGPSTimebaseUpdate(int device, SmBool *enabled)
SM_API SmStatus smPresetSerial(int serialNumber)
SmTriggerEdge
Definition: sm_api.h:365
@ smTriggerEdgeRising
Definition: sm_api.h:367
@ smTriggerEdgeFalling
Definition: sm_api.h:369
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:206
@ smCpuLimited
Definition: sm_api.h:218
@ smNullPtrErr
Definition: sm_api.h:196
@ smInvalidParameterErr
Definition: sm_api.h:194
@ smAllocationErr
Definition: sm_api.h:175
@ smFx3RunErr
Definition: sm_api.h:162
@ smVersionMismatchErr
Definition: sm_api.h:173
@ smInvalidSweepPosition
Definition: sm_api.h:184
@ smMaxDevicesConnectedErr
Definition: sm_api.h:164
@ smSyncErr
Definition: sm_api.h:182
@ smUpdateAPI
Definition: sm_api.h:224
@ smNoError
Definition: sm_api.h:203
@ smInvalidDeviceErr
Definition: sm_api.h:198
@ smTempDriftWarning
Definition: sm_api.h:212
@ 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:210
@ smConnectionLostErr
Definition: sm_api.h:192
@ smBootErr
Definition: sm_api.h:168
@ smSpanExceedsPreselector
Definition: sm_api.h:214
@ smDeviceNotFoundErr
Definition: sm_api.h:200
@ smInvalidConfigurationErr
Definition: sm_api.h:190
@ smJESDErr
Definition: sm_api.h:158
@ smNetworkErr
Definition: sm_api.h:160
@ smInvalidCalData
Definition: sm_api.h:226
@ smGpsNotLockedErr
Definition: sm_api.h:171
@ smAdcOverflow
Definition: sm_api.h:208
@ smTempHighWarning
Definition: sm_api.h:216
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:297
@ smDetectorAverage
Definition: sm_api.h:299
@ smDetectorMinMax
Definition: sm_api.h:301
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:460
float tempRFBoardLO
Definition: sm_api.h:478
float tempPowerSupply
Definition: sm_api.h:480
float tempVCO
Definition: sm_api.h:476
float voltage
Definition: sm_api.h:462
float tempFPGAInternal
Definition: sm_api.h:470
float currentInput
Definition: sm_api.h:464
float tempFPGANear
Definition: sm_api.h:472
float currentOCXO
Definition: sm_api.h:466
float current58
Definition: sm_api.h:468
float tempOCXO
Definition: sm_api.h:474
Definition: sm_api.h:450
double freq
Definition: sm_api.h:452
uint8_t mask
Definition: sm_api.h:454