mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-07-24 15:27:41 +08:00
fix(mavlink): update TransponderReport flag bitmask
This commit is contained in:
committed by
Matthias Grob
parent
eba76cbb69
commit
0e01c3452e
@@ -14,14 +14,20 @@ uint16 flags # Flags to indicate various statuses including valid data fields
|
||||
uint16 squawk # Squawk code
|
||||
uint8[18] uas_id # Unique UAS ID
|
||||
|
||||
# ADSB flags
|
||||
# ADSB flags, bit values match MAVLink's ADSB_FLAGS enum (common.xml)
|
||||
uint16 PX4_ADSB_FLAGS_VALID_COORDS = 1
|
||||
uint16 PX4_ADSB_FLAGS_VALID_ALTITUDE = 2
|
||||
uint16 PX4_ADSB_FLAGS_VALID_HEADING = 4
|
||||
uint16 PX4_ADSB_FLAGS_VALID_VELOCITY = 8
|
||||
uint16 PX4_ADSB_FLAGS_VALID_CALLSIGN = 16
|
||||
uint16 PX4_ADSB_FLAGS_VALID_SQUAWK = 32
|
||||
uint16 PX4_ADSB_FLAGS_RETRANSLATE = 256
|
||||
uint16 PX4_ADSB_FLAGS_SIMULATED = 64
|
||||
uint16 PX4_ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128
|
||||
uint16 PX4_ADSB_FLAGS_BARO_VALID = 256
|
||||
uint16 PX4_ADSB_FLAGS_SOURCE_UAT = 32768
|
||||
|
||||
# PX4-internal flag, not part of the MAVLink ADSB_FLAGS bitmask: uses a bit MAVLink leaves unused
|
||||
uint16 PX4_ADSB_FLAGS_RETRANSLATE = 512
|
||||
|
||||
#ADSB Emitter Data:
|
||||
#from mavlink/v2.0/common/common.h
|
||||
|
||||
@@ -2886,6 +2886,14 @@ MavlinkReceiver::handle_message_adsb_vehicle(mavlink_message_t *msg)
|
||||
|
||||
if (adsb.flags & ADSB_FLAGS_VALID_SQUAWK) { t.flags |= transponder_report_s::PX4_ADSB_FLAGS_VALID_SQUAWK; }
|
||||
|
||||
if (adsb.flags & ADSB_FLAGS_SIMULATED) { t.flags |= transponder_report_s::PX4_ADSB_FLAGS_SIMULATED; }
|
||||
|
||||
if (adsb.flags & ADSB_FLAGS_VERTICAL_VELOCITY_VALID) { t.flags |= transponder_report_s::PX4_ADSB_FLAGS_VERTICAL_VELOCITY_VALID; }
|
||||
|
||||
if (adsb.flags & ADSB_FLAGS_BARO_VALID) { t.flags |= transponder_report_s::PX4_ADSB_FLAGS_BARO_VALID; }
|
||||
|
||||
if (adsb.flags & ADSB_FLAGS_SOURCE_UAT) { t.flags |= transponder_report_s::PX4_ADSB_FLAGS_SOURCE_UAT; }
|
||||
|
||||
//PX4_INFO("code: %d callsign: %s, vel: %8.4f, tslc: %d", (int)t.ICAO_address, t.callsign, (double)t.hor_velocity, (int)t.tslc);
|
||||
|
||||
_transponder_report_pub.publish(t);
|
||||
|
||||
@@ -99,6 +99,14 @@ private:
|
||||
|
||||
if (pos.flags & transponder_report_s::PX4_ADSB_FLAGS_VALID_SQUAWK) { msg.flags |= ADSB_FLAGS_VALID_SQUAWK; }
|
||||
|
||||
if (pos.flags & transponder_report_s::PX4_ADSB_FLAGS_SIMULATED) { msg.flags |= ADSB_FLAGS_SIMULATED; }
|
||||
|
||||
if (pos.flags & transponder_report_s::PX4_ADSB_FLAGS_VERTICAL_VELOCITY_VALID) { msg.flags |= ADSB_FLAGS_VERTICAL_VELOCITY_VALID; }
|
||||
|
||||
if (pos.flags & transponder_report_s::PX4_ADSB_FLAGS_BARO_VALID) { msg.flags |= ADSB_FLAGS_BARO_VALID; }
|
||||
|
||||
if (pos.flags & transponder_report_s::PX4_ADSB_FLAGS_SOURCE_UAT) { msg.flags |= ADSB_FLAGS_SOURCE_UAT; }
|
||||
|
||||
mavlink_msg_adsb_vehicle_send_struct(_mavlink->get_channel(), &msg);
|
||||
sent = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user