SmartSDR Application Programming Interfaces (API)
SmartSDR for the FLEX-6000 Signature Series radios offers a world of possibilities for software interfacing. For the first time in amateur radio history, a transceiver is completely controllable using standard Internet protocols: TCP/IP, UDP/IP, and VITA-49. With SmartSDR’s APIs it’s easy to integrate existing programs with the FLEX-6000 series transceivers or build new interfaces, control systems, or even new modes. The possibilities of what can be achieved are virtually limitless. The FlexRadio Application Developer Partner (FlexADP) Program provides resources and support to developers fashioning applications and mobile apps that work with the SmartSDR APIs. With enrollment in the FlexADP Program, developers enjoy access to pre-release versions of software, forums where software functionality can be discussed with other developers, and access to documentation and software resources for all of the SmartSDR API components.
With SmartSDR there are several APIs to choose from. The APIs have been developed with typical applications and development styles in mind to cover a breadth of capability and platforms.
SmartSDR TCP/IP API
The FLEX-6000 Signature Series radio was designed as an Internet appliance from the ground up. The radio plugs directly into Ethernet and communicates with other software using standard Internet protocols. The TCP/IP API may be used from any computer that supports Ethernet communication and has a TCP/IP and optionally UDP/IP stack. Commands and status are communicated directly to the radio without the requirement of a computer over a standard TCP/IP socket. Commands are simple and in plain English to facilitate ease of programming and understanding. For example, to tune a slice receiver, a command similar to “slice 1 tune 14.235” is issued to tune the slice receiver to 14.235MHz. Responses to this command and statuses of commands sent from other programs are all sent to the same TCP/IP port.
A UDP/IP interface for streaming data such as real-time meters and both real and quadrature (IQ) samples for processing may also be used. UDP/IP data is encoded in VITA-49 packets, an international standard for network communication of radio samples and data. No registration is required for API use and every radio ships with the API software in place and ready to go. In fact, FlexRadio Systems’ own client interface, SmartSDR, uses our own API 100% of the time.
For developers on the Microsoft® Windows™ platform family, FlexRadio Systems has produced FlexLib. FlexLib is a Microsoft Visual Studio DLL that provides all the same interfaces as the SmartSDR TCP/IP API, but in a .NET event-driven style that is familiar to Windows programmers. Using FlexLib is simple — just connect to a radio and configure events to capture changes in the radio. Commands may be sent through methods to the radio. Because FlexRadio Systems SmartSDR Windows client software is layered on the FlexLib API, you can be sure that it is well tested and optimized to perform any function that is possible inside SmartSDR. Source code for FlexLib is also available to assist in understanding the functions of the library or porting to other platforms.
For those wishing to experiment by creating their own digital mode or waveform, FlexRadio Systems offers the SmartSDR Waveform API. The Waveform API allows developers to create their own digital modes and integrate directly into SmartSDR. When a waveform module is loaded, the module registers with SmartSDR and delineates the modes it supports. These modes are then available in the standard mode selection interface inside SmartSDR. The operator simply selects the mode and beings operating. The Waveform API exchanges commands and status with the developer written waveform module as well as streaming samples. Completed modes may be run both outside and inside the radio with virtually no changes!