[hamradio-commits] [dump1090] 192/389: VK1ET : Use error corrected DF17
Matthew Ernisse
mernisse-guest at moszumanska.debian.org
Wed Nov 5 00:19:54 UTC 2014
This is an automated email from the git hooks/post-receive script.
mernisse-guest pushed a commit to branch master
in repository dump1090.
commit be6cb6eaf001f6570f37e03395591e4a496063a0
Author: Malcolm Robb <Support at ATTAvionics.com>
Date: Tue May 21 16:43:07 2013 +0100
VK1ET : Use error corrected DF17
Actually use the (DF17) messages where we do bit correction.
Other changes to AVR message I/O.
1) treat mlat timestamp of zero as invalid (easier to work with than
(-1) and equally unlikely).
2) If we don't have a valid timestamp send a without timestamp
'*.......' message rather than '@.......' with invalid time.
3) Drop interpretation of obsolete AVR ' #' & '$' formats - they
wouldn't have worked anyway (wrong length).
---
dump1090.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/dump1090.c b/dump1090.c
index f7fb858..49cf851 100644
--- a/dump1090.c
+++ b/dump1090.c
@@ -1974,7 +1974,7 @@ void displayModesMessage(struct modesMessage *mm) {
}
// Show the raw message.
- if (Modes.mlat) {
+ if (Modes.mlat && mm->timestampMsg) {
printf("@");
pTimeStamp = (unsigned char *) &mm->timestampMsg;
for (j=5; j>=0;j--) {
@@ -2465,7 +2465,7 @@ void detectModeS(uint16_t *m, uint32_t mlen) {
// Update statistics
if (Modes.stats) {
- if (mm.crcok || use_correction) {
+ if (mm.crcok || use_correction || !mm.crc) {
if (errors == 0) Modes.stat_demodulated++;
if (mm.correctedbits == 0) {
if (mm.crcok) {Modes.stat_goodcrc++;}
@@ -2542,7 +2542,7 @@ void detectModeS(uint16_t *m, uint32_t mlen) {
// processing and visualization
//
void useModesMessage(struct modesMessage *mm) {
- if ((Modes.check_crc == 0) || (mm->crcok)) {
+ if ((Modes.check_crc == 0) || (mm->crcok) || (mm->crc == 0)) { // not checking, ok or fixed
// Track aircrafts if...
if ( (Modes.interactive) // in interactive mode
@@ -2916,7 +2916,9 @@ int decodeCPRrelative(struct aircraft *a, int fflag, int surface) {
struct aircraft *interactiveReceiveData(struct modesMessage *mm) {
struct aircraft *a, *aux;
- if (Modes.check_crc && mm->crcok == 0) return NULL;
+ // Return if (checking crc) AND (not crcok) AND (not fixed)
+ if (Modes.check_crc && (mm->crcok == 0) && mm->crc)
+ return NULL;
// Loookup our aircraft or create a new one
a = interactiveFindAircraft(mm->addr);
@@ -3357,7 +3359,7 @@ void modesSendRawOutput(struct modesMessage *mm) {
int j;
unsigned char * pTimeStamp;
- if (Modes.mlat) {
+ if (Modes.mlat && mm->timestampMsg) {
*p++ = '@';
pTimeStamp = (unsigned char *) &mm->timestampMsg;
for (j = 5; j >= 0; j--) {
@@ -3429,7 +3431,7 @@ void modesSendSBSOutput(struct modesMessage *mm) {
p += sprintf(p, "MSG,%d,111,11111,%06X,111111,", msgType, mm->addr);
// Fields 7 & 8 are the current time and date
- if (mm->timestampMsg != (uint64_t)(-1)) { // Make sure the records' timestamp is valid before outputing it
+ if (mm->timestampMsg) { // Make sure the records' timestamp is valid before outputing it
epocTime = Modes.stSystemTimeBlk; // This is the time of the start of the Block we're processing
offset = (int) (mm->timestampMsg - Modes.timestampBlk); // This is the time (in 12Mhz ticks) into the Block
offset = offset / 12000; // convert to milliseconds
@@ -3559,7 +3561,7 @@ int decodeHexMessage(struct client *c) {
// Mixing of data from two or more different receivers and publishing
// as coming from one would lead to corrupt mlat data
// Non timemarked internet data has indeterminate delay
- mm.timestampMsg = -1;
+ mm.timestampMsg = 0;
mm.signalLevel = -1;
// Remove spaces on the left and on the right
@@ -3572,7 +3574,7 @@ int decodeHexMessage(struct client *c) {
// Turn the message into binary.
// Accept *-AVR raw @-AVR/BEAST timeS+raw %-AVR timeS+raw (CRC good) <-BEAST timeS+sigL+raw
- // and some AVR recorer that we can understand
+ // and some AVR records that we can understand
if (hex[l-1] != ';') {return (0);} // not complete - abort
switch(hex[0]) {
@@ -3581,11 +3583,9 @@ int decodeHexMessage(struct client *c) {
hex += 15; l -= 16; // Skip <, timestamp and siglevel, and ;
break;}
- case '@':
- case '%':
- case '#':
- case '$': {
- hex += 13; l -= 14; // Skip @,%,#,$, and timestamp, and ;
+ case '@': // No CRC check
+ case '%': { // CRC is OK
+ hex += 13; l -= 14; // Skip @,%, and timestamp, and ;
break;}
case '*':
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/dump1090.git
More information about the pkg-hamradio-commits
mailing list