mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-31 07:01:35 +08:00
camera_trigger: add TRIG_INTERFACE=3 for Mavlink forwarding
This commit is contained in:
@@ -76,7 +76,8 @@ extern "C" __EXPORT int camera_trigger_main(int argc, char *argv[]);
|
|||||||
typedef enum : int32_t {
|
typedef enum : int32_t {
|
||||||
CAMERA_INTERFACE_MODE_NONE = 0,
|
CAMERA_INTERFACE_MODE_NONE = 0,
|
||||||
CAMERA_INTERFACE_MODE_RELAY,
|
CAMERA_INTERFACE_MODE_RELAY,
|
||||||
CAMERA_INTERFACE_MODE_SEAGULL_MAP2_PWM
|
CAMERA_INTERFACE_MODE_SEAGULL_MAP2_PWM,
|
||||||
|
CAMERA_INTERFACE_MODE_MAVLINK
|
||||||
} camera_interface_mode_t;
|
} camera_interface_mode_t;
|
||||||
|
|
||||||
class CameraTrigger
|
class CameraTrigger
|
||||||
@@ -265,6 +266,11 @@ CameraTrigger::CameraTrigger() :
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
case CAMERA_INTERFACE_MODE_MAVLINK:
|
||||||
|
/* start an interface that does nothing. Instead mavlink will listen to the camera_trigger uORB message */
|
||||||
|
_camera_interface = new CameraInterface();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
PX4_ERR("unknown camera interface mode: %i", (int)_camera_interface_mode);
|
PX4_ERR("unknown camera interface mode: %i", (int)_camera_interface_mode);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
*
|
*
|
||||||
* @value 1 GPIO
|
* @value 1 GPIO
|
||||||
* @value 2 Seagull MAP2 (PWM)
|
* @value 2 Seagull MAP2 (PWM)
|
||||||
|
* @value 3 MAVLink (forward via MAV_CMD_IMAGE_START_CAPTURE)
|
||||||
*
|
*
|
||||||
* @reboot_required true
|
* @reboot_required true
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1420,6 +1420,23 @@ protected:
|
|||||||
/* ensure that only active trigger events are sent */
|
/* ensure that only active trigger events are sent */
|
||||||
if (trigger.timestamp > 0) {
|
if (trigger.timestamp > 0) {
|
||||||
mavlink_msg_camera_trigger_send_struct(_mavlink->get_channel(), &msg);
|
mavlink_msg_camera_trigger_send_struct(_mavlink->get_channel(), &msg);
|
||||||
|
|
||||||
|
/* send MAV_CMD_IMAGE_START_CAPTURE */
|
||||||
|
mavlink_command_long_t msg_cmd;
|
||||||
|
|
||||||
|
msg_cmd.target_system = mavlink_system.sysid;
|
||||||
|
msg_cmd.target_component = MAV_COMP_ID_CAMERA;
|
||||||
|
msg_cmd.command = MAV_CMD_IMAGE_START_CAPTURE;
|
||||||
|
msg_cmd.confirmation = 0;
|
||||||
|
msg_cmd.param1 = 0;
|
||||||
|
msg_cmd.param2 = 1;
|
||||||
|
msg_cmd.param3 = 0;
|
||||||
|
msg_cmd.param4 = NAN;
|
||||||
|
msg_cmd.param5 = NAN;
|
||||||
|
msg_cmd.param6 = NAN;
|
||||||
|
msg_cmd.param7 = NAN;
|
||||||
|
|
||||||
|
mavlink_msg_command_long_send_struct(_mavlink->get_channel(), &msg_cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user