Skip to content

Commit e444d2e

Browse files
committed
Fix reversed sense of Track Angle / Heading bit in surface opstatus messages.
1 parent a0bd957 commit e444d2e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

mode_s.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -1280,7 +1280,10 @@ static void decodeESOperationalStatus(struct modesMessage *mm, int check_imf)
12801280
mm->accuracy.nic_baro_valid = 1;
12811281
mm->accuracy.nic_baro = getbit(me, 53);
12821282
} else {
1283-
mm->opstatus.tah = getbit(me, 53) ? HEADING_GROUND_TRACK : mm->opstatus.hrd;
1283+
// see DO=260B §2.2.3.2.7.2.12
1284+
// TAH=0 : surface movement reports ground track
1285+
// TAH=1 : surface movement reports aircraft heading
1286+
mm->opstatus.tah = getbit(me, 53) ? mm->opstatus.hrd : HEADING_GROUND_TRACK;
12841287
}
12851288
break;
12861289

@@ -1330,7 +1333,10 @@ static void decodeESOperationalStatus(struct modesMessage *mm, int check_imf)
13301333
mm->accuracy.nic_baro_valid = 1;
13311334
mm->accuracy.nic_baro = getbit(me, 53);
13321335
} else {
1333-
mm->opstatus.tah = getbit(me, 53) ? HEADING_GROUND_TRACK : mm->opstatus.hrd;
1336+
// see DO=260B §2.2.3.2.7.2.12
1337+
// TAH=0 : surface movement reports ground track
1338+
// TAH=1 : surface movement reports aircraft heading
1339+
mm->opstatus.tah = getbit(me, 53) ? mm->opstatus.hrd : HEADING_GROUND_TRACK;
13341340
}
13351341
break;
13361342
}

0 commit comments

Comments
 (0)