always trigger all cameras

This commit is contained in:
alessandro 2023-06-05 17:56:52 +02:00 committed by Thomas Stastny
parent 135f02679a
commit f9510557a6
1 changed files with 32 additions and 28 deletions

View File

@ -72,6 +72,8 @@ private:
}; };
int _sequence {1}; int _sequence {1};
static constexpr uint8_t num_cameras = 6; // Mavlink has reserved component IDs for six cameras
bool send() override bool send() override
{ {
camera_trigger_s camera_trigger; camera_trigger_s camera_trigger;
@ -86,6 +88,7 @@ private:
_camera_status_sub.update(&_camera_status); _camera_status_sub.update(&_camera_status);
for (int i_camera = 0; i_camera < num_cameras; i_camera++) {
vehicle_command_s vcmd{}; vehicle_command_s vcmd{};
vcmd.timestamp = hrt_absolute_time(); vcmd.timestamp = hrt_absolute_time();
vcmd.param1 = 0.0f; // all cameras vcmd.param1 = 0.0f; // all cameras
@ -97,7 +100,7 @@ private:
vcmd.param7 = NAN; vcmd.param7 = NAN;
vcmd.command = MAV_CMD_IMAGE_START_CAPTURE; vcmd.command = MAV_CMD_IMAGE_START_CAPTURE;
vcmd.target_system = mavlink_system.sysid; vcmd.target_system = mavlink_system.sysid;
vcmd.target_component = _camera_status.active_comp_id; vcmd.target_component = i_camera + MAV_COMP_ID_CAMERA;
MavlinkCommandSender::instance().handle_vehicle_command(vcmd, _mavlink->get_channel()); MavlinkCommandSender::instance().handle_vehicle_command(vcmd, _mavlink->get_channel());
@ -107,7 +110,7 @@ private:
mavlink_command_long_t command_long_msg{}; mavlink_command_long_t command_long_msg{};
command_long_msg.target_system = _camera_status.active_sys_id; command_long_msg.target_system = _camera_status.active_sys_id;
command_long_msg.target_component = _camera_status.active_comp_id; command_long_msg.target_component = i_camera + MAV_COMP_ID_CAMERA;
command_long_msg.command = MAV_CMD_DO_DIGICAM_CONTROL; command_long_msg.command = MAV_CMD_DO_DIGICAM_CONTROL;
command_long_msg.confirmation = 0; command_long_msg.confirmation = 0;
command_long_msg.param1 = NAN; command_long_msg.param1 = NAN;
@ -119,6 +122,7 @@ private:
command_long_msg.param7 = NAN; command_long_msg.param7 = NAN;
mavlink_msg_command_long_send_struct(_mavlink->get_channel(), &command_long_msg); mavlink_msg_command_long_send_struct(_mavlink->get_channel(), &command_long_msg);
}
return true; return true;
} }