Don't output message reception time in SBS format for remote messages.

For remotely received messages that have a mlat timestamp, we have no
useful way of turning that timestamp into a wallclock timestamp, so
don't try, or we'll just produce wildly wrong results (_days_ in error)
This commit is contained in:
Oliver Jowett 2014-09-25 21:45:46 +01:00
parent a82df07c0c
commit 3eb39ab788

View file

@ -336,8 +336,8 @@ void modesSendSBSOutput(struct modesMessage *mm) {
// Fields 1 to 6 : SBS message type and ICAO address of the aircraft and some other stuff // Fields 1 to 6 : SBS message type and ICAO address of the aircraft and some other stuff
p += sprintf(p, "MSG,%d,111,11111,%06X,111111,", msgType, mm->addr); p += sprintf(p, "MSG,%d,111,11111,%06X,111111,", msgType, mm->addr);
// Fields 7 & 8 are the current time and date // Fields 7 & 8 are the message reception time and date
if (mm->timestampMsg) { // Make sure the records' timestamp is valid before outputing it if (mm->timestampMsg && !mm->remote) { // 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 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 = (int) (mm->timestampMsg - Modes.timestampBlk); // This is the time (in 12Mhz ticks) into the Block
offset = offset / 12000; // convert to milliseconds offset = offset / 12000; // convert to milliseconds