mavlink: fix flight_information: use COM_FLIGHT_UUID instead of the board id

The board id was used as flight id which does not make sense.
This commit is contained in:
Beat Küng
2017-10-17 09:56:01 +02:00
parent 85e82dca0d
commit 291872a28d
2 changed files with 14 additions and 13 deletions
+14 -12
View File
@@ -102,7 +102,6 @@ MavlinkReceiver::MavlinkReceiver(Mavlink *parent) :
_hil_local_pos{},
_hil_land_detector{},
_control_mode{},
_actuator_armed{},
_global_pos_pub(nullptr),
_local_pos_pub(nullptr),
_attitude_pub(nullptr),
@@ -167,6 +166,7 @@ MavlinkReceiver::MavlinkReceiver(Mavlink *parent) :
MavlinkReceiver::~MavlinkReceiver()
{
orb_unsubscribe(_control_mode_sub);
orb_unsubscribe(_actuator_armed_sub);
}
void MavlinkReceiver::acknowledge(uint8_t sysid, uint8_t compid, uint16_t command, int ret)
@@ -422,21 +422,23 @@ MavlinkReceiver::evaluate_target_ok(int command, int target_system, int target_c
void
MavlinkReceiver::send_flight_information()
{
bool updated;
mavlink_flight_information_t flight_info;
uuid_uint32_t uid;
board_get_uuid32(uid);
mavlink_flight_information_t flight_info{};
flight_info.flight_uuid = (((uint64_t)uid[PX4_CPU_UUID_WORD32_UNIQUE_M]) << 32) |
uid[PX4_CPU_UUID_WORD32_UNIQUE_H];
param_t param_flight_uuid = param_find("COM_FLIGHT_UUID");
orb_check(_actuator_armed_sub, &updated);
if (updated) {
orb_copy(ORB_ID(actuator_armed), _actuator_armed_sub, &_actuator_armed);
if (param_flight_uuid != PARAM_INVALID) {
int32_t flight_uuid;
param_get(param_flight_uuid, &flight_uuid);
flight_info.flight_uuid = (uint64_t)flight_uuid;
}
actuator_armed_s actuator_armed;
int ret = orb_copy(ORB_ID(actuator_armed), _actuator_armed_sub, &actuator_armed);
if (ret == 0 && actuator_armed.timestamp != 0) {
flight_info.arming_time_utc = flight_info.takeoff_time_utc = actuator_armed.armed_time_ms;
}
flight_info.arming_time_utc = flight_info.takeoff_time_utc = _actuator_armed.armed_time_ms;
flight_info.time_boot_ms = hrt_absolute_time() / 1000;
mavlink_msg_flight_information_send_struct(_mavlink->get_channel(), &flight_info);
}
-1
View File
@@ -207,7 +207,6 @@ private:
struct vehicle_local_position_s _hil_local_pos;
struct vehicle_land_detected_s _hil_land_detector;
struct vehicle_control_mode_s _control_mode;
struct actuator_armed_s _actuator_armed;
orb_advert_t _global_pos_pub;
orb_advert_t _local_pos_pub;
orb_advert_t _attitude_pub;