SPx Programming

SPx Radar Software

SPx is provided as a set of C++ classes for Windows (7,8,8.1,10) or Linux/X11. You build an SPx application by combining the SPx library classes with your application code, and possibly one or more pre-built SPx servers.

SPx is a framework of classes that provide a wide range of radar-related processing and display functions. Your application could use one SPx capability or the full set.

An SPx solution can be based on a client-server architecture or an integrated architecture in which the software modules run with the application on a single computer. In a distributed solution, an SPx server can receive radar video in a remote server and distribute video to client displays over a LAN. The remote SPx server can be a custom application that you write from the SPx objects, or it can be one of the pre-defined SPx servers.

Processes and Threads

An SPx application can run as a server in its own process, or may be linked with application code to form a multi-threaded program. With a modern multi-core processor, the ability to create separate threads of execution allows for optimum use of the computing capability.

SPx Software

SPx is supplied as a set of include files and C++ class libraries with associated C functions. A development release comprises:

  • Include files
  • Libraries for Windows (7,8,8.1,10) or Linux
  • Example source code
  • Pre-built application servers
  • Tutorials + training material
  • Demonstration programs
  • Utility programs (network recorder, test generator, NMEA test source etc.)
  • First-class technical support direct from Cambridge Pixel or local distributors

The libraries supplied may be for Windows or Linux, with other operating systems on request. You develop your application by including the SPx classes to provide the capabilities for radar processing and display. The SPx framework is open and extensible, so you can add your own processing modules and access the data at any stage of the processing. When you have developed your application and linked with the SPx libraries, the executable program runs as a normal C/C++ program. SPx is licensed through a developer licence, which supports the process of writing the application and includes support from Cambridge Pixel, and run-time licenses for the deployed modules. A dongle may be required in your deployed system to enable the software to run correctly (other run-time protection methods are possible if your application market would prefer not to use dongles).

Creating a radar overlay to a graphics application

A simple application of SPx is to add radar scan conversion into a graphics applications - often called a radar overlay. In reality, SPx is designed to support a underlay-radar-overlay configuration, in which graphics can be placed underneath the radar video for semi-transparent blending, or as an overlay to the radar video.

A radar overlay application is constructed by combining a number of SPx classes:

  • Radar source class. This could be a test generator, network receiver or hardware interface. There are a number of available classes that all have the common characteristic of providing a source of radar video.
  • Radar Interface Buffer (RIB). The RIB provides buffered storage between the generation of radar video and the processing. One thread writes into the RIB and another reads out.
  • Polar Interface Module (PIM). The PIM provides storage for radar video, typically in the form of a range-azimuth storage. Data received from the RIB is written into the PIM where it is available for manipulation by processes.
  • Optional Processing. Any number of SPx (or custom written) processes can process data from the PIM. A processing chain may be constructed that starts with a PIM. For the purposes of this example, the only process of interest is the scan conversion.
  • PPI Scan Conversion. The PPI scan converter takes data from the PIM at regular intervals (nominally every 20ms) and scan converts to a bitmap structure. Within SPx scan conversion is divided into two stages: the conversion from polar to rectangular coordinates and the display of that scan converted data.
  • PPI Scan Conversion Display. The final processing component takes the scan converted data and displays it. This display process allows graphics that are generated outside of SPx to be combined with the radar video and displayed. It is significant to note that SPx is largely insensitive to the method of generating the overlay/underlay graphics.