From fc45eded0b9f3f002245f1e76d9dd00ec9f514bc Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Sat, 27 Dec 2014 20:16:56 +0000 Subject: [PATCH] Removing COAA/PlanePlotter stuff (+ binary-only object file) that I can't support or test. --- coaa.h | 6 -- coaa1090.obj | Bin 36956 -> 0 bytes dump1090.c | 1 - makeppup1090 | 27 ------ ppup1090.c | 261 --------------------------------------------------- ppup1090.h | 110 ---------------------- ppup1090.sh | 85 ----------------- view1090.c | 1 - 8 files changed, 491 deletions(-) delete mode 100644 coaa.h delete mode 100644 coaa1090.obj delete mode 100644 makeppup1090 delete mode 100644 ppup1090.c delete mode 100644 ppup1090.h delete mode 100644 ppup1090.sh diff --git a/coaa.h b/coaa.h deleted file mode 100644 index 3d07704..0000000 --- a/coaa.h +++ /dev/null @@ -1,6 +0,0 @@ -// coaa.h configuration file for Plane Plotter Uploader -// -// You MUST apply via the COAA website for your own personal version of this file -// Do not disclose the contents of this file to anyone thereafter as it uniquely -// identifies you to the PlanePlotter system -// diff --git a/coaa1090.obj b/coaa1090.obj deleted file mode 100644 index ea54fdef29f4353db8b144b17d44db0ff1a7324a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36956 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 -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -#include "coaa.h" -#include "ppup1090.h" -// -// ============================= Utility functions ========================== -// -void sigintHandler(int dummy) { - NOTUSED(dummy); - signal(SIGINT, SIG_DFL); // reset signal handler - bit extra safety - Modes.exit = 1; // Signal to threads that we are done -} -// -// =============================== Initialization =========================== -// -void ppup1090InitConfig(void) { - - int iErr; - - // Default everything to zero/NULL - memset(&Modes, 0, sizeof(Modes)); - memset(&ppup1090, 0, sizeof(ppup1090)); - - // Now initialise things that should not be 0/NULL to their defaults - Modes.check_crc = 1; - Modes.quiet = 1; - Modes.bEnableDFLogging = 1; - strcpy(ppup1090.net_input_beast_ipaddr,PPUP1090_NET_OUTPUT_IP_ADDRESS); - Modes.net_input_beast_port = MODES_NET_OUTPUT_BEAST_PORT; - Modes.interactive_delete_ttl = MODES_INTERACTIVE_DELETE_TTL; - Modes.interactive_display_ttl = MODES_INTERACTIVE_DISPLAY_TTL; - Modes.fUserLat = MODES_USER_LATITUDE_DFLT; - Modes.fUserLon = MODES_USER_LONGITUDE_DFLT; - - if ((iErr = openCOAA())) - { - fprintf(stderr, "Error 0x%X initialising uploader\n", iErr); - exit(1); - } -} -// -//========================================================================= -// -void ppup1090Init(void) { - - int iErr; - - pthread_mutex_init(&Modes.pDF_mutex,NULL); - pthread_mutex_init(&Modes.data_mutex,NULL); - pthread_cond_init(&Modes.data_cond,NULL); - - // Allocate the various buffers used by Modes - if ( NULL == (Modes.icao_cache = (uint32_t *) malloc(sizeof(uint32_t) * MODES_ICAO_CACHE_LEN * 2))) - { - fprintf(stderr, "Out of memory allocating data buffer.\n"); - exit(1); - } - - // Clear the buffers that have just been allocated, just in-case - memset(Modes.icao_cache, 0, sizeof(uint32_t) * MODES_ICAO_CACHE_LEN * 2); - - // Validate the users Lat/Lon home location inputs - if ( (Modes.fUserLat > 90.0) // Latitude must be -90 to +90 - || (Modes.fUserLat < -90.0) // and - || (Modes.fUserLon > 360.0) // Longitude must be -180 to +360 - || (Modes.fUserLon < -180.0) ) { - Modes.fUserLat = Modes.fUserLon = 0.0; - } else if (Modes.fUserLon > 180.0) { // If Longitude is +180 to +360, make it -180 to 0 - Modes.fUserLon -= 360.0; - } - // If both Lat and Lon are 0.0 then the users location is either invalid/not-set, or (s)he's in the - // Atlantic ocean off the west coast of Africa. This is unlikely to be correct. - // Set the user LatLon valid flag only if either Lat or Lon are non zero. Note the Greenwich meridian - // is at 0.0 Lon,so we must check for either fLat or fLon being non zero not both. - // Testing the flag at runtime will be much quicker than ((fLon != 0.0) || (fLat != 0.0)) - Modes.bUserFlags &= ~MODES_USER_LATLON_VALID; - if ((Modes.fUserLat != 0.0) || (Modes.fUserLon != 0.0)) { - Modes.bUserFlags |= MODES_USER_LATLON_VALID; - } - - // Prepare error correction tables - modesInitErrorInfo(); - - // Setup the uploader - read the user paramaters from the coaa.h header file - coaa1090.ppIPAddr = ppup1090.net_pp_ipaddr; - coaa1090.fUserLat = MODES_USER_LATITUDE_DFLT; - coaa1090.fUserLon = MODES_USER_LONGITUDE_DFLT; - strcpy(coaa1090.strAuthCode,STR(USER_AUTHCODE)); - strcpy(coaa1090.strRegNo, STR(USER_REGNO)); - strcpy(coaa1090.strVersion, MODES_DUMP1090_VERSION); - - if ((iErr = initCOAA (coaa1090))) - { - fprintf(stderr, "Error 0x%X initialising uploader\n", iErr); - exit(1); - } -} -// -// ================================ Main ==================================== -// -void showHelp(void) { - printf( -"-----------------------------------------------------------------------------\n" -"| ppup1090 RPi Uploader for COAA Planeplotter Ver : "MODES_DUMP1090_VERSION " |\n" -"-----------------------------------------------------------------------------\n" - "--net-bo-ipaddr TCP Beast output listen IPv4 (default: 127.0.0.1)\n" - "--net-bo-port TCP Beast output listen port (default: 30005)\n" - "--net-pp-ipaddr Plane Plotter LAN IPv4 Address (default: 0.0.0.0)\n" - "--quiet Disable output to stdout. Use for daemon applications\n" - "--help Show this help\n" - ); -} - -#ifdef _WIN32 -void showCopyright(void) { - uint64_t llTime = time(NULL) + 1; - - printf( -"-----------------------------------------------------------------------------\n" -"| ppup1090 RPi Uploader for COAA Planeplotter Ver : "MODES_DUMP1090_VERSION " |\n" -"-----------------------------------------------------------------------------\n" -"\n" -" Copyright (C) 2012 by Salvatore Sanfilippo \n" -" Copyright (C) 2014 by Malcolm Robb \n" -"\n" -" All rights reserved.\n" -"\n" -" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" -" ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" -" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" -" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" -" HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n" -" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n" -" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" -" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" -" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" -" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n" -" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" -"\n" -" For further details refer to \n" -"\n" - ); - - // delay for 1 second to give the user a chance to read the copyright - while (llTime >= time(NULL)) {} -} -#endif -// -//========================================================================= -// -int main(int argc, char **argv) { - int j, fd; - struct client *c; - - // Set sane defaults - - ppup1090InitConfig(); - signal(SIGINT, sigintHandler); // Define Ctrl/C handler (exit program) - - // Parse the command line options - for (j = 1; j < argc; j++) { - int more = ((j + 1) < argc); // There are more arguments - - if (!strcmp(argv[j],"--net-bo-port") && more) { - Modes.net_input_beast_port = atoi(argv[++j]); - } else if (!strcmp(argv[j],"--net-bo-ipaddr") && more) { - strcpy(ppup1090.net_input_beast_ipaddr, argv[++j]); - } else if (!strcmp(argv[j],"--net-pp-ipaddr") && more) { - inet_aton(argv[++j], (void *)&ppup1090.net_pp_ipaddr); - } else if (!strcmp(argv[j],"--quiet")) { - ppup1090.quiet = 1; - } else if (!strcmp(argv[j],"--help")) { - showHelp(); - exit(0); - } else { - fprintf(stderr, "Unknown or not enough arguments for option '%s'.\n\n", argv[j]); - showHelp(); - exit(1); - } - } - -#ifdef _WIN32 - // Try to comply with the Copyright license conditions for binary distribution - if (!ppup1090.quiet) {showCopyright();} -#endif - - // Initialization - ppup1090Init(); - - // Try to connect to the selected ip address and port. We only support *ONE* input connection which we initiate.here. - if ((fd = anetTcpConnect(Modes.aneterr, ppup1090.net_input_beast_ipaddr, Modes.net_input_beast_port)) == ANET_ERR) { - fprintf(stderr, "Failed to connect to %s:%d\n", ppup1090.net_input_beast_ipaddr, Modes.net_input_beast_port); - exit(1); - } - // - // Setup a service callback client structure for a beast binary input (from dump1090) - // This is a bit dodgy under Windows. The fd parameter is a handle to the internet - // socket on which we are receiving data. Under Linux, these seem to start at 0 and - // count upwards. However, Windows uses "HANDLES" and these don't nececeriy start at 0. - // dump1090 limits fd to values less than 1024, and then uses the fd parameter to - // index into an array of clients. This is ok-ish if handles are allocated up from 0. - // However, there is no gaurantee that Windows will behave like this, and if Windows - // allocates a handle greater than 1024, then dump1090 won't like it. On my test machine, - // the first Windows handle is usually in the 0x54 (84 decimal) region. - - c = (struct client *) malloc(sizeof(*c)); - c->next = NULL; - c->buflen = 0; - c->fd = - c->service = - Modes.bis = fd; - Modes.clients = c; - - // Keep going till the user does something that stops us - while (!Modes.exit) { - modesReadFromClient(c,"",decodeBinMessage); - interactiveRemoveStaleAircrafts(); - postCOAA (); - } - - // The user has stopped us, so close any socket we opened - if (fd != ANET_ERR) - {close(fd);} - - closeCOAA (); -#ifndef _WIN32 - pthread_exit(0); -#else - return (0); -#endif -} -// -//========================================================================= -// diff --git a/ppup1090.h b/ppup1090.h deleted file mode 100644 index 6d0756d..0000000 --- a/ppup1090.h +++ /dev/null @@ -1,110 +0,0 @@ -// ppup1090, a Mode S PlanePlotter Uploader for dump1090 devices. -// -// Copyright (C) 2013 by Malcolm Robb -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -#ifndef __PPUP1090_H -#define __PPUP1090_H - -// ============================= Include files ========================== - -#include "dump1090.h" - -#ifndef _WIN32 - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include "rtl-sdr.h" - #include "anet.h" - #include -#else - #include "winstubs.h" //Put everything Windows specific in here -#endif - -// ============================= #defines =============================== - -#define PPUP1090_NET_OUTPUT_IP_ADDRESS "127.0.0.1" - -#define NOTUSED(V) ((void) V) - -#define STR_HELPER(x) #x -#define STR(x) STR_HELPER(x) - -// ======================== structure declarations ======================== - -// Program global state -struct { // Internal state - int quiet; - // Networking - uint32_t net_pp_ipaddr; // IPv4 address of PP instance - char net_input_beast_ipaddr[32]; // IPv4 address or network name of server/RPi -} ppup1090; - - -// COAA Initialisation structure -struct _coaa1090 { - uint32_t ppIPAddr; - double fUserLat; - double fUserLon; - char strAuthCode[16]; - char strRegNo[16]; - char strVersion[16]; -} coaa1090; - -// ======================== function declarations ========================= - -#ifdef __cplusplus -extern "C" { -#endif - -// -// Functions exported from coaa1090.c -// -int openCOAA (void); -int closeCOAA (void); -int initCOAA (struct _coaa1090 coaa1090); -void postCOAA (void); - -#ifdef __cplusplus -} -#endif - -#endif // __PPUP1090_H diff --git a/ppup1090.sh b/ppup1090.sh deleted file mode 100644 index 8ed4ad3..0000000 --- a/ppup1090.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -### BEGIN INIT INFO -# -# Provides: dump1090 -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: dump1090 initscript - -# -### END INIT INFO -## Fill in name of program here. -PROG="dump1090" -PROG_PATH="/home/pi/dump1090" -PROG_ARGS="--quiet --net --net-ro-size 500 --net-ro-rate 5 --net-buffer 5" -PIDFILE="/var/run/dump1090.pid" -PROG2="ppup1090" -PROG2_ARGS="--quiet --net-pp-addr 192.168.1.64" -PIDFILE2="/var/run/$PROG2.pid" -DELAY=5 - -start() { - if [ -e $PIDFILE ]; then - ## Program is running, exit with error. - echo "Error! $PROG is currently running!" 1>&2 - exit 1 - else - ## Change from /dev/null to something like /var/log/$PROG if you want to save output. - cd $PROG_PATH - ./$PROG $PROG_ARGS 2>&1 >/dev/null & - echo "$PROG started, waiting $DELAY seconds" - touch $PIDFILE - sleep $DELAY - echo "Attempting to start $PROG2.." - ./$PROG2 $PROG2_ARGS 2>1 >/dev/null & - echo "$PROG2 started" - touch $PIDFILE2 - fi -} - -stop() { - if [ -e $PIDFILE ]; then - ## Program is running, so stop it - echo "$PROG is running" - killall $PROG2 - killall $PROG - rm -f $PIDFILE2 - rm -f $PIDFILE - echo "$PROG stopped" - else - ## Program is not running, exit with error. - echo "Error! $PROG not started!" 1>&2 - exit 1 - fi -} - -## Check to see if we are running as root first. -## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html -if [ "$(id -u)" != "0" ]; then - echo "This script must be run as root" 1>&2 - exit 1 -fi - -case "$1" in - start) - start - exit 0 - ;; - stop) - stop - exit 0 - ;; - reload|restart|force-reload) - stop - start - exit 0 - ;; - **) - echo "Usage: $0 {start|stop|reload}" 1>&2 - exit 1 - ;; -esac -# - diff --git a/view1090.c b/view1090.c index d0fc390..1e2bb07 100644 --- a/view1090.c +++ b/view1090.c @@ -27,7 +27,6 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -#include "coaa.h" #include "view1090.h" // // ============================= Utility functions ==========================