mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-25 12:23:33 +08:00
vehicle_status: move vtol_vehicle_status enum
It makes more sense to have the VTOL status in its own message.
This commit is contained in:
@@ -51,13 +51,6 @@ uint8 NAVIGATION_STATE_AUTO_LAND = 18 # Land
|
|||||||
uint8 NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19 # Auto Follow
|
uint8 NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19 # Auto Follow
|
||||||
uint8 NAVIGATION_STATE_MAX = 20
|
uint8 NAVIGATION_STATE_MAX = 20
|
||||||
|
|
||||||
# VEHICLE_VTOL_STATE, should match 1:1 MAVLinks's MAV_VTOL_STATE
|
|
||||||
uint8 VEHICLE_VTOL_STATE_UNDEFINED = 0
|
|
||||||
uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_FW = 1
|
|
||||||
uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_MC = 2
|
|
||||||
uint8 VEHICLE_VTOL_STATE_MC = 3
|
|
||||||
uint8 VEHICLE_VTOL_STATE_FW = 4
|
|
||||||
|
|
||||||
uint8 VEHICLE_BATTERY_WARNING_NONE = 0 # no battery low voltage warning active
|
uint8 VEHICLE_BATTERY_WARNING_NONE = 0 # no battery low voltage warning active
|
||||||
uint8 VEHICLE_BATTERY_WARNING_LOW = 1 # warning of low voltage
|
uint8 VEHICLE_BATTERY_WARNING_LOW = 1 # warning of low voltage
|
||||||
uint8 VEHICLE_BATTERY_WARNING_CRITICAL = 2 # alerting of critical voltage
|
uint8 VEHICLE_BATTERY_WARNING_CRITICAL = 2 # alerting of critical voltage
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
# VEHICLE_VTOL_STATE, should match 1:1 MAVLinks's MAV_VTOL_STATE
|
||||||
|
uint8 VEHICLE_VTOL_STATE_UNDEFINED = 0
|
||||||
|
uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_FW = 1
|
||||||
|
uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_MC = 2
|
||||||
|
uint8 VEHICLE_VTOL_STATE_MC = 3
|
||||||
|
uint8 VEHICLE_VTOL_STATE_FW = 4
|
||||||
|
|
||||||
uint64 timestamp # Microseconds since system boot
|
uint64 timestamp # Microseconds since system boot
|
||||||
bool vtol_in_rw_mode # true: vtol vehicle is in rotating wing mode
|
bool vtol_in_rw_mode # true: vtol vehicle is in rotating wing mode
|
||||||
bool vtol_in_trans_mode
|
bool vtol_in_trans_mode
|
||||||
|
|||||||
@@ -523,7 +523,7 @@ MissionBlock::set_land_item(struct mission_item_s *item, bool at_current_locatio
|
|||||||
if(_navigator->get_vstatus()->is_vtol && !_navigator->get_vstatus()->is_rotary_wing){
|
if(_navigator->get_vstatus()->is_vtol && !_navigator->get_vstatus()->is_rotary_wing){
|
||||||
struct vehicle_command_s cmd = {};
|
struct vehicle_command_s cmd = {};
|
||||||
cmd.command = NAV_CMD_DO_VTOL_TRANSITION;
|
cmd.command = NAV_CMD_DO_VTOL_TRANSITION;
|
||||||
cmd.param1 = vehicle_status_s::VEHICLE_VTOL_STATE_MC;
|
cmd.param1 = vtol_vehicle_status_s::VEHICLE_VTOL_STATE_MC;
|
||||||
if (_cmd_pub != nullptr) {
|
if (_cmd_pub != nullptr) {
|
||||||
orb_publish(ORB_ID(vehicle_command), _cmd_pub, &cmd);
|
orb_publish(ORB_ID(vehicle_command), _cmd_pub, &cmd);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
#include <uORB/topics/mission.h>
|
#include <uORB/topics/mission.h>
|
||||||
#include <uORB/topics/vehicle_global_position.h>
|
#include <uORB/topics/vehicle_global_position.h>
|
||||||
#include <uORB/topics/position_setpoint_triplet.h>
|
#include <uORB/topics/position_setpoint_triplet.h>
|
||||||
|
#include <uORB/topics/vtol_vehicle_status.h>
|
||||||
#include <uORB/topics/actuator_controls.h>
|
#include <uORB/topics/actuator_controls.h>
|
||||||
#include <uORB/topics/follow_target.h>
|
#include <uORB/topics/follow_target.h>
|
||||||
|
|
||||||
|
|||||||
@@ -467,7 +467,7 @@ VtolAttitudeControl::is_fixed_wing_requested()
|
|||||||
|
|
||||||
// listen to transition commands if not in manual
|
// listen to transition commands if not in manual
|
||||||
if (!_v_control_mode.flag_control_manual_enabled) {
|
if (!_v_control_mode.flag_control_manual_enabled) {
|
||||||
to_fw = _transition_command == vehicle_status_s::VEHICLE_VTOL_STATE_FW;
|
to_fw = _transition_command == vtol_vehicle_status_s::VEHICLE_VTOL_STATE_FW;
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle abort request
|
// handle abort request
|
||||||
@@ -699,10 +699,10 @@ void VtolAttitudeControl::task_main()
|
|||||||
// reset transition command if not auto control
|
// reset transition command if not auto control
|
||||||
if (_v_control_mode.flag_control_manual_enabled) {
|
if (_v_control_mode.flag_control_manual_enabled) {
|
||||||
if (_vtol_type->get_mode() == ROTARY_WING) {
|
if (_vtol_type->get_mode() == ROTARY_WING) {
|
||||||
_transition_command = vehicle_status_s::VEHICLE_VTOL_STATE_MC;
|
_transition_command = vtol_vehicle_status_s::VEHICLE_VTOL_STATE_MC;
|
||||||
|
|
||||||
} else if (_vtol_type->get_mode() == FIXED_WING) {
|
} else if (_vtol_type->get_mode() == FIXED_WING) {
|
||||||
_transition_command = vehicle_status_s::VEHICLE_VTOL_STATE_FW;
|
_transition_command = vtol_vehicle_status_s::VEHICLE_VTOL_STATE_FW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user