gimbal: implement gimbal_device_id

It turns out that I had omitted implementing the gimbal_device_id which
is the component ID of the gimbal device that the gimbal manager (in
this case PX4) is responsible for.

Signed-off-by: Julian Oes <julian@oes.ch>
This commit is contained in:
Julian Oes
2023-05-01 09:02:25 -04:00
committed by Daniel Agar
parent b23eee40f0
commit 3f13a6e787
10 changed files with 34 additions and 12 deletions
+11 -2
View File
@@ -46,7 +46,7 @@ OutputMavlinkV1::OutputMavlinkV1(const Parameters &parameters)
: OutputBase(parameters)
{}
void OutputMavlinkV1::update(const ControlData &control_data, bool new_setpoints)
void OutputMavlinkV1::update(ControlData &control_data, bool new_setpoints)
{
vehicle_command_s vehicle_command{};
vehicle_command.timestamp = hrt_absolute_time();
@@ -142,7 +142,7 @@ OutputMavlinkV2::OutputMavlinkV2(const Parameters &parameters)
{
}
void OutputMavlinkV2::update(const ControlData &control_data, bool new_setpoints)
void OutputMavlinkV2::update(ControlData &control_data, bool new_setpoints)
{
_check_for_gimbal_device_information();
@@ -162,6 +162,8 @@ void OutputMavlinkV2::update(const ControlData &control_data, bool new_setpoints
_last_update = t;
}
control_data.device_compid = _gimbal_device_found ? _gimbal_device_compid : 0;
_publish_gimbal_device_set_attitude();
}
}
@@ -206,6 +208,13 @@ void OutputMavlinkV2::print_status() const
(double)_angle_velocity[0],
(double)_angle_velocity[1],
(double)_angle_velocity[2]);
if (_gimbal_device_found) {
PX4_INFO_RAW(" gimbal device compid found: %d\n", _gimbal_device_compid);
} else {
PX4_INFO_RAW(" gimbal device compid not found\n");
}
}
void OutputMavlinkV2::_publish_gimbal_device_set_attitude()