Compare commits
10 commits
e2761fc21d
...
096a1065ea
Author | SHA1 | Date | |
---|---|---|---|
096a1065ea | |||
de29e82327 | |||
089684e20f | |||
25b3a34fff | |||
ae4a89b707 | |||
dabb6fc135 | |||
0a0fb46b5d | |||
1d29f5e059 | |||
18d47fd5ff | |||
4edb2e8e35 |
19
Jenkinsfile
vendored
19
Jenkinsfile
vendored
|
@ -1,4 +1,13 @@
|
||||||
node(label: 'raspberrypi') {
|
node(label: 'raspberrypi') {
|
||||||
|
properties([
|
||||||
|
pipelineTriggers([
|
||||||
|
upstream(threshold: 'SUCCESS',
|
||||||
|
upstreamProjects: "bladeRF/${env.BRANCH_NAME}")
|
||||||
|
]),
|
||||||
|
disableConcurrentBuilds(),
|
||||||
|
durabilityHint(hint: 'PERFORMANCE_OPTIMIZED')
|
||||||
|
])
|
||||||
|
|
||||||
def dists = ["stretch", "jessie"]
|
def dists = ["stretch", "jessie"]
|
||||||
def srcdir = "${WORKSPACE}/src"
|
def srcdir = "${WORKSPACE}/src"
|
||||||
|
|
||||||
|
@ -24,23 +33,21 @@ node(label: 'raspberrypi') {
|
||||||
sh "rm -fr ${results}"
|
sh "rm -fr ${results}"
|
||||||
sh "mkdir -p ${results}"
|
sh "mkdir -p ${results}"
|
||||||
dir(pkgdir) {
|
dir(pkgdir) {
|
||||||
sh "DIST=${dist} pdebuild --use-pdebuild-internal --debbuildopts -b --buildresult ${WORKSPACE}/${results}"
|
sh "DIST=${dist} BRANCH=${env.BRANCH_NAME} pdebuild --use-pdebuild-internal --debbuildopts -b --buildresult ${WORKSPACE}/${results} -- --override-config"
|
||||||
}
|
}
|
||||||
archiveArtifacts artifacts: "${results}/*.deb", fingerprint: true
|
archiveArtifacts artifacts: "${results}/*.deb", fingerprint: true
|
||||||
}
|
}
|
||||||
|
|
||||||
stage("Test install on ${dist}") {
|
stage("Test install on ${dist}") {
|
||||||
sh "/build/repo/validate-packages.sh ${dist} ${results}/dump1090-fa_*.deb ${results}/dump1090_*.deb"
|
sh "BRANCH=${env.BRANCH_NAME} /build/pi-builder/scripts/validate-packages.sh ${dist} ${results}/dump1090-fa_*.deb ${results}/dump1090_*.deb"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (env.BRANCH_NAME == "master" || env.BRANCH_NAME == "dev") {
|
stage('Deploy to internal repository') {
|
||||||
stage("Deploy to staging repo") {
|
|
||||||
for (int i = 0; i < dists.size(); ++i) {
|
for (int i = 0; i < dists.size(); ++i) {
|
||||||
def dist = dists[i]
|
def dist = dists[i]
|
||||||
def results = "results-${dist}"
|
def results = "results-${dist}"
|
||||||
sh "/build/repo/deploy-packages.sh ${dist} ${results}/*.deb"
|
sh "/build/pi-builder/scripts/deploy.sh -distribution ${dist} -branch ${env.BRANCH_NAME} ${results}/*.deb"
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
16
debian/changelog
vendored
16
debian/changelog
vendored
|
@ -1,8 +1,18 @@
|
||||||
dump1090-fa (3.7.2~dev) UNRELEASED; urgency=medium
|
dump1090-fa (3.7.2) stable; urgency=medium
|
||||||
|
|
||||||
* in development
|
* dump1090: Fix reversed sense of Track Angle/Heading bit in surface opstatus messages
|
||||||
|
* dump1090: Have filter-regs emit a special value "-COMPUTED-" for filtered data
|
||||||
|
values, rather than blanking them out entirely
|
||||||
|
* Fix registration side mappings with a non-zero offset
|
||||||
|
* dump1090: Update aircraft DB to 20190816
|
||||||
|
* dump1090: Reject outright libbladerf that's too old
|
||||||
|
* dump1090: Trigger build after bladeRF build; turn off build durability; turn
|
||||||
|
off concurrent builds
|
||||||
|
* SkyAware: SkyAware Renaming
|
||||||
|
* SkyAware: Fix some display errors for ground vehicles
|
||||||
|
* SkyAware: Fix aircraft trail handling
|
||||||
|
|
||||||
-- Eric Tran <eric.tran@flightaware.com> Wed, 31 Jul 2019 11:27:00 -6000
|
-- Eric Tran <eric.tran@flightaware.com> Mon, 09 Sep 2019 09:25:00 -6000
|
||||||
|
|
||||||
dump1090-fa (3.7.1) stable; urgency=medium
|
dump1090-fa (3.7.1) stable; urgency=medium
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
struct modeStruct Modes;
|
||||||
|
|
||||||
//
|
//
|
||||||
// ============================= Utility functions ==========================
|
// ============================= Utility functions ==========================
|
||||||
//
|
//
|
||||||
|
|
|
@ -294,7 +294,7 @@ struct mag_buf {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Program global state
|
// Program global state
|
||||||
struct { // Internal state
|
struct modeStruct { // Internal state
|
||||||
pthread_t reader_thread;
|
pthread_t reader_thread;
|
||||||
|
|
||||||
pthread_mutex_t data_mutex; // Mutex to synchronize buffer access
|
pthread_mutex_t data_mutex; // Mutex to synchronize buffer access
|
||||||
|
@ -392,7 +392,9 @@ struct { // Internal state
|
||||||
int stats_latest_1min;
|
int stats_latest_1min;
|
||||||
struct stats stats_5min;
|
struct stats stats_5min;
|
||||||
struct stats stats_15min;
|
struct stats stats_15min;
|
||||||
} Modes;
|
};
|
||||||
|
|
||||||
|
extern struct modeStruct Modes;
|
||||||
|
|
||||||
// The struct we use to store information about a decoded message.
|
// The struct we use to store information about a decoded message.
|
||||||
struct modesMessage {
|
struct modesMessage {
|
||||||
|
|
|
@ -15,7 +15,7 @@ MessageRateInTitle = false;
|
||||||
// metric (m, km, km/h) or imperial (ft, mi, mph) units are used in the
|
// metric (m, km, km/h) or imperial (ft, mi, mph) units are used in the
|
||||||
// plane table and in the detailed plane info. Valid values are
|
// plane table and in the detailed plane info. Valid values are
|
||||||
// "nautical", "metric", or "imperial".
|
// "nautical", "metric", or "imperial".
|
||||||
DisplayUnits = "nautical";
|
DisplayUnits = "metric";
|
||||||
|
|
||||||
// -- Map settings ----------------------------------------
|
// -- Map settings ----------------------------------------
|
||||||
// These settings are overridden by any position information
|
// These settings are overridden by any position information
|
||||||
|
@ -23,17 +23,17 @@ DisplayUnits = "nautical";
|
||||||
// degrees.
|
// degrees.
|
||||||
|
|
||||||
// Default center of the map.
|
// Default center of the map.
|
||||||
DefaultCenterLat = 45.0;
|
DefaultCenterLat = 49.425626;
|
||||||
DefaultCenterLon = 9.0;
|
DefaultCenterLon = 7.756527;
|
||||||
// The google maps zoom level, 0 - 16, lower is further out
|
// The google maps zoom level, 0 - 16, lower is further out
|
||||||
DefaultZoomLvl = 7;
|
DefaultZoomLvl = 8;
|
||||||
|
|
||||||
// Center marker. If dump1090 provides a receiver location,
|
// Center marker. If dump1090 provides a receiver location,
|
||||||
// that location is used and these settings are ignored.
|
// that location is used and these settings are ignored.
|
||||||
|
|
||||||
SiteShow = false; // true to show a center marker
|
SiteShow = true; // true to show a center marker
|
||||||
SiteLat = 45.0; // position of the marker
|
SiteLat = 49.425626; // position of the marker
|
||||||
SiteLon = 9.0;
|
SiteLon = 7.756527;
|
||||||
SiteName = "My Radar Site"; // tooltip of the marker
|
SiteName = "My Radar Site"; // tooltip of the marker
|
||||||
|
|
||||||
// -- Marker settings -------------------------------------
|
// -- Marker settings -------------------------------------
|
||||||
|
@ -96,7 +96,7 @@ OutlineMlatColor = '#4040FF';
|
||||||
|
|
||||||
SiteCircles = true; // true to show circles (only shown if the center marker is shown)
|
SiteCircles = true; // true to show circles (only shown if the center marker is shown)
|
||||||
// In miles, nautical miles, or km (depending settings value 'DisplayUnits')
|
// In miles, nautical miles, or km (depending settings value 'DisplayUnits')
|
||||||
SiteCirclesDistances = new Array(100,150,200);
|
SiteCirclesDistances = new Array(25,50,75,100);
|
||||||
|
|
||||||
// Controls page title, righthand pane when nothing is selected
|
// Controls page title, righthand pane when nothing is selected
|
||||||
PageName = "PiAware SkyAware";
|
PageName = "PiAware SkyAware";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<link rel="stylesheet" type="text/css" href="style.css?v=2" />
|
<link rel="stylesheet" type="text/css" href="style.css?v=3.7.2" />
|
||||||
<link rel="stylesheet" href="jquery/jquery-ui-1.11.4-smoothness.css" />
|
<link rel="stylesheet" href="jquery/jquery-ui-1.11.4-smoothness.css" />
|
||||||
<script src="jquery/jquery-3.0.0.min.js"></script>
|
<script src="jquery/jquery-3.0.0.min.js"></script>
|
||||||
<script src="jquery/jquery-ui-1.11.4.min.js"></script>
|
<script src="jquery/jquery-ui-1.11.4.min.js"></script>
|
||||||
|
@ -14,16 +14,16 @@
|
||||||
<link rel="stylesheet" href="ol/ol3-layerswitcher.css" type="text/css"/>
|
<link rel="stylesheet" href="ol/ol3-layerswitcher.css" type="text/css"/>
|
||||||
<script src="ol/ol3-layerswitcher.js" type="text/javascript"></script>
|
<script src="ol/ol3-layerswitcher.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="config.js"></script>
|
<script type="text/javascript" src="config.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="markers.js"></script>
|
<script type="text/javascript" src="markers.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="dbloader.js"></script>
|
<script type="text/javascript" src="dbloader.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="registrations.js"></script>
|
<script type="text/javascript" src="registrations.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="planeObject.js?v=2"></script>
|
<script type="text/javascript" src="planeObject.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="formatter.js?v=2"></script>
|
<script type="text/javascript" src="formatter.js?v=2?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="flags.js"></script>
|
<script type="text/javascript" src="flags.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="layers.js"></script>
|
<script type="text/javascript" src="layers.js?v=3.7.2"></script>
|
||||||
<script type="text/javascript" src="script.js?v=2"></script>
|
<script type="text/javascript" src="script.js?v=3.7.2"></script>
|
||||||
<title>PiAware SkyAware</title>
|
<title>DL0XK Aeorspectator</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body onload="initialize()">
|
<body onload="initialize()">
|
||||||
|
@ -46,25 +46,8 @@
|
||||||
<input type="hidden" name="submit" value="submit">
|
<input type="hidden" name="submit" value="submit">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div id="header" class="infoHeading">
|
|
||||||
<div class="logoContainer">
|
|
||||||
<a href="http://flightaware.com/" target="_blank"><img src="images/fa_logo_color.png" alt="FlightAware" class="flightawareLogo" srcset="images/fa_logo_color.png 1x, images/fa_logo_color@2x.png 2x, images/fa_logo_color@3x.png 3x"></a>
|
|
||||||
<img src="images/pa-sa-logo.png" alt="PiAware SkyAware" class="adsbLogo piAwareLogo" srcset="images/pa-sa-logo.png 1x, images/pa-sa-logo@2x.png 2x, images/pa-sa-logo@3x.png 3x">
|
|
||||||
<img src="images/ff-sa-logo.png" alt="FlightFeeder SkyAware" class="adsbLogo flightfeederLogo" srcset="images/ff-sa-logo.png 1x, images/ff-sa-logo@2x.png 2x, images/ff-sa-logo@3x.png 3x" style="display: none;">
|
|
||||||
</div>
|
|
||||||
<div class="buttonContainer">
|
|
||||||
<div class="dateTime" id="clock_div"></div>
|
|
||||||
<div class="button buttonHeader" onclick="resetMap();"><span class="buttonText">Reset Map</span></div>
|
|
||||||
<div class="button buttonHeader" onclick="selectAllPlanes();"><span class="buttonText">Show All Tracks</span></div>
|
|
||||||
<div class="button buttonHeader" onclick="deselectAllPlanes();"><span class="buttonText">Hide All Tracks</span></div>
|
|
||||||
</div>
|
|
||||||
<div class="settingsContainer"><img src="images/settings-icon.png" id="settingsCog" srcset="images/settings-icon.png 1x, images/settings-icon@2x.png 2x, images/settings-icon@3x.png 3x"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layout_container">
|
<div id="layout_container">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="highlighted_infoblock">
|
<div id="highlighted_infoblock">
|
||||||
<div class="highlightedTitle">
|
<div class="highlightedTitle">
|
||||||
<span class="identLarge"><span id="highlighted_callsign">n/a</span></span>
|
<span class="identLarge"><span id="highlighted_callsign">n/a</span></span>
|
||||||
|
@ -193,17 +176,6 @@
|
||||||
</table>
|
</table>
|
||||||
</div> <!-- dump1090_infoblock -->
|
</div> <!-- dump1090_infoblock -->
|
||||||
|
|
||||||
<form id="altitude_filter_form">
|
|
||||||
<label><span class="infoBlockTitleText">Filter by Altitude:</span></label>
|
|
||||||
<input id="altitude_filter_min" name="minAltitude" type="text" class="altitudeFilterInput" maxlength="5">
|
|
||||||
<label for="minAltitude" class="altitudeUnit"></label>
|
|
||||||
<span> to </span>
|
|
||||||
<input id="altitude_filter_max" name="maxAltitude" type="text" class="altitudeFilterInput" maxlength="5">
|
|
||||||
<label for="maxAltitude" class="altitudeUnit"></label>
|
|
||||||
<button type="submit">Filter</button>
|
|
||||||
<button id="altitude_filter_reset_button">Reset</button>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<div id="planes_table">
|
<div id="planes_table">
|
||||||
<table id="tableinfo" style="width: 100%">
|
<table id="tableinfo" style="width: 100%">
|
||||||
<thead class="aircraft_table_header">
|
<thead class="aircraft_table_header">
|
||||||
|
|
|
@ -505,9 +505,9 @@ function make_geodesic_circle(center, radius, points) {
|
||||||
// Initalizes the map and starts up our timers to call various functions
|
// Initalizes the map and starts up our timers to call various functions
|
||||||
function initialize_map() {
|
function initialize_map() {
|
||||||
// Load stored map settings if present
|
// Load stored map settings if present
|
||||||
CenterLat = Number(localStorage['CenterLat']) || DefaultCenterLat;
|
CenterLat = DefaultCenterLat;
|
||||||
CenterLon = Number(localStorage['CenterLon']) || DefaultCenterLon;
|
CenterLon = DefaultCenterLon;
|
||||||
ZoomLvl = Number(localStorage['ZoomLvl']) || DefaultZoomLvl;
|
ZoomLvl = DefaultZoomLvl;
|
||||||
MapType = localStorage['MapType'];
|
MapType = localStorage['MapType'];
|
||||||
|
|
||||||
// Set SitePosition, initialize sorting
|
// Set SitePosition, initialize sorting
|
||||||
|
|
|
@ -6,7 +6,7 @@ html, body {
|
||||||
|
|
||||||
#layout_container {
|
#layout_container {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: calc(100% - 60px);;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#selected_infoblock {
|
#selected_infoblock {
|
||||||
|
@ -24,6 +24,7 @@ html, body {
|
||||||
#sidebar_canvas {
|
#sidebar_canvas {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
|
height: 100%
|
||||||
}
|
}
|
||||||
#sidebar_container {
|
#sidebar_container {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -23,8 +23,12 @@
|
||||||
#include <libbladeRF.h>
|
#include <libbladeRF.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
#if !defined(LIBBLADERF_API_VERSION) || (LIBBLADERF_API_VERSION < 0x01060100)
|
||||||
|
#error This libbladeRF is too old, upgrade or disable bladerf support
|
||||||
|
#endif
|
||||||
|
|
||||||
// Polyfill for the older bladerf API
|
// Polyfill for the older bladerf API
|
||||||
#if defined(LIBBLADERF_API_VERSION) && (LIBBLADERF_API_VERSION < 0x02000000)
|
#if LIBBLADERF_API_VERSION < 0x02000000
|
||||||
typedef unsigned int bladerf_frequency;
|
typedef unsigned int bladerf_frequency;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue