VSG60 API
vsg_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 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 VSG60_MAX_FREQ (6.0e9)
48#define VSG_MIN_SAMPLE_RATE (12.5e3)
50#define VSG_MAX_SAMPLE_RATE (54.0e6)
52#define VSG_MIN_LEVEL (-120.0)
54#define VSG_MAX_LEVEL (10.0)
56#define VSG_MIN_IQ_OFFSET (-1024)
58#define VSG_MAX_IQ_OFFSET (1024)
60#define VSG_MIN_TRIGGER_LENGTH (0.1e-6)
62#define VSG_MAX_TRIGGER_LENGTH (0.1)
63
67typedef enum VsgTimebaseState {
73
78typedef enum VsgBool {
82 vsgTrue = 1
84
88typedef enum VsgStatus {
89 // Internal use only
90 vsgFileIOErr = -1000,
91 vsgMemErr = -999,
92
93 vsgInvalidOperationErr = -11,
94
99
110
113
119
120#ifdef __cplusplus
121extern "C" {
122#endif
123
134VSG_API const char* vsgGetAPIVersion();
135
151VSG_API VsgStatus vsgGetDeviceList(int *serials, int *count);
152
164VSG_API VsgStatus vsgOpenDevice(int *handle);
165
179VSG_API VsgStatus vsgOpenDeviceBySerial(int *handle, int serialNumber);
180
192VSG_API VsgStatus vsgCloseDevice(int handle);
193
204VSG_API VsgStatus vsgPreset(int handle);
205
218VSG_API VsgStatus vsgRecal(int handle);
219
231VSG_API VsgStatus vsgAbort(int handle);
232
242VSG_API VsgStatus vsgGetSerialNumber(int handle, int *serial);
243
253VSG_API VsgStatus vsgGetFirmwareVersion(int handle, int *version);
254
264VSG_API VsgStatus vsgGetCalDate(int handle, uint32_t *lastCalDate);
265
277VSG_API VsgStatus vsgReadTemperature(int handle, float *temp);
278
296VSG_API VsgStatus vsgSetRFOutputState(int handle, VsgBool enabled);
297
307VSG_API VsgStatus vsgGetRFOutputState(int handle, VsgBool *enabled);
308
323VSG_API VsgStatus vsgSetTimebase(int handle, VsgTimebaseState state);
324
334VSG_API VsgStatus vsgGetTimebase(int handle, VsgTimebaseState *state);
335
351VSG_API VsgStatus vsgSetTimebaseOffset(int handle, double ppm);
352
363VSG_API VsgStatus vsgGetTimebaseOffset(int handle, double *ppm);
364
378VSG_API VsgStatus vsgSetFrequency(int handle, double frequency);
379
391VSG_API VsgStatus vsgGetFrequency(int handle, double *frequency);
392
406VSG_API VsgStatus vsgSetSampleRate(int handle, double sampleRate);
407
417VSG_API VsgStatus vsgGetSampleRate(int handle, double *sampleRate);
418
436VSG_API VsgStatus vsgSetLevel(int handle, double level);
437
447VSG_API VsgStatus vsgGetLevel(int handle, double *level);
448
464VSG_API VsgStatus vsgSetAtten(int handle, int atten);
465
478VSG_API VsgStatus vsgGetIQScale(int handle, double *iqScale);
479
495VSG_API VsgStatus vsgSetIQOffset(int handle, int16_t iOffset, int16_t qOffset);
496
508VSG_API VsgStatus vsgGetIQOffset(int handle, int16_t *iOffset, int16_t *qOffset);
509
523VSG_API VsgStatus vsgSetDigitalTuning(int handle, VsgBool enabled);
524
534VSG_API VsgStatus vsgGetDigitalTuning(int handle, VsgBool *enabled);
535
548VSG_API VsgStatus vsgSetTriggerLength(int handle, double seconds);
549
559VSG_API VsgStatus vsgGetTriggerLength(int handle, double *seconds);
560
580VSG_API VsgStatus vsgSubmitIQ(int handle, float *iq, int len);
581
594VSG_API VsgStatus vsgSubmitTrigger(int handle);
595
605VSG_API VsgStatus vsgFlush(int handle);
606
617VSG_API VsgStatus vsgFlushAndWait(int handle);
618
635VSG_API VsgStatus vsgOutputWaveform(int handle, float *iq, int len);
636
656VSG_API VsgStatus vsgRepeatWaveform(int handle, float *iq, int len);
657
667VSG_API VsgStatus vsgOutputCW(int handle);
668
679VSG_API VsgStatus vsgIsWaveformActive(int handle, VsgBool *active);
680
688VSG_API VsgStatus vsgGetUSBStatus(int handle);
689
696
706VSG_API const char* vsgGetErrorString(VsgStatus status);
707
708#ifdef __cplusplus
709} // Extern C
710#endif
711
712#endif
VSG_API const char * vsgGetErrorString(VsgStatus status)
VSG_API VsgStatus vsgCloseDevice(int handle)
VSG_API VsgStatus vsgGetUSBStatus(int handle)
VsgBool
Definition: vsg_api.h:78
@ vsgTrue
Definition: vsg_api.h:82
@ vsgFalse
Definition: vsg_api.h:80
VSG_API VsgStatus vsgSetSampleRate(int handle, double sampleRate)
VsgStatus
Definition: vsg_api.h:88
@ vsgDeviceNotFoundErr
Definition: vsg_api.h:109
@ vsgAlreadyFlushed
Definition: vsg_api.h:115
@ vsgSettingClamped
Definition: vsg_api.h:117
@ vsgWaveformAlreadyActiveErr
Definition: vsg_api.h:96
@ vsgWaveformNotActiveErr
Definition: vsg_api.h:98
@ vsgInvalidDeviceErr
Definition: vsg_api.h:107
@ vsgUsbXferErr
Definition: vsg_api.h:101
@ vsgNullPtrErr
Definition: vsg_api.h:105
@ vsgNoError
Definition: vsg_api.h:112
@ vsgInvalidParameterErr
Definition: vsg_api.h:103
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)
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)
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 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:67
@ vsgTimebaseStateExternal
Definition: vsg_api.h:71
@ vsgTimebaseStateInternal
Definition: vsg_api.h:69