mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 12:43:33 +08:00
Mavlink: Implemented SET_CAMERA_ZOOM
This commit is contained in:
committed by
Julian Oes
parent
73f7243bc8
commit
6bd191a24e
@@ -1476,6 +1476,7 @@ MavlinkMissionManager::parse_mavlink_mission_item(const mavlink_mission_item_t *
|
||||
case MAV_CMD_DO_SET_CAM_TRIGG_DIST:
|
||||
case MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL:
|
||||
case MAV_CMD_SET_CAMERA_MODE:
|
||||
case MAV_CMD_SET_CAMERA_ZOOM:
|
||||
case MAV_CMD_DO_VTOL_TRANSITION:
|
||||
case MAV_CMD_NAV_DELAY:
|
||||
case MAV_CMD_NAV_RETURN_TO_LAUNCH:
|
||||
@@ -1551,6 +1552,7 @@ MavlinkMissionManager::format_mavlink_mission_item(const struct mission_item_s *
|
||||
case NAV_CMD_DO_SET_CAM_TRIGG_DIST:
|
||||
case NAV_CMD_DO_SET_CAM_TRIGG_INTERVAL:
|
||||
case NAV_CMD_SET_CAMERA_MODE:
|
||||
case NAV_CMD_SET_CAMERA_ZOOM:
|
||||
case NAV_CMD_DO_VTOL_TRANSITION:
|
||||
break;
|
||||
|
||||
|
||||
@@ -521,6 +521,27 @@ void MavlinkReceiver::handle_message_command_both(mavlink_message_t *msg, const
|
||||
result = vehicle_command_ack_s::VEHICLE_RESULT_DENIED;
|
||||
}
|
||||
|
||||
} else if (cmd_mavlink.command == MAV_CMD_SET_CAMERA_ZOOM) {
|
||||
struct actuator_controls_s actuator_controls = {};
|
||||
actuator_controls.timestamp = hrt_absolute_time();
|
||||
|
||||
for (size_t i = 0; i < 8; i++) {
|
||||
actuator_controls.control[i] = NAN;
|
||||
}
|
||||
|
||||
switch ((int)(cmd_mavlink.param1 + 0.5f)) {
|
||||
case vehicle_command_s::VEHICLE_CAMERA_ZOOM_TYPE_RANGE:
|
||||
actuator_controls.control[actuator_controls_s::INDEX_CAMERA_ZOOM] = cmd_mavlink.param2 / 50.0f - 1.0f;
|
||||
break;
|
||||
case vehicle_command_s::VEHICLE_CAMERA_ZOOM_TYPE_STEP:
|
||||
case vehicle_command_s::VEHICLE_CAMERA_ZOOM_TYPE_CONTINUOUS:
|
||||
case vehicle_command_s::VEHICLE_CAMERA_ZOOM_TYPE_FOCAL_LENGTH:
|
||||
default:
|
||||
send_ack = false;
|
||||
}
|
||||
|
||||
_actuator_controls_pubs[actuator_controls_s::GROUP_INDEX_GIMBAL].publish(actuator_controls);
|
||||
|
||||
} else {
|
||||
|
||||
send_ack = false;
|
||||
|
||||
Reference in New Issue
Block a user