VSG200+VSG60 API
vsg_api.h
Go to the documentation of this file.
1// Copyright (c) 2024, Signal Hound, Inc.
2// For licensing information, please see the API license in the software_licenses folder
3
13#ifndef VSG_API_H
14#define VSG_API_H
15
16#if _WIN32
17 #ifdef VSG_EXPORT
18 #define VSG_API __declspec(dllexport)
19 #else
20 #define VSG_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#else // Linux
37 #include <stdint.h>
38 #define VSG_API __attribute__((visibility("default")))
39#endif
40
42#define VSG_MAX_DEVICES (8)
44#define VSG60_MIN_FREQ (30.0e6)
46#define VSG200_MIN_FREQ (100.0e3)
48#define VSG60_MAX_FREQ (6.0e9)
50#define VSG200_MAX_FREQ (20.0e9)
52#define VSG_MIN_SAMPLE_RATE (12.5e3)
54#define VSG_MAX_SAMPLE_RATE (54.0e6)
56#define VSG_MIN_LEVEL (-120.0)
58#define VSG_MAX_LEVEL (10.0)
60#define VSG_MIN_IQ_OFFSET (-1024)
62#define VSG_MAX_IQ_OFFSET (1024)
64#define VSG_MIN_TRIGGER_LENGTH (0.1e-6)
66#define VSG_MAX_TRIGGER_LENGTH (0.1)
67
71typedef enum VsgDeviceType {
77
81typedef enum VsgTimebaseState {
87
92typedef enum VsgBool {
96 vsgTrue = 1
98
111
115typedef enum VsgStatus {
116 // Internal use only
117 vsgFileIOErr = -1000,
118 vsgMemErr = -999,
119
120 vsgInvalidOperationErr = -11,
121
126
137
140
148
149#ifdef __cplusplus
150extern "C" {
151#endif
152
163VSG_API const char* vsgGetAPIVersion();
164
180VSG_API VsgStatus vsgGetDeviceList(int *serials, int *count);
181
197VSG_API VsgStatus vsgGetDeviceList2(int *serials, VsgDeviceType *deviceTypes, int *deviceCount);
198
210VSG_API VsgStatus vsgOpenDevice(int *handle);
211
225VSG_API VsgStatus vsgOpenDeviceBySerial(int *handle, int serialNumber);
226
238VSG_API VsgStatus vsgCloseDevice(int handle);
239
250VSG_API VsgStatus vsgPreset(int handle);
251
264VSG_API VsgStatus vsgRecal(int handle);
265
277VSG_API VsgStatus vsgAbort(int handle);
278
288VSG_API VsgStatus vsgGetSerialNumber(int handle, int *serial);
289
299VSG_API VsgStatus vsgGetDeviceType(int handle, VsgDeviceType *deviceType);
300
310VSG_API VsgStatus vsgGetFirmwareVersion(int handle, int *version);
311
321VSG_API VsgStatus vsgGetCalDate(int handle, uint32_t *lastCalDate);
322
334VSG_API VsgStatus vsgReadTemperature(int handle, float *temp);
335
353VSG_API VsgStatus vsgSetRFOutputState(int handle, VsgBool enabled);
354
364VSG_API VsgStatus vsgGetRFOutputState(int handle, VsgBool *enabled);
365
380VSG_API VsgStatus vsgSetTimebase(int handle, VsgTimebaseState state);
381
391VSG_API VsgStatus vsgGetTimebase(int handle, VsgTimebaseState *state);
392
408VSG_API VsgStatus vsgSetTimebaseOffset(int handle, double ppm);
409
420VSG_API VsgStatus vsgGetTimebaseOffset(int handle, double *ppm);
421
435VSG_API VsgStatus vsgSetFrequency(int handle, double frequency);
436
448VSG_API VsgStatus vsgGetFrequency(int handle, double *frequency);
449
463VSG_API VsgStatus vsgSetSampleRate(int handle, double sampleRate);
464
474VSG_API VsgStatus vsgGetSampleRate(int handle, double *sampleRate);
475
493VSG_API VsgStatus vsgSetLevel(int handle, double level);
494
504VSG_API VsgStatus vsgGetLevel(int handle, double *level);
505
521VSG_API VsgStatus vsgSetAtten(int handle, int atten);
522
535VSG_API VsgStatus vsgGetIQScale(int handle, double *iqScale);
536
552VSG_API VsgStatus vsgSetIQOffset(int handle, int16_t iOffset, int16_t qOffset);
553
565VSG_API VsgStatus vsgGetIQOffset(int handle, int16_t *iOffset, int16_t *qOffset);
566
580VSG_API VsgStatus vsgSetDigitalTuning(int handle, VsgBool enabled);
581
591VSG_API VsgStatus vsgGetDigitalTuning(int handle, VsgBool *enabled);
592
605VSG_API VsgStatus vsgSetTriggerLength(int handle, double seconds);
606
616VSG_API VsgStatus vsgGetTriggerLength(int handle, double *seconds);
617
637VSG_API VsgStatus vsgSubmitIQ(int handle, float *iq, int len);
638
651VSG_API VsgStatus vsgSubmitTrigger(int handle);
652
662VSG_API VsgStatus vsgFlush(int handle);
663
674VSG_API VsgStatus vsgFlushAndWait(int handle);
675
692VSG_API VsgStatus vsgOutputWaveform(int handle, float *iq, int len);
693
713VSG_API VsgStatus vsgRepeatWaveform(int handle, float *iq, int len);
714
724VSG_API VsgStatus vsgOutputCW(int handle);
725
736VSG_API VsgStatus vsgIsWaveformActive(int handle, VsgBool *active);
737
745VSG_API VsgStatus vsgGetUSBStatus(int handle);
746
759
766
776VSG_API const char* vsgGetErrorString(VsgStatus status);
777
778#ifdef __cplusplus
779} // Extern C
780#endif
781
782#endif
VSG_API VsgStatus vsgSetImbalanceCorrectionMode(int handle, VsgImbalanceCorrectionMode mode)
VSG_API VsgStatus vsgGetDeviceType(int handle, VsgDeviceType *deviceType)
VSG_API const char * vsgGetErrorString(VsgStatus status)
VSG_API VsgStatus vsgCloseDevice(int handle)
VSG_API VsgStatus vsgGetUSBStatus(int handle)
VsgBool
Definition: vsg_api.h:92
@ vsgTrue
Definition: vsg_api.h:96
@ vsgFalse
Definition: vsg_api.h:94
VSG_API VsgStatus vsgSetSampleRate(int handle, double sampleRate)
VsgStatus
Definition: vsg_api.h:115
@ vsgDeviceNotFoundErr
Definition: vsg_api.h:136
@ vsgAlreadyFlushed
Definition: vsg_api.h:142
@ vsgSettingClamped
Definition: vsg_api.h:144
@ vsgInvalidCalData
Definition: vsg_api.h:146
@ vsgWaveformAlreadyActiveErr
Definition: vsg_api.h:123
@ vsgWaveformNotActiveErr
Definition: vsg_api.h:125
@ vsgInvalidDeviceErr
Definition: vsg_api.h:134
@ vsgUsbXferErr
Definition: vsg_api.h:128
@ vsgNullPtrErr
Definition: vsg_api.h:132
@ vsgNoError
Definition: vsg_api.h:139
@ vsgInvalidParameterErr
Definition: vsg_api.h:130
VSG_API VsgStatus vsgFlushAndWait(int handle)
VSG_API const char * vsgGetAPIVersion()
VSG_API VsgStatus vsgSetLevel(int handle, double level)
VSG_API VsgStatus vsgGetDeviceList(int *serials, int *count)
VSG_API VsgStatus vsgGetLevel(int handle, double *level)
VSG_API VsgStatus vsgSetAtten(int handle, int atten)
VSG_API VsgStatus vsgGetSampleRate(int handle, double *sampleRate)
VSG_API VsgStatus vsgGetFirmwareVersion(int handle, int *version)
VSG_API VsgStatus vsgReadTemperature(int handle, float *temp)
VSG_API VsgStatus vsgSetTimebase(int handle, VsgTimebaseState state)
VsgDeviceType
Definition: vsg_api.h:71
@ VsgDeviceType200
Definition: vsg_api.h:75
@ VsgDeviceType60
Definition: vsg_api.h:73
VSG_API VsgStatus vsgFlush(int handle)
VSG_API VsgStatus vsgOpenDevice(int *handle)
VSG_API VsgStatus vsgOpenDeviceBySerial(int *handle, int serialNumber)
VSG_API VsgStatus vsgGetTriggerLength(int handle, double *seconds)
VSG_API VsgStatus vsgPreset(int handle)
VSG_API VsgStatus vsgOutputCW(int handle)
VsgImbalanceCorrectionMode
Definition: vsg_api.h:102
@ VsgImbalanceCorrectionModeFull
Definition: vsg_api.h:104
@ VsgImbalanceCorrectionModePartial
Definition: vsg_api.h:109
VSG_API VsgStatus vsgGetCalDate(int handle, uint32_t *lastCalDate)
VSG_API VsgStatus vsgIsWaveformActive(int handle, VsgBool *active)
VSG_API VsgStatus vsgRecal(int handle)
VSG_API VsgStatus vsgSetDigitalTuning(int handle, VsgBool enabled)
VSG_API VsgStatus vsgSetIQOffset(int handle, int16_t iOffset, int16_t qOffset)
VSG_API VsgStatus vsgGetIQScale(int handle, double *iqScale)
VSG_API VsgStatus vsgGetFrequency(int handle, double *frequency)
VSG_API VsgStatus vsgGetDigitalTuning(int handle, VsgBool *enabled)
VSG_API VsgStatus vsgGetRFOutputState(int handle, VsgBool *enabled)
VSG_API VsgStatus vsgGetSerialNumber(int handle, int *serial)
VSG_API VsgStatus vsgGetTimebase(int handle, VsgTimebaseState *state)
VSG_API VsgStatus vsgSetTriggerLength(int handle, double seconds)
VSG_API void vsgEnablePowerSavingCpuMode(VsgBool enabled)
VSG_API VsgStatus vsgSetTimebaseOffset(int handle, double ppm)
VSG_API VsgStatus vsgGetTimebaseOffset(int handle, double *ppm)
VSG_API VsgStatus vsgRepeatWaveform(int handle, float *iq, int len)
VSG_API VsgStatus vsgGetIQOffset(int handle, int16_t *iOffset, int16_t *qOffset)
VSG_API VsgStatus vsgGetDeviceList2(int *serials, VsgDeviceType *deviceTypes, int *deviceCount)
VSG_API VsgStatus vsgSubmitIQ(int handle, float *iq, int len)
VSG_API VsgStatus vsgSubmitTrigger(int handle)
VSG_API VsgStatus vsgSetRFOutputState(int handle, VsgBool enabled)
VSG_API VsgStatus vsgSetFrequency(int handle, double frequency)
VSG_API VsgStatus vsgOutputWaveform(int handle, float *iq, int len)
VSG_API VsgStatus vsgAbort(int handle)
VsgTimebaseState
Definition: vsg_api.h:81
@ vsgTimebaseStateExternal
Definition: vsg_api.h:85
@ vsgTimebaseStateInternal
Definition: vsg_api.h:83