Use mode_request for RC mode switching

This commit is contained in:
Matthias Grob
2021-10-19 15:06:17 +02:00
parent f8e4846851
commit 052e29267d
7 changed files with 44 additions and 158 deletions
+8
View File
@@ -2512,6 +2512,14 @@ Commander::run()
}
}
while (_mode_request_sub.updated()) {
mode_request_s mode_request;
if (_mode_request_sub.copy(&mode_request)) {
main_state_transition(_status, mode_request.mode, _status_flags, _internal_state);
}
}
/* Check for failure detector status */
if (_failure_detector.update(_status, _vehicle_control_mode)) {
_status.failure_detector_status = _failure_detector.getStatus().value;
+2
View File
@@ -73,6 +73,7 @@
#include <uORB/topics/manual_control_setpoint.h>
#include <uORB/topics/mission.h>
#include <uORB/topics/mission_result.h>
#include <uORB/topics/mode_request.h>
#include <uORB/topics/offboard_control_mode.h>
#include <uORB/topics/parameter_update.h>
#include <uORB/topics/power_button_state.h>
@@ -399,6 +400,7 @@ private:
uORB::Subscription _iridiumsbd_status_sub{ORB_ID(iridiumsbd_status)};
uORB::Subscription _land_detector_sub{ORB_ID(vehicle_land_detected)};
uORB::Subscription _manual_control_setpoint_sub{ORB_ID(manual_control_setpoint)};
uORB::Subscription _mode_request_sub {ORB_ID(mode_request)};
uORB::Subscription _safety_sub{ORB_ID(safety)};
uORB::Subscription _system_power_sub{ORB_ID(system_power)};
uORB::Subscription _vehicle_angular_velocity_sub{ORB_ID(vehicle_angular_velocity)};