Download C API 3.8.4

View Release Notes in PDF form


1 Introduction 

This article describes the release versions 3.8.4 of the ThinkRF C language Application Programming Interface (API) for command, control and data acquisition using ThinkRF Real-Time Spectrum Analyzer (RTSA) products. See the “Change Log.txt” included in the release package for the record of the current and past releases. 


This product is distributed as a single file archive in .zip format containing Microsoft Windows library file (.a and .lib) in 32- and 64-bit, interface (.h) files, and example files. 


This version is compatible with the following RTSA products with the associated models 408, 408P, 418, 427: 

        • R5500 / R5550 / R5700 / R5750 

        • Legacy products WSA5000 


2 Fixed Defects 

The following issues have been fixed in this version: 

        1. Fixed in sweep-device:

            a) the handling of the frequency start/stop at the maximum boundary, and

            b) the maximum packets per block for each sweep step when RBW is too small (min RBW is 2 Hz).


3 New Features 

The following new features and capabilities were added: 

        1. Added IQ swap context information from the VRT extension packet, which included: 

            a) adding a new struct member 'uint8_t iq_swapped' to wsa_extension_packet struct, and 

            b) parsing it in extract_extension_packet_data() function. 

        2. Added a new member rbw_actual to wsa_power_spectrum_config struct.


4 Other Changes 

The following other changes were made: 

        1. Improved the command socket transfer time for winsock2 (which was slow in some query scenarios).  This improve the sweep-device initialization timing.

        2. Adjusted how data socket is cleaned after an infinite sweep or stream stop to reduce mishandling of packets remained in the socket. 

        3. Adjusted sweep-device's frequencies to match the device's tuning resolution. 


5 Known Issues and Limitations 

The following are known limitations or other issues present in this version. 

        1. Usage of some sweep-device's RBWs (such as 2kHz) for wsa_capture_power_spectrum() could result in a slow sweep (when compared to 1kHz) due to the FFT function usage that is not optimized for non-power of 2 FFT length. Hence, when RBW values that give raise to FFT length at or closer to power of 2, the sweep data processing will be more optimal. 

        2. The message logging capability implemented in wsa_debug.* is suspected to cause intermittent problems after hours of intense sweeping activity. To avoid potential issues, disable message logging using “DEBUGLEVEL DNO” in wsa_debug.h. 

        3. The source code has only been partially documented using Doxygen. 


6 Usage Notes

This section lists any special notes or warnings that a user should be aware of when using the API.

        1. When performing a sweep-device over a very large span (typically 7GHz or higher), usage of small RBWs under 10Hz could result in a memory allocation failure as your computer might not have enough RAM space to handle the allocation.

        2. Recommend to use C++ API (which built on top of C API) to take advantage of high-level functions (that handle calling necessary C API low-level functions) for faster integration and data capture or analysis.



Download C API 3.8.4

View Release Notes in PDF form