Searching, please wait...

libhomeradar

easy collect aircraft information
~50,000,000 registered contacts
303894 unique aircraft records, 28.78% unresolved records
 ACARS DECODER Planespotting Network Kinetic Avionics AirNav Systems Airframes.org Atlas Tracking
libhomeradar - easy collect aircraft informations

libhomeradar is an easy to use library for all type of programming language which can use libraries. libhomeradar can connect to different sources to collect aircraft informations arround the world with extended informations, powerful filtering and structured data access.

libhomeradar is written in C and is available for Linux and Windows (2003, XP, NT, Vista).

Currently libhomeradar works with the Kinetic Avionics SBS-1 base station and the Airnav Systems Radarbox.


Yahoo! My Web  Google Bookmarks  Windows Live  Facebook  Ask  del.icio.us  Furl 
 

This short example will try to establish a connection with our SBS-1 box and will set the GPS coordinates of the SBS-1 host location. Only aircrafts will be shown which are within an radius of 100km (see the homeradar_addfilter() function) from the server. This works only if the coordinates for the aircraft and the server are known. With the LHR_FILTER_EXCLUDENULL flag all aircrafts will be excluded where no location is available. The program will run appr. 3 minutes.


 
libhomeradar - easy collect aircraft informations - Download example  Download this source
/* System includes */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

/* libhomeradar header include */
#include "libhomeradar.h"

/* Your location (GPS coordinates) */
#define GPSLAT (double)46.8413
#define GPSLON (double)17.8675

/* Callback function to show aircraft informations */
void newcontact(void *handle,const int *id, LHR_CONTACT *C) {
  LHR_AIRPORTS *P;

  printf("%sContact: %s [%s]\nAirline: %s\nFlightnumber: %s  Callsign: %s\nSquawk: %d\n",
         (C->newcontact)?"AIR":"",
          C->icao24,(C->reg)?C->reg:"UNKNOWN",
         (C->airline)?C->airline:"NULL",C->flightnum,C->callsign,C->squawk);
  printf("Aircraft: %s %s [%s] cn:%s\n",C->manufacturer,C->model,C->details,C->cn);
  printf("Routing: %s LAT: %0.5f LON: %0.5f\n",C->route,C->lat,C->lon);

  /* Calculate distance */
  if (C->lat && C->lon)
    printf("Distance to your location: %0.4fkm\n",homeradar_distance(GPSLAT,GPSLON,C->lat,C->lon));

  /* Get airport informations */
  P = C->airports;
  while (P) {
    if (P->airport) {
      printf("Airport [%s / %s] Name: %s, %s\n",
             P->airport->iata,P->airport->icao,
             P->airport->name,P->airport->country);
    } else printf("Unresolveable: %s\n",P->apcode);
    P = P->next;
  }

  /* Free LHR_CONTACT struct */
  homeradar_freecontact(C); 
}

/* Connect is established */
void connected(LHR handle, const int *item) {
  printf("SUCCESSFULLY CONNECTED TO = %s\n",homeradar_gethostbyid(handle,*(item)));

  /* Setup the event listener for the LHR_ONCONTACT event */
  if (homeradar_onhandler(handle, LHR_ONCONTACT, *(item), newcontact)==0) {
    printf("Unable to add event listener\n");
  } else printf("Contact handler successfully installed\n");
}

/* Main program */
int main(int argc, char **argv) {
  int e, r;
  double d;
  LHR H = homeradar_init(16,LHR_AUTOCONNECT|LHR_LOOKUP_ALL,&e,"./");

  /* No error */
  if (H == NULL) {
    printf("Error initializing libhomeradar. Errorcode #%d\n",e);
    return 255;
  }

  /* Set current location of this client (GPS coordinates) */
  d = GPSLAT; homeradar_config(H, LHR_LOCATION_LAT, (void*)&d);
  d = GPSLON; homeradar_config(H, LHR_LOCATION_LON, (void*)&d);

  /* Add host without event listener */
  e = homeradar_addhost(H, "sbs1.libhomeradar.org", 33033, LHR_SBS1, LHR_ONCONNECT, connected);

  /* Show all aircrafts which are in a range of max. 50km from client location */
  r = homeradar_addfilter(H, LHR_FILTER_BYRANGE|LHR_FILTER_INCLUDE|LHR_FILTER_EXCLUDENULL, "100", e);

  /* Do nothing - in this example - loop will be finished after 180 seconds
     In your real program you can do now what you want */
  e = 29;
  while (e--) sleep(6);

  /* Shutdown libhomeradar and free all alocated memory */
  printf("Shutdown libhomeradar...\n");
  homeradar_destroy(H);

  /* Return success */
  return 0;
}