The G66WSB API SDK is implemented as a dynamic library (G66WSBAPI.dll). It provides object-oriented and non-object-oriented interface to control the G66WSB device. This document describes the object-oriented interface. The G66WSBAPI.dll library provides several object types which makes it possible to control G66WSB receivers.
The API is not fully thread-safe so preferably it should be used in single-threaded applications. It can be used in multi-threaded applications as well, but with some care: One G66WSB receiver can be controlled from a single user thread only.
A C/C++ header file G66WSBAPI.h is a part of the SDK. The API can be used by any 32-bit application under Microsoft Windows 10 and Windows 11 (including their 64-bit versions). The API can be used also by any 64-bit application but only under 64-bit versions of the supported operating systems.
The G66WSBAPI.dll library can be loaded to the application by two Microsoft Windows API functions. The first one is LoadLibrary and
the second one is LoadLibraryEx. After the library is loaded, it is necessary to get addresses of exported functions.
When the API is no longer required in the memory, the FreeLibrary function can be used to unload the API. Before the FreeLibrary is called, all the objects created using CreateInstance function must be freed calling the Free method, otherwise the application may enter an unpredictable state.
The following source code shows how to load the API:
#include <stdio.h> #include "G66WSBAPI.h" G66WSB_CREATE_INSTANCE CreateInstance; HMODULE hAPI; void main(void) { //Loading the API hAPI=LoadLibrary("G66WSBAPI.dll"); if(hAPI!=NULL) { //Retrieving address of the CreateInstance function CreateInstance=(G66WSB_CREATE_INSTANCE)GetProcAddress(hAPI,"CreateInstance"); //Here place code that uses the API FreeLibrary(hAPI); } else { //If the LoadLibrary fails printf("Failed to load G66WSBAPI.dll.\n"); } }
To enumerate available G66WSB devices the API provides an enumeration object. The object has to be created using the CreateInstance function. The following source code in C++ produces a list of serial numbers for the available G66WSB devices:
#include <stdio.h> #include "G66WSBAPI.h" void main(void) { G66WSB_CREATE_INSTANCE CreateInstance; HMODULE hAPI; IG66WSBDeviceEnumerator *Enumerator=NULL; G66WSB_DEVICE_INFO DevInfo; UINT32 Index; UINT32 Count; hAPI=LoadLibrary("G66WSBAPI.dll"); if(hAPI!=NULL) { CreateInstance=(G66WSB_CREATE_INSTANCE)GetProcAddress(hAPI,"CreateInstance"); if(CreateInstance(G66WSB_CLASS_ID_DEVICE_ENUMERATOR,(void**)&Enumerator)) { Enumerator->Enumerate(); Count=Enumerator->GetCount(); if(Count!=0) { printf("Available G66WSB devices count=%d:\n",Count); for(Index=0;Index<Count;Index++) { Enumerator->GetDeviceInfo(Index,&DevInfo); printf("%d. SN: %s\n",Index,DevInfo.SerialNumber); } } else { printf("No available G66WSB device found.\n"); } Enumerator->Free(); } else { printf("Failed to create enumerator object. Error code=%08X\n",GetLastError()); } FreeLibrary(hAPI); } else { printf("Failed to load G66WSBAPI.dll.\n"); } printf("Press enter to exit\n"); getchar(); }
The API provides an object to control the G66WSB device. Before the device is open, the object has to be created using the CreateInstance function.
The following source code in C++ shows how to open the first available G66WSB device.
#include <stdio.h> #include "G66WSBAPI.h" void main(void) { G66WSB_CREATE_INSTANCE CreateInstance; HMODULE hAPI; IG66WSBDevice *Device; //Loading the API hAPI=LoadLibrary("G66WSBAPI.dll"); if(hAPI!=NULL) { //Retrieving address of the CreateInstance API functions CreateInstance=(G66WSB_CREATE_INSTANCE)GetProcAddress(hAPI,"CreateInstance"); //Creating instance of the device object if(CreateInstance(G66WSB_CLASS_ID_DEVICE,(void**)&Device)) { //Opening the first available G66WSB device using predefined G66WSB_OPEN_FIRST constant if(Device->Open(G66WSB_OPEN_FIRST)) { //Here place code that works with the open G66WSB device //Closing device Device->Close(); } else { printf("Failed to open device. Error code=%08X\n",GetLastError()); } //Free interface of device object Device->Free(); } else { printf("Failed to create device object. Error code=%08X\n",GetLastError()); } FreeLibrary(hAPI); } else { //If the LoadLibrary fails printf("Failed to load G66WSBAPI.dll.\n"); } }
Creates single object of the specified class and returns the interface of the object.
C/C++ declaration
INT32 __stdcall CreateInstance(UINT32 ClassId,PVOID *Interface);
Address retrieval
G66WSB_CREATE_INSTANCE CreateInstance=(G66WSB_CREATE_INSTANCE)GetProcAddress(hAPI,"CreateInstance");
Parameters
ClassId[in] Specifies class identifier of the object to be created. This parameter must be one of the following:
Value Meaning G66WSB_CLASS_ID_DEVICE_ENUMERATOR Class identifier of the enumerator object. When the function finished successfully, IG66WSBDeviceEnumerator interface is stored to a pointer variable pointed to by the Interface parameter. G66WSB_CLASS_ID_DEVICE Class identifier of the device object. When the function finished successfully, IG66WSBDevice interface is stored to pointer variable pointed to by the Interface parameter. Interface[out] Pointer to a variable which receives the interface to a newly created object of the specified class. This parameter cannot be NULL.
Return value
If the function succeeds, the return value is non-zero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
All the objects created using CreateInstance must be freed, using the Free method before the API is unloaded using the FreeLibrary function.
IG66WSBDeviceEnumerator interface is the interface of the enumerator object which is created using the CreateInstance function and provides an enumeration mechanism of available G66WSB devices.
Frees the enumerator object from memory. The interface is no longer usable.
C/C++ declaration
void __stdcall Free(void);
Parameters
None
Return value
None
Performs enumeration of available G66WSB devices.
C/C++ declaration
BOOL __stdcall Enumerate(void);
Parameters
None
Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
Retrieves the number of available G66WSB devices enumerated using the IG66WSBDeviceEnumerator::Enumerate method.
C/C++ declaration
UINT32 __stdcall GetCount(void);
Parameters
None
Return value
The method returns the number of available G66WSB devices.
Retrieves information about the available G66WSB device.
C/C++ declaration
BOOL __stdcall GetDeviceInfo(UINT32 DeviceIndex,G66WSB_DEVICE_INFO *DeviceInfo);
Parameters
DeviceIndex[in] Specifies the index of the device. It can vary from zero to 'one less' than the value returned by the IG66WSBDeviceEnumerator::GetCount method.DeviceInfo[out] Pointer to a G66WSB_DEVICE_INFO structure to be filled with information about the device.
Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice interface is an interface of the device object which is created using the CreateInstance function. This interface allows control of the selected G66WSB device.
Frees the device object from memory. The interface is no longer usable.
C/C++ declaration
void __stdcall Free(void);
Parameters
None
Return value
None
Opens the G66WSB device by its system path and associates the device with the device object given by its interface pointer.
C/C++ declaration
BOOL __stdcall Open(CONST CHAR *DevicePath);
Parameters
DevicePath[in] Pointer to a null-terminated string which specifies the system path of the G66WSB device to open. The system device path of the device can be obtained from the G66WSB_DEVICE_INFO structure filled by the IG66WSBDeviceEnumerator::GetDeviceInfo method. Instead of the system path, it can use a device's serial number or one of the following values:
Value Meaning G66WSB_OPEN_FIRST This method opens the first available G66WSB device. G66WSB_OPEN_DEMO This method opens a demo G66WSB device. This allows developers to work with the API without a physical G66WSB device.
Return value
If the method succeeds, the return value non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
Use the IG66WSBDevice::Close method to close the currently open G66WSB device associated with the device object.
Closes the currently open G66WSB device associated with the device object and makes the object available for use with another G66WSB device.
C/C++ declaration
BOOL __stdcall Close(void);
Parameters
None
Return value
If the method succeeds, the return value non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
If the method fails the device object stays associated with currently open G66WSB device.
If no 'open' G66WSB device is associated with the object, the Close method does nothing.
Checks if a device is associated with the device object.
C/C++ declaration
BOOL __stdcall IsOpen(void);
Parameters
None
Return value
This method returns a non-zero value if a device is associated with the device object (using the IG66WSBDevice::Open method) and it can be controlled using methods of the device object interface.
The method returns zero if no device is associated with the device object.
Checks whether the device is still connected to the computer.
C/C++ declaration
BOOL __stdcall IsConnected(BOOL *Connected);
Parameters
Connected[out] Pointer to a variable which receives the current connection status. If the received value is non-zero, the device is still connected and available. If the device is disconnected, the received value is zero.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
If it is determined that the device is disconnected, the IG66WSBDevice::Close should be used.
IG66WSBDevice::GetDeviceInfo
Retrieves information about the G66WSB device.
C/C++ declaration
BOOL __stdcall GetDeviceInfo(G66WSB_DEVICE_INFO *DeviceInfo);Parameters
DeviceInfo[out] Pointer to the G66WSB_DEVICE_INFO structure to be filled with information about the device. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetLED
Sets the front panel LED flashing mode of the G66WSBe device.
C/C++ declaration
BOOL __stdcall SetLED(UINT32 LEDMode);Parameters
LEDMode[in] Specifies the front panel LED flashing mode which can be one of the following:
Value Meaning G66WSB_FRONT_PANEL_LED_MODE_DIAG Diagnostic flashing. G66WSB_FRONT_PANEL_LED_MODE_ON Always on. G66WSB_FRONT_PANEL_LED_MODE_OFF Always off. Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetLED method to determine the current flashing mode of the front panel LED.
A complete list of the diagnostic flashing patterns and their meaning is as follows:
No. Pattern Description Mode 1
Off No power 2
Fading No connection to a computer 3
Two short flashes USB connected, radio off 4
One short flash followed by a long one USB connected, radio on, ready 5
Two short flashes followed by a long one USB connected, driver not installed 6
Three short flashes USB connected, driver installed, application not running
IG66WSBDevice::GetLED
Determines the current flashing mode of device's front panel LED.
C/C++ declaration
BOOL __stdcall GetLED(UINT32 *LEDMode);Parameters
LEDMode[out] Pointer to a variable which receives the current flashing mode of device's front panel LED. For a list of possible values, see IG66WSBDevice::SetLED. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetPower
Turns the G66WSB device on or off.
C/C++ declaration
BOOL __stdcall SetPower(BOOL Power);Parameters
Power[in] Specifies whether to turn on or off the device. If this parameter is non-zero the device is turned on, if it is zero the device is turned off.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
If SetPower turns the device off, all the running streams are stopped.
Use the IG66WSBDevice::GetPower method to determine the current power state of the device.
IG66WSBDevice::GetPower
Determines whether the device is turned on or off.
C/C++ declaration
BOOL __stdcall GetPower(BOOL *Power);Parameters
Power[out] Pointer to a variable which receives current power state of the device. If it is non-zero, the device is turned on. If it is zero the device is turned off. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetDeviceState
Retrieves the current state of the G66WSB device, like internal temperatures, error state, data transfer counters.
C/C++ declaration
BOOL __stdcall GetDeviceState(G66WSB_DEVICE_STATE *State);Parameters
State[out] Pointer to a G66WSB_DEVICE_STATE structure to be filled with the current device state. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetBuiltInTest
Enables or disables the test signal at the receiver's input, which allows testing of the entire signal and processing path.
C/C++ declaration
BOOL __stdcall SetBuiltInTest(BOOL Enabled);Parameters
Enabled[in] Specifies whether to enable or disable the built-in test. If this parameter is non-zero, the test signal is enabled. If the parameter is zero, the test signal is disabled.Test signal parameters:
Frequency Level 152 MHz ± 5 MHz -34 dBm ± 3 dB Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetBuiltInTest
Retrieves information about whether the test signal is enabled or not.
C/C++ declaration
BOOL __stdcall GetBuiltInTest(BOOL *Enabled);Parameters
Enabled[out] Pointer to a variable which receives information about the test signal state. If it is non-zero, test signal is enabled, if it is zero, test signal is not enabled. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetAttenuator
Sets the input attenuator.
C/C++ declaration
BOOL __stdcall SetAttenuator(UINT32 Attenuator);Parameters
Attenuator[in] Value that specifies the attenuation level in dB. Possible values are: 0, 3, 6, 9, 12, 15, 18, 21. If the value is not from this list, the SetAttenuator method rounds the value to the nearest lower one.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetAttenuator method to determine the current setting of the attenuator.
IG66WSBDevice::GetAttenuator
Retrieves current setting of the attenuator.
C/C++ declaration
BOOL __stdcall GetAttenuator(UINT32 *Attenuator);Parameters
Attenuator[out] Pointer to a variable which receives the current attenuation level. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetPreamplifier
Enables or disables the RF input preamplifier.
C/C++ declaration
BOOL __stdcall SetPreamplifier(BOOL Preamp);Parameters
Preamp[in] Specifies whether to enable or disable the RF preamplifier. If this parameter is non-zero, the preamplifier is enabled. If the parameter is zero, the preamplifier is disabled.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetPreamplifier method to determine the current state of the preamplifier.
IG66WSBDevice::GetPreamplifier
Retrieves the current state of the RF input preamplifier.
C/C++ declaration
BOOL __stdcall GetPreamplifier(BOOL *Preamp);Parameters
Preamp[out] Pointer to a variable which receives the current state of the preamplifier. The value is non-zero if the preamplifier is enabled and zero if it is disabled. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetADCNoiseBlanker
Enables or disables the noise blanker on the ADC stream.
C/C++ declaration
BOOL __stdcall SetADCNoiseBlanker(BOOL Enabled);Parameters
Enabled[in] Specifies whether to enable or disable the noise blanker. If this parameter is non-zero, the noise blanker is enabled. If the parameter is zero, the noise blanker is disabled.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetADCNoiseBlanker method to determine the current state of the noise blanker.
IG66WSBDevice::GetADCNoiseBlanker
Retrieves the current ADC noise blanker state.
C/C++ declaration
BOOL __stdcall GetADCNoiseBlanker(BOOL *Enabled);Parameters
Enabled[out] Pointer to a variable which receives the current state of the noise blanker. The value is non-zero if noise blanker is enabled and zero if it is disabled. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetADCNoiseBlankerThreshold
Specifies the ADC noise blanker threshold.
C/C++ declaration
BOOL __stdcall SetADCNoiseBlankerThreshold(WORD Threshold);Parameters
Threshold[in] Specifies the maximum acceptable input signal. The maximum possible value of threshold is 32767, in this case the noise blanker has no effect even if it is enabled using the IG66WSBDevice::SetADCNoiseBlanker method.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetADCNoiseBlankerThreshold method to retrieve the current threshold of the noise blanker.
IG66WSBDevice::GetADCNoiseBlankerThreshold
Determines ADC noise blanker threshold.
C/C++ declaration
BOOL __stdcall GetADCNoiseBlankerThreshold(WORD *Threshold);Parameters
Threshold[out] Pointer to a variable which receives the threshold of ADC noise blanker. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetBandwidth
Sets bandwidth of the demodulator filter for all the DDC channels. The bandwidth is the same for all the DDC channels.
C/C++ declaration
BOOL __stdcall SetBandwidth(UINT32 Bandwidth);Parameters
Bandwidth[in] Specifies the new bandwidth of the demodulator filters in Hz. Possible values range from 1 to 250000 Hz.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetBandwidth
Retrieves the current demodulator filter bandwidth.
C/C++ declaration
BOOL __stdcall GetBandwidth(UINT32 *Bandwidth);Parameters
Bandwidth[out] Pointer to a variable which receives the current demodulator filter bandwidth. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::CreateDDC
Creates the digital down-converter (DDC) channel. The DDC makes the down-conversion of the signal produced by the ADC and subsequently other signal processing like FM demodulation, audio filtering, etc.
C/C++ declaration
BOOL __stdcall CreateDDC(UINT32 *DDCId);Parameters
DDCId[out] Pointer to a variable which receives the identification number of a newly created DDC channel. The value of the identification number can vary from 0 to one less than value of the MaxDDCCount member of the G66WSB_DEVICE_INFO structure. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The maximum number of DDC channels which can be created with the IG66WSBDevice::CreateDDC method, is determined by the MaxDDCCount member of the G66WSB_DEVICE_INFO structure.
Parameters of the digital down-converter are fixed. Sampling rate of produced I/Q signal is 312.5 kHz and the usable bandwidth is 250 kHz.
Use the IG66WSBDevice::DeleteDDC method to delete the DDC channel created by IG66WSBDevice::CreateDDC.
IG66WSBDevice::DeleteDDC
Deletes the DDC channel previously created by the IG66WSBDevice::CreateDDC method.
C/C++ declaration
BOOL __stdcall DeleteDDC(UINT32 DDCId);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::StartDDC
Starts DDC streaming.
C/C++ declaration
BOOL __stdcall StartDDC(UINT32 DDCId,UINT32 SampleSetsPerBuffer);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.SampleSetsPerBuffer[in] This parameter specifies the number of I/Q sample sets in each buffer passed to the IG66WSBDeviceCallback::G66WSB_DDCStreamCallback callback. The value of the SampleSetsPerBuffer has to be a multiple of 64, otherwise the method rounds it up to the nearest multiple of 64. If it is zero, the IG66WSBDevice::StartDDC fails.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The G66WSB device has to be turned on using the IG66WSBDevice::SetPower function before IG66WSBDevice::StartDDC is used otherwise IG66WSBDevice::StartDDC fails.
If the DDC streaming is already running before use of IG66WSBDevice::StartDDC, IG66WSBDevice::StartDDC fails.
Use the IG66WSBDevice::StopDDC method to stop streaming in the given DDC channel.
Decreasing the value of the SampleSetsPerBuffer parameter decreases latency and may increase CPU usage. Increasing the value of the SampleSetsPerBuffer parameter increases latency and may decrease CPU usage.
IG66WSBDevice::StopDDC
Stops DDC streaming.
C/C++ declaration
BOOL __stdcall StopDDC(UINT32 DDCId);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
If streaming is not active in the given DDC channel, IG66WSBDevice::StopDDC does nothing.
The IG66WSBDeviceCallback::G66WSB_DDCStreamCallback callback is not called after IG66WSBDevice::StopDDC returns.
The IG66WSBDevice::StopDDC method also stops the corresponding audio streaming.
IG66WSBDevice::SetChannel
Tunes the DDC to the specified sonobuoy channel.
C/C++ declaration
BOOL __stdcall SetChannel(UINT32 DDCId,UINT32 Channel);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Channel[in] Specifies sonobuoy channel. The value can vary from 1 to 99.Return value
If the function succeeds, the return value is non-zero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetChannel method to determine currently tuned sonobuoy channel and its frequency for the specified DDC.
IG66WSBDevice::GetChannel
Retrieves currently tuned sonobuoy channel number and its frequency for the specified DDC.
C/C++ declaration
BOOL __stdcall GetChannel(UINT32 DDCId,UINT32 *Channel,UINT32 *Frequency);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Channel[out] Pointer to a variable that receives the number of currently tuned sonobuoy channel. This parameter can be NULL if the application does not require this information.Frequency[out] Pointer to a variable that receives the frequency [in Hz] of currently tuned sonobuoy channel. This parameter can be NULL if the application does not require this information.Return value
If the function succeeds, the return value is non-zero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetChannelFrequency
Retrieves frequency of the specified sonobuoy channel.
C/C++ declaration
BOOL __stdcall GetChannelFrequency(UINT32 Channel,UINT32 *Frequency);Parameters
Channel[in] Specifies the number of sonobuoy channel. The value can vary from 1 to 99.Frequency[out] Pointer to a variable that receives the frequency [in Hz] of the specified sonobuoy channel. This parameter cannot be NULL.Return value
If the function succeeds, the return value is non-zero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetSignalLevel
Determines the current RF signal level for the given DDC channel.
C/C++ declaration
BOOL __stdcall GetSignalLevel(UINT32 DDCId,FLOAT *Peak,FLOAT *RMS);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Peak[out] Pointer to a variable which receives the current signal level (peak) in Volts. This parameter can be NULL if the application does not require this information.RMS[out] Pointer to a variable which receives the current signal level (RMS) in Volts. This parameter can be NULL if the application does not require this information.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
DDC streaming has to be active (started using the IG66WSBDevice::StartDDC method) before calling of GetSignalLevel, otherwise the returned peak and RMS signal levels are zero.
Signal level is evaluated for each buffer produced by the DDC. Buffer size (signal level evaluation rate) is given by the SampleSetsPerBuffer parameter of the IG66WSBDevice::StartDDC method.
The IG66WSBDeviceCallback::G66WSB_DDCStreamCallback callback method provides the signal level for each buffer passed to the callback, i.e. for each buffer used in the signal level evaluation. This provides a way to get the signal level from each processed buffer without the need to poll it using GetSignalLevel.
To convert RMS signal level in Volts to power in dBm use the following formulas:
P[W] = (VRMS)2 / R = (VRMS)2 / 50
P[dBm]= 10 * log10( P[W] * 1000 )
Where VRMS is the RMS signal level in Volts obtained by GetSignalLevel, R is the G66WSB receiver input impedance (50 Ω), P[W] is power in Watts and P[dBm] is power in dBm and 1000 is conversion coefficient W -> mW.
The following example shows how to obtain the current signal level in dBm from the DDC channel:
#include <stdio.h> #include <math.h> IG66WSBDevice *Device; //Interface of G66WSB device object, created using the CreateInstance function UINT32 DDCId; //Identifier of the DDC channel created by the IG66WSBDevice::CreateDDC method: Device->CreateDDC(&DDCId) float P_dBm,V_RMS; Device->GetSignalLevel(DDCId,NULL,&V_RMS); P_dBm=10.0*log10(V_RMS*V_RMS*(1000.0/50.0)); printf("Current signal level [RMS]: %.1f dBm\n",P_dBm);
IG66WSBDevice::SetAudioSampleRate
Sets the output audio sample rate for all DDC channels.
C/C++ declaration
BOOL __stdcall SetAudioSampleRate(UINT32 SampleRateIndex);Parameters
SampleRateIndex[in] Specifies the audio sample rate index which can be one of the following:
Value Audio sample rate G66WSB_AUDIO_SAMPLE_RATE_48000 48 kHz G66WSB_AUDIO_SAMPLE_RATE_64000 64 kHz G66WSB_AUDIO_SAMPLE_RATE_96000 96 kHz G66WSB_AUDIO_SAMPLE_RATE_128000 128 kHz G66WSB_AUDIO_SAMPLE_RATE_192000 192 kHz Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The DDC streaming must not be running when calling SetAudioSampleRate on any DDC channel. In other words, all DDC streams started with the IG66WSBDevice::StartDDC method must be stopped using the IG66WSBDevice::StopDDC method before calling SetAudioSampleRate, otherwise SetAudioSampleRate fails.
Use the IG66WSBDevice::GetAudioSampleRate method to determine the current audio sample rate and the corresponding sample rate index.
IG66WSBDevice::GetAudioSampleRate
Retrieves the current audio sample rate and the corresponding sample rate index.
C/C++ declaration
BOOL __stdcall GetAudioSampleRate(UINT32 *SampleRateIndex,UINT32 *SampleRate);Parameters
SampleRateIndex[out] Pointer to a variable which receives the current audio sample rate index. This parameter can be NULL if the application does not require this information.SampleRate[out] Pointer to a variable which receives the current audio sample rate in Hz. This parameter can be NULL if the application does not require this information.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::StartAudio
Starts audio streaming for given the channel.
C/C++ declaration
BOOL __stdcall StartAudio(UINT32 DDCId,UINT32 SamplesPerBuffer);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.SamplesPerBuffer[in] Specifies the number of samples in each buffer passed to the IG66WSBDeviceCallback::G66WSB_AudioStreamCallback callback method. The value has to be a multiple of 64 greater than zero. If it is zero, the StartAudio method fails. If it is not a multiple of 64, the method rounds it up to nearest multiple of 64.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Before StartAudio is used, the G66WSB device has to be turned on using the IG66WSBDevice::SetPower method and DDC streaming has to be started using the IG66WSBDevice::StartDDC method, otherwise StartAudio fails.
If the audio streaming for the given DDC channel is already running, StartAudio fails.
Use the IG66WSBDevice::StopAudio method to stop audio streaming.
Decreasing the value of the SamplesPerBuffer parameter decreases latency and may increase CPU usage. Increasing the value of the SamplesPerBuffer parameter increases latency and may decrease CPU usage.
IG66WSBDevice::StopAudio
Stops audio streaming for the given channel.
C/C++ declaration
BOOL __stdcall StopAudio(UINT32 DDCId);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
If audio streaming is not active, StopAudio does nothing.
The IG66WSBDeviceCallback::G66WSB_AudioStreamCallback callback method is not called after StopAudio returns.
IG66WSBDevice::SetAudioGain
Sets fixed audio gain for the given channel.
C/C++ declaration
BOOL __stdcall SetAudioGain(UINT32 DDCId,double Gain);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Gain[in] Specifies a new fixed audio gain in dB.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetAudioGain method to retrieve the current audio gain.
IG66WSBDevice::GetAudioGain
Retrieves the current fixed audio gain for the given channel.
C/C++ declaration
BOOL __stdcall GetAudioGain(UINT32 DDCId,double *Gain);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Gain[out] Pointer to a variable that receives the current fixed gain in dB. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetAudioFilter
Enables or disables the audio filter for the given channel.
C/C++ declaration
BOOL __stdcall SetAudioFilter(UINT32 DDCId,BOOL Enabled);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Enabled[in] Specifies whether to enable or disable the audio filter. If this parameter is non-zero, the filter is enabled. If the parameter is zero, the filter is disabled.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetAudioFiler method to retrieve the current state of the audio filter.
IG66WSBDevice::GetAudioFilter
Retrieves the current state of the audio filter for the given channel.
C/C++ declaration
BOOL __stdcall GetAudioFilter(UINT32 DDCId,BOOL *Enabled);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Enabled[out] Pointer to a variable which receives the current state of the audio filter. The value is non-zero if the filter is enabled and zero if it is disabled. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetAudioFilterParams
Sets the parameters of the audio filter for the given channel.
C/C++ declaration
BOOL __stdcall SetAudioFilterParams(UINT32 DDCId,UINT32 CutOffLow,UINT32 CutOffHigh,double Deemphasis);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.CutOffLow[in] Specifies the cut-off low frequency of the filter in Hz. This is the start frequency of the filter's passband, it can range from 0 to 31999 Hz. The value has to be less than the cut-off high frequency specified by the CutOffHigh parameter.CutOffHigh[in] Specifies the cut-off high frequency of the filter in Hz. This is the end frequency of the filter's passband, it can range from 1 to 32000 Hz. The value has to be greater than the cut-off low frequency specified by the CutOffLow parameter.Deemphasis[in] Specifies the de-emphasis of the filter in dB per octave. De-emphasis starts at the cut-off low frequency of the filter. This value can range from -9.9 to 0.0 dB/octave. Zero means that de-emphasis is disabled.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetAudioFilerParams method to retrieve the current parameters of the audio filter.
IG66WSBDevice::GetAudioFilterParams
Retrieves current parameters of the audio filter for the given channel.
C/C++ declaration
BOOL __stdcall GetAudioFilterParams(UINT32 DDCId,UINT32 *CutOffLow,UINT32 *CutOffHigh,double *Deemphasis);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.CutOffLow[out] Pointer to a variable which receives the current cut-off low frequency of the filter. This parameter can be NULL if the application does not require this information.CutOffHigh[out] Pointer to a variable which receives the current cut-off high frequency of the filter. This parameter can be NULL if the application does not require this information.Deemphasis[out] Pointer to a variable which receives the current de-emphasis setting of the filter. This parameter can be NULL if the application does not require this information.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetAudioFilterLength
Specifies the audio filter length for the given channel. The audio filter is implemented as an FIR filter. This method specifies the number of coefficients used in the filtration procedure.
C/C++ declaration
BOOL __stdcall SetAudioFilterLength(UINT32 DDCId,UINT32 Length);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Length[in] Specifies the length of the audio filter. The value has to be a multiple of 8, greater than or equal to 64 and less than or equal to 32768. If it is not a multiple of 8, the method rounds it up to nearest multiple of 8.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Audio streaming in the given DDC channel has to be idle (streaming is not started using the IG66WSBDevice::StartAudio method) when calling the IG66WSBDevice::SetAudioFilterLength method, otherwise it fails.
Increasing the filter length increases the filter steepness and may increase CPU usage.
Use the IG66WSBDevice::GetAudioFilterLength method to determine the current length of the audio filter.
IG66WSBDevice::GetAudioFilterLength
Retrieves the current audio filter length for the given channel.
C/C++ declaration
BOOL __stdcall GetAudioFilterLength(UINT32 DDCId,UINT32 *Length);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Length[out] Pointer to a variable which receives the current length of the audio filter. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetVolume
Sets the audio volume for the given channel.
C/C++ declaration
BOOL __stdcall SetVolume(UINT32 DDCId,BYTE Volume);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Volume[in] Specifies the new volume. The value can vary from 0 to 31, where 31 means maximum volume.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetVolume method to retrieve the current volume.
IG66WSBDevice::GetVolume
Retrieve the current volume for the given channel.
C/C++ declaration
BOOL __stdcall GetVolume(UINT32 DDCId,BYTE *Volume);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Volume[out] Pointer to a variable which receives the current volume. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::SetMute
Mutes or unmutes the audio.
C/C++ declaration
BOOL __stdcall SetMute(UINT32 DDCId,BOOL Mute);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Mute[in] Specifies whether to mute or unmute audio. If this parameter is non-zero, the audio is muted. If the parameter is zero, the audio is unmuted.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
Use the IG66WSBDevice::GetMute method to retrieve the current mute state.
IG66WSBDevice::GetMute
Retrieves the current mute state for the given channel.
C/C++ declaration
BOOL __stdcall GetMute(UINT32 DDCId,BOOL *Mute);Parameters
DDCId[in] Identification number of the DDC channel created by the IG66WSBDevice::CreateDDC method.Mute[out] Pointer to a variable which receives the current mute state. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::StartChannelActivity
Starts monitoring sonobuoy channels activity - signal levels of all the channels at once.
C/C++ declaration
BOOL __stdcall StartChannelActivity(WORD Interval);Parameters
Interval[in] Specifies the time interval in milliseconds for how often the signal levels are measured and sent to the application calling the IG66WSBDeviceCallback::G66WSB_ChannelActivityCallback callback.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The G66WSB device has to be turned on using the IG66WSBDevice::SetPower method before use of StartChannelActivity, otherwise the StartChannelActivity method fails.
Too low a value of the Interval parameter can dramatically increase data flow through USB which could cause failure of active streaming.
Use the IG66WSBDevice::StopChannelActivity method to stop the channels activity monitoring.
IG66WSBDevice::StopChannelActivity
Stops monitoring sonobuoy channels activity previously started by the IG66WSBDevice::StartChannelActivity method.
C/C++ declaration
BOOL __stdcall StopChannelActivity(void);Parameters
NoneReturn value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The IG66WSBDeviceCallback::G66WSB_ChannelActivityCallback callback is not called when StopChannelActivity returns.
IG66WSBDevice::GetSpectrumCompensation
Determines the compensation value for the frequency spectrum computed from the DDC signal. It is used to convert relative amplitudes in dB to absolutes ones in dBm.
C/C++ declaration
BOOL __stdcall GetSpectrumCompensation(UINT32 Channel,float *Value);Parameters
Channel[in] Specifies sonobuoy channel to retrieve the compensation value for. It can vary from 1 to 99.Value[out] Pointer to a variable which receives compensation value for the specified sonobuoy channel. This parameter cannot be NULL.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.Remarks
The following example shows how to use the GetSpectrumCompensation method in IG66WSBDeviceCallback::G66WSB_DDCStreamCallback callback:
//Let the following is prototype of a function which computes FFT from I/Q signal stored in //the buffer pointed to be the Input parameter. Result is stored in complex form in the buffer //pointed to by the Output parameter. Size of the FFT is given be the Size parameter. //The example uses 2048 bins FFT. void FFT(float *Output,const float *Input,int Size); IG66WSBDevice *Device; //Interface of G66WSB device object, created by the CreateInstance function UINT32 DDCId; //Identifier of the DDC channel created by the IG66WSBDevice::CreateDDC method: Device->CreateDDC(&DDCId) UINT32 SonobuoyChannel; FLOAT FFTBuffer[2*2048]; //Buffer for FFT result FLOAT Compensation; //Spectrum compensation value MY_CALLBACK_OBJECT MyCallbackObject; //User defined callback object which implements methods of IG66WSBDeviceCallback interface Code before... //Retrieve sonobuoy channel that the specified DDC is tuned to Device->GetChannel(DDCId,&SonobuoyChannel,NULL); //Retrieve spectrum compensation value Device->GetSpectrumCompensation(SonobuoyChannel,&Compensation); //Compensation value have to be updated after change of the sonobuoy channel of the given DDC //Register callback object Device->SetCallback(&MyCallbackObject); //Start DDC streaming //The SampleSetsPerBuffer parameter is set to 2048 which is size of the FFT to simplify //the example. Device->StartDDC(DDCId,2048); Code after... void __stdcall MY_CALLBACK_OBJECT::G66WSB_DDCStreamCallback(IG66WSBDevice *Device,UINT32 DDCId,const float *Buffer,UINT32 Count,float Peak,float RMS) { UINT32 i; //Compute FFT FFT(FFTBuffer,Buffer,2048); //Converts complex FFT result to dB for(i=0;i<2048;i++) { FFTBuffer[i]=(FLOAT)(10.0*log10(FFTBuffer[i*2]*FFTBuffer[i*2]+FFTBuffer[i*2+1]*FFTBuffer[i*2+1])); } //Apply compensation value to get amplitudes in dBm for(i=0;i<2048;i++) { FFTBuffer[i]+=Compensation; } //now the FFTBuffer contains amplitudes in dBm }
IG66WSBDevice::SetCallback
Registers a user-defined callback object given by its interface. The API calls 'methods' of the object to pass samples to the application. The object has to implement methods of the IG66WSBDeviceCallback interface.
C/C++ declaration
BOOL __stdcall SetCallback(IG66WSBDeviceCallback *Callback);Parameters
Callback[in] Interface to a user-defined object to be registered as a callback object. If this parameter is NULL, the current callback object is unregistered, the API will not call any callback after SetCallback returns.Return value
If the method succeeds, the return value is non-zero.
If the method fails, the return value is zero. To get extended error information, call GetLastError.
IG66WSBDevice::GetCallback
Returns a pointer to the current user-defined callback object.
C/C++ declaration
IG66WSBDeviceCallback* __stdcall GetCallback(void);Parameters
NoneReturn value
This method returns a pointer to the current user-defined callback object, previously set by the IG66WSBDevice::SetCallback method.
IG66WSBDeviceCallback interface
The IG66WSBDeviceCallback interface is an interface of the application-defined object that implements methods of the interface. The object is used to receive streamed buffers from the G66WSB device object. See IG66WSBDevice::SetCallback.
Each method of the interface is called in context of the thread created by the API. If some shared data is to be accessed inside callback methods, it is recommended that a mutual-exclusion synchronization method is used. The application should not call any G66WSB API function/method from inside the method of this interface, otherwise the function/method fails. The only exception is the IG66WSBDevice::GetSpectrumCompensation method which can be called from inside the callbacks.
IG66WSBDeviceCallback::G66WSB_DDCStreamCallback
This is called by the API to pass I/Q samples from the DDC to the application. The DDC streaming can be started using the IG66WSBDevice::StartDDC method.
C/C++ declaration
void __stdcall G66WSB_DDCStreamCallback(IG66WSBDevice *Device,UINT32 DDCId,const float *Buffer,UINT32 Count,float SlevelPeak,float SlevelRMS);Parameters
DeviceInterface of the device object which called the method.DDCIdSpecifies the identification number of the DDC channel. See IG66WSBDevice::CreateDDC.BufferPointer to the buffer which contains I/Q sample sets from DDC. Sample rate is 312.5 kHz, usable bandwidth is 250 kHz. Sample is 32-bit IEEE float from the range of -1.0 to 1.0. One I/Q sample set consists of two samples, I and Q.CountSpecifies the number of I/Q sample sets in the buffer pointed to by the Buffer parameter. This value is equal to value of the SampleSetsPerBuffer parameter of the IG66WSBDevice::StartDDC function.SlevelPeakSpecifies the peak signal level in Volts evaluated from samples stored in the buffer pointed to by the Buffer parameter.SlevelRMSSpecifies the RMS signal level in Volts evaluated from samples stored in the buffer pointed to by the Buffer parameter. For detailed information on how to convert RMS signal level to dBm, see the remarks of the IG66WSBDevice::GetSignalLevel method.
IG66WSBDeviceCallback::G66WSB_AudioStreamCallback
This is called by the API to pass audio samples to the application. The audio streaming can be started using the IG66WSBDevice::StartAudio or IG66WSBDevice::StartAudioPlayback method. The callback is invoked three times for each audio buffer (see the description of the Stage parameter).
C/C++ declaration
void __stdcall G66WSB_AudioStreamCallback(IG66WSBDevice *Device,UINT32 DDCId,UINT32 Stage,const float *Buffer,UINT32 Count);Parameters
DeviceInterface of the device object which called the method.DDCIdSpecifies the identification number of the DDC channel. See IG66WSBDevice::CreateDDC.StageSpecifies the stage of audio samples stored in the buffer pointed to by the Buffer parameter. The value of this parameter can be one of the following:
Value Meaning G66WSB_AUDIO_STREAM_CALLBACK_STAGE_0 The buffer contains audio samples affected by the audio gain (see IG66WSBDevice::SetAudioGain). G66WSB_AUDIO_STREAM_CALLBACK_STAGE_1 The buffer contains audio samples affected by the audio gain and audio filter (see IG66WSBDevice::SetAudioGain and IG66WSBDevice::SetAudioFilter). G66WSB_AUDIO_STREAM_CALLBACK_STAGE_2 The buffer contains audio samples affected by the audio gain, audio filter and volume (see IG66WSBDevice::SetAudioGain, IG66WSBDevice::SetAudioFilter, IG66WSBDevice::SetVolume and IG66WSBDevice::SetMute). BufferPointer to the buffer which contains samples of the audio signal. The audio signal is mono (single channel), the sample rate is specified by the IG66WSBDevice::SetAudioSampleRate method, each sample is 32-bit IEEE float from the range of -1.0 to 1.0.CountSpecifies the number of samples stored in the buffer pointed to by the Buffer parameter. This value is equal to the value of the SamplesPerBuffer parameter of the IG66WSBDevice::StartAudio or IG66WSBDevice::StartAudioPlayback method.
IG66WSBDeviceCallback::G66WSB_ChannelActivityCallback
Thist is called by the API to pass measured signal levels of all the sonobuoy channels to the application at once. Channels activity monitoring is started using the IG66WSBDevice::StartChannelActivity method.
C/C++ declaration
void __stdcall G66WSB_ChannelActivityCallback(IG66WSBDevice *Device,const float *RMS,const float *dBm,WORD ADCLevel);Parameters
DeviceInterface of the device object which called the method.RMSPointer to the array which contains measured signal levels of the all the sonobuoy channels in volts. The array consists of 99 elements, the first element in the array (RMS[0]) contains signal level of the sonobuoy channel 1, the second elements (RMS[1]) contains signal level of the sonobuoy channel 2, etc.dBmPointer to the array which contains measured signal levels of the all the sonobuoy channels in dBm. The array consists of 99 elements, the first element in the array (dBm[0]) contains signal level of the sonobuoy channel 1, the second elements (dBm[1]) contains signal level of the sonobuoy channel 2, etc.ADCLevelSpecifies the maximum amplitude of ADC signal. Measurement of the maximum is started at the end of the previous calling of the this callback up to the current one. The possible value ranges from 0 to 32767. The value 32767 means ADC clipping.
Structures
G66WSB_DEVICE_INFO
Contains information about the G66WSB device.
C/C++ declaration
#pragma pack(push,1) typedef struct { char DevicePath[MAX_PATH]; BYTE InterfaceType; char SerialNumber[9]; WORD HWVersion; WORD FWVersion[3]; BYTE EEPROMVersion; UINT32 MaxDDCCount; UINT32 Flags; } G66WSB_DEVICE_INFO; #pragma pack(pop)Members
DevicePathThe device system path in a null-terminated string.InterfaceTypeDevice interface type. The value can be one of the following:
Value Meaning G66WSB_INTERFACE_TYPE_PCIE The device is connected to the computer via PCI express. G66WSB_INTERFACE_TYPE_USB2 The device is connected to the computer via USB that is not capable of USB3 speeds. The receiver works in limited mode and it is not usable. G66WSB_INTERFACE_TYPE_USB3 The device is connected to the computer via USB3. G66WSB_INTERFACE_TYPE_DEMO Demo G66WSB device. SerialNumberSerial number in null-terminated string.HWVersionVersion of the hardware.FWVersion[3]Version of the firmwares.EEPROMVersionEEPROM structure version.MaxDDCCountMaximum number of DDC channels which can be created by the CreateDDC function per single device.FlagsReserved for future use.
G66WSB_DEVICE_STATE
Contains information about the device state.
C/C++ declaration
#pragma pack(push,1) typedef struct { UINT32 Flags; INT32 Temperatures[3]; UINT32 FanRPM; UINT64 DataTransferred; UINT64 DataLost; } G66WSB_DEVICE_STATE; #pragma pack(pop)Members
FlagsA set of bits flags. This member can be a combination of the following flags:
Value Meaning G66WSB_DEVICE_STATE_HIGH_TEMPERATURE Critical temperature is detected and the device is turned off automatically. In this case the application should call IG66WSBDevice::SetPower to turn off explicitly. TemperaturesInternal device's temperatures in °C. If temperature is not available or it is unknown the value is equal to G66WSB_TEMPERATURE_UNKNOWN.FanRPMDevice's fan rotations per minute. Zero value means the fan is off.DataTransferredTotal number of bytes transferred from/to device since it has been open.DataLostTotal number of bytes lost. A non-zero value can indicate an unreliable USB connection or connection with insufficient data throughput.
Table
Sonobuoy channels
Channel Frequency Channel Frequency Channel Frequency 1 162.250 MHz 34 136.750 MHz 67 149.125 MHz 2 163.000 MHz 35 137.125 MHz 68 149.500 MHz 3 163.750 MHz 36 137.500 MHz 69 149.875 MHz 4 164.500 MHz 37 137.875 MHz 70 150.250 MHz 5 165.250 MHz 38 138.250 MHz 71 150.625 MHz 6 166.000 MHz 39 138.625 MHz 72 151.000 MHz 7 166.750 MHz 40 139.000 MHz 73 151.375 MHz 8 167.500 MHz 41 139.375 MHz 74 151.750 MHz 9 168.250 MHz 42 139.750 MHz 75 152.125 MHz 10 169.000 MHz 43 140.125 MHz 76 152.500 MHz 11 169.750 MHz 44 140.500 MHz 77 152.875 MHz 12 170.500 MHz 45 140.875 MHz 78 153.250 MHz 13 171.250 MHz 46 141.250 MHz 79 153.625 MHz 14 172.000 MHz 47 141.625 MHz 80 154.000 MHz 15 172.750 MHz 48 142.000 MHz 81 154.375 MHz 16 173.500 MHz 49 142.375 MHz 82 154.750 MHz 17 162.625 MHz 50 142.750 MHz 83 155.125 MHz 18 163.375 MHz 51 143.125 MHz 84 155.500 MHz 19 164.125 MHz 52 143.500 MHz 85 155.875 MHz 20 164.875 MHz 53 143.875 MHz 86 156.250 MHz 21 165.625 MHz 54 144.250 MHz 87 156.625 MHz 22 166.375 MHz 55 144.625 MHz 88 157.000 MHz 23 167.125 MHz 56 145.000 MHz 89 157.375 MHz 24 167.875 MHz 57 145.375 MHz 90 157.750 MHz 25 168.625 MHz 58 145.750 MHz 91 158.125 MHz 26 169.375 MHz 59 146.125 MHz 92 158.500 MHz 27 170.125 MHz 60 146.500 MHz 93 158.875 MHz 28 170.875 MHz 61 146.875 MHz 94 159.250 MHz 29 171.625 MHz 62 147.250 MHz 95 159.625 MHz 30 172.375 MHz 63 147.625 MHz 96 160.000 MHz 31 173.125 MHz 64 148.000 MHz 97 160.375 MHz 32 136.000 MHz 65 148.375 MHz 98 160.750 MHz 33 136.375 MHz 66 148.750 MHz 99 161.125 MHz