forked from Archive/PX4-Autopilot
always trigger all cameras
This commit is contained in:
parent
135f02679a
commit
f9510557a6
|
@ -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,39 +88,41 @@ private:
|
||||||
|
|
||||||
_camera_status_sub.update(&_camera_status);
|
_camera_status_sub.update(&_camera_status);
|
||||||
|
|
||||||
vehicle_command_s vcmd{};
|
for (int i_camera = 0; i_camera < num_cameras; i_camera++) {
|
||||||
vcmd.timestamp = hrt_absolute_time();
|
vehicle_command_s vcmd{};
|
||||||
vcmd.param1 = 0.0f; // all cameras
|
vcmd.timestamp = hrt_absolute_time();
|
||||||
vcmd.param2 = 0.0f; // duration 0 because only taking one picture
|
vcmd.param1 = 0.0f; // all cameras
|
||||||
vcmd.param3 = 1.0f; // only take one
|
vcmd.param2 = 0.0f; // duration 0 because only taking one picture
|
||||||
vcmd.param4 = (float)_sequence++;
|
vcmd.param3 = 1.0f; // only take one
|
||||||
vcmd.param5 = (double)NAN;
|
vcmd.param4 = (float)_sequence++;
|
||||||
vcmd.param6 = (double)NAN;
|
vcmd.param5 = (double)NAN;
|
||||||
vcmd.param7 = NAN;
|
vcmd.param6 = (double)NAN;
|
||||||
vcmd.command = MAV_CMD_IMAGE_START_CAPTURE;
|
vcmd.param7 = NAN;
|
||||||
vcmd.target_system = mavlink_system.sysid;
|
vcmd.command = MAV_CMD_IMAGE_START_CAPTURE;
|
||||||
vcmd.target_component = _camera_status.active_comp_id;
|
vcmd.target_system = mavlink_system.sysid;
|
||||||
|
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());
|
||||||
|
|
||||||
|
|
||||||
// TODO: move this camera_trigger and publish as a vehicle_command
|
// TODO: move this camera_trigger and publish as a vehicle_command
|
||||||
/* send MAV_CMD_DO_DIGICAM_CONTROL*/
|
/* send MAV_CMD_DO_DIGICAM_CONTROL*/
|
||||||
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;
|
||||||
command_long_msg.param2 = NAN;
|
command_long_msg.param2 = NAN;
|
||||||
command_long_msg.param3 = NAN;
|
command_long_msg.param3 = NAN;
|
||||||
command_long_msg.param4 = NAN;
|
command_long_msg.param4 = NAN;
|
||||||
command_long_msg.param5 = 1; // take 1 picture
|
command_long_msg.param5 = 1; // take 1 picture
|
||||||
command_long_msg.param6 = NAN;
|
command_long_msg.param6 = NAN;
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue