IntroductionThe ADSTools is a Java SE 1.6 solution for processing the data from the Kinetic Avionics Basestation version 220.127.116.11 socket interface. It should run on Windows or Linux.
Put the files in your "home" directory: e.g., c:\users\ on Windows, or /home/ on Linux. If in doubt, open-up a
... [More] command-line window and type:
The Kinetic Avionics SBS-1 is a radio device that listens to aircraft Mode-S transmissions. The ADSTools allows this information to be used in network applications, and is built using the Sun Netbeans IDE. The SBS-1 socket data is too redundant and noisy for WAN use. The ADSTools programs allow you to broadcast the socket data to multiple UDP hosts, and reduces the bandwidth required. You can also adjust the transmission time to any seconds value. For example 10 seconds would be the same as a Long Range radar rotating at 6 RPM.
The raw Basestation socket data is grouped into tracks, and the tracks are sent over the UDP port only if any of the data values changes in the last minute. The UDP payload is basically ASCII text. UDP was chosen, to keep from having to connect to the clients or vice-versa. UDP, being unreliable, has some loss and packets can get out of sequence. In the big scheme of things, it doesn't matter much in this application.
A UDP display program is also included to display the targets on a 2D radar display. It has very limited functionality currently (zoom, pan). It grabs the latest METAR information from your selected airport, and subtracts the pressure altitude from the target altitude when they are below the transition altitude (configurable).
You can send your tracks to other users over the network, and they can send tracks to you. The only limit is the bandwidth you have available, and the restrictions of your ISP account.
Some may note that PlanePlotter (PP) already does the same thing. The difference (besides PP being a much more sophisticated program), is that this program was designed to show track updates quickly. One second updates as opposed to One minute updates. Also, the program is used as a remote display. You can be in your backyard watching on a laptop, at the same time a friend from across town is watching and possibly even contributing track data from their system.
Example Output on the UDP network:
STA,2545313139184999022,2009-08-22 16:30:19.94,Oklahoma City,35.387000,-97.413000
TRK,2545313139184999022,2009-08-22 16:30:24.449,A939E8,,,0,0.0,0.0,37025,,,0,0,0,0The format is:
STA - Station Packet (heartbeat every 30 seconds)
TRK - Track Packet (output only if a field changes)
STA, 64 bit Random Participant Unit (PU) number, SQL UTC Timestamp, Location (from config file), Latitude (from config file - south is -), Longitude (from config file - west is -)
TRK, 64 bit Random Participant Unit (PU) number, SQL UTC Timestamp, Mode-S Code, Callsign, Squawk, Vertical Rate, Ground Track, Ground Speed, Altitude, Latitude (south is -), Longitude (west is -), Alert (-1 for true), Emergency (-1 for true), SPI (-1 for true), OnGround (-1 for true)
If you see a * next to the track groundspeed on ADSViewer, it is a computed groundspeed based on the last ten echo's. Also aircraft that the pilot has pressed the Ident button will have a flashing orange P over their current position. An E is over their position for Emergency, and a C if they have changed their squawk code. These are all based on the boolean bits from the SBS-1.
Also, if two participant units (PU) detect the same track on their receiver, the track symbol is changed from a triangle to a triangle with a cross in it, which signifies a global track.
Pick one of the maps in the maps.zip file, rename it to map.dat and put it in your home login directory. Right click to CENTER, mouse wheel to ZOOM in and out, and left click on a target to ROTATE track block.
The left mouse click is complicated, by the fact that "block" setting of 0 is an automatic setting. So when you rotate back to 0 setting, the track block will be at the place where the algorithm thinks it should be. Meanwhile, positions 1 through 8 do the expected thing.
The Config buttons work like toggle switches for on/off on some, and like rocker switches on others for increment/decrement. I'm working on the save and load config part right now, so hopefully you won't have to manually configure anymore.
This should work with Airnav's radarbox as well, assuming they have a Kinetic compatible socket design. The data delimiter must be a comma ',' however. The time in the socket data is not used. All data is timestamped with UTC time as soon as it is taken off the socket. If your socket has a 5-minute delay, then the time will be the socket time, and not the detected time. It is assumed that users will shut off the 5-minute delay.
Disclaimer:I'm a beginner Java programmer. I'm learning something new all the time.
Check Here:Go to the "Source" tab and download the "Support" files, if this is your first visit. Included in the "download" area is a program by Piotr which removes the 5-minute socket delay from the Basestation program. There isn't a like program for the radarbox yet, that I am aware of.
Java SE 1.6 download can be found at http://java.sun.com
You just need the JRE, but getting the SDK will include the JRE and allow you to modify the programs. The programs are developed using Netbeans 6 IDE.
Note:Some ISP's block UDP packets, both incoming and outgoing. If you are trying to send UDP packets over the Internet, you should know that UDP is an unreliable protocol. The advantage is simplicity, and you don't have to have a server that accepts connections. The disadvantage is that some packets may take the long road, and some the short road, and packets will get out of order, or disappear altogether.
The good news, is that everything fits in a small packet. At worse, you may see a target jiggle backwards and forwards. If you set your update time to 10 seconds, you probably won't see this. 10 seconds is a good Internet update time. [Less]