diff --git a/msg/vehicle_status.msg b/msg/vehicle_status.msg index 1d506eb088..b880ac8cde 100644 --- a/msg/vehicle_status.msg +++ b/msg/vehicle_status.msg @@ -3,11 +3,10 @@ uint8 ARMING_STATE_INIT = 0 uint8 ARMING_STATE_STANDBY = 1 uint8 ARMING_STATE_ARMED = 2 -uint8 ARMING_STATE_ARMED_ERROR = 3 -uint8 ARMING_STATE_STANDBY_ERROR = 4 -uint8 ARMING_STATE_REBOOT = 5 -uint8 ARMING_STATE_IN_AIR_RESTORE = 6 -uint8 ARMING_STATE_MAX = 7 +uint8 ARMING_STATE_STANDBY_ERROR = 3 +uint8 ARMING_STATE_REBOOT = 4 +uint8 ARMING_STATE_IN_AIR_RESTORE = 5 +uint8 ARMING_STATE_MAX = 6 uint8 HIL_STATE_OFF = 0 uint8 HIL_STATE_ON = 1 diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 0719905447..75f3389ab4 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -2428,7 +2428,7 @@ Commander::run() status.rc_signal_lost = false; - const bool in_armed_state = status.arming_state == vehicle_status_s::ARMING_STATE_ARMED || status.arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR; + const bool in_armed_state = (status.arming_state == vehicle_status_s::ARMING_STATE_ARMED); const bool arm_button_pressed = arm_switch_is_button == 1 && sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_ON; /* DISARM @@ -2453,13 +2453,10 @@ Commander::run() print_reject_arm("NOT DISARMING: Not in manual mode or landed yet."); } else if ((stick_off_counter == rc_arm_hyst && stick_on_counter < rc_arm_hyst) || arm_switch_to_disarm_transition) { - /* disarm to STANDBY if ARMED or to STANDBY_ERROR if ARMED_ERROR */ - arming_state_t new_arming_state = (status.arming_state == vehicle_status_s::ARMING_STATE_ARMED ? vehicle_status_s::ARMING_STATE_STANDBY : - vehicle_status_s::ARMING_STATE_STANDBY_ERROR); arming_ret = arming_state_transition(&status, &battery, &safety, - new_arming_state, + vehicle_status_s::ARMING_STATE_STANDBY, &armed, true /* fRunPreArmChecks */, &mavlink_log_pub, @@ -3087,8 +3084,7 @@ control_status_leds(vehicle_status_s *status_local, const actuator_armed_s *actu led_mode = led_control_s::MODE_ON; set_normal_color = true; - } else if (status_local->arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR || - (!status_flags.condition_system_sensors_initialized && hotplug_timeout)) { + } else if (!status_flags.condition_system_sensors_initialized && hotplug_timeout) { led_mode = led_control_s::MODE_BLINK_FAST; led_color = led_control_s::COLOR_RED; diff --git a/src/modules/commander/commander_tests/state_machine_helper_test.cpp b/src/modules/commander/commander_tests/state_machine_helper_test.cpp index d65703228d..072e21fcac 100644 --- a/src/modules/commander/commander_tests/state_machine_helper_test.cpp +++ b/src/modules/commander/commander_tests/state_machine_helper_test.cpp @@ -149,16 +149,6 @@ bool StateMachineHelperTest::armingStateTransitionTest() vehicle_status_s::ARMING_STATE_STANDBY, { vehicle_status_s::ARMING_STATE_STANDBY, ATT_DISARMED, ATT_READY_TO_ARM }, TRANSITION_CHANGED }, - { "transition: armed to armed error", - { vehicle_status_s::ARMING_STATE_ARMED, ATT_ARMED, ATT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_ARMED_ERROR, - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_CHANGED }, - - { "transition: armed error to standby error", - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_STANDBY_ERROR, - { vehicle_status_s::ARMING_STATE_STANDBY_ERROR, ATT_DISARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_CHANGED }, - { "transition: standby error to reboot", { vehicle_status_s::ARMING_STATE_STANDBY_ERROR, ATT_DISARMED, ATT_NOT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, vehicle_status_s::ARMING_STATE_REBOOT, @@ -193,12 +183,6 @@ bool StateMachineHelperTest::armingStateTransitionTest() vehicle_status_s::ARMING_STATE_ARMED, { vehicle_status_s::ARMING_STATE_ARMED, ATT_ARMED, ATT_READY_TO_ARM }, TRANSITION_CHANGED }, - // standby error - { "transition: armed error to standby error requested standby", - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_STANDBY, - { vehicle_status_s::ARMING_STATE_STANDBY_ERROR, ATT_DISARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_CHANGED }, - // TRANSITION_DENIED tests // Check some important basic invalid transitions, these don't require special state in vehicle_status_t or safety_s @@ -208,11 +192,6 @@ bool StateMachineHelperTest::armingStateTransitionTest() vehicle_status_s::ARMING_STATE_ARMED, { vehicle_status_s::ARMING_STATE_INIT, ATT_DISARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_DENIED }, - { "no transition: standby to armed error", - { vehicle_status_s::ARMING_STATE_STANDBY, ATT_DISARMED, ATT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_ARMED_ERROR, - { vehicle_status_s::ARMING_STATE_STANDBY, ATT_DISARMED, ATT_READY_TO_ARM }, TRANSITION_DENIED }, - { "no transition: armed to init", { vehicle_status_s::ARMING_STATE_ARMED, ATT_ARMED, ATT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, vehicle_status_s::ARMING_STATE_INIT, @@ -223,16 +202,6 @@ bool StateMachineHelperTest::armingStateTransitionTest() vehicle_status_s::ARMING_STATE_REBOOT, { vehicle_status_s::ARMING_STATE_ARMED, ATT_ARMED, ATT_READY_TO_ARM }, TRANSITION_DENIED }, - { "no transition: armed error to armed", - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_ARMED, - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_DENIED }, - - { "no transition: armed error to reboot", - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, - vehicle_status_s::ARMING_STATE_REBOOT, - { vehicle_status_s::ARMING_STATE_ARMED_ERROR, ATT_ARMED, ATT_NOT_READY_TO_ARM }, TRANSITION_DENIED }, - { "no transition: standby error to armed", { vehicle_status_s::ARMING_STATE_STANDBY_ERROR, ATT_DISARMED, ATT_NOT_READY_TO_ARM }, vehicle_status_s::HIL_STATE_OFF, ATT_SENSORS_INITIALIZED, ATT_SAFETY_AVAILABLE, ATT_SAFETY_ON, vehicle_status_s::ARMING_STATE_ARMED, diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index 70fc0ae4d7..d972b5d71e 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -64,14 +64,13 @@ static constexpr const char reason_no_datalink[] = "no datalink"; // though the transition is marked as true additional checks must be made. See arming_state_transition // code for those checks. static constexpr const bool arming_transitions[vehicle_status_s::ARMING_STATE_MAX][vehicle_status_s::ARMING_STATE_MAX] = { - // INIT, STANDBY, ARMED, ARMED_ERROR, STANDBY_ERROR, REBOOT, IN_AIR_RESTORE - { /* vehicle_status_s::ARMING_STATE_INIT */ true, true, false, false, true, false, false }, - { /* vehicle_status_s::ARMING_STATE_STANDBY */ true, true, true, true, false, false, false }, - { /* vehicle_status_s::ARMING_STATE_ARMED */ false, true, true, false, false, false, true }, - { /* vehicle_status_s::ARMING_STATE_ARMED_ERROR */ false, false, true, true, false, false, false }, - { /* vehicle_status_s::ARMING_STATE_STANDBY_ERROR */ true, true, true, true, true, false, false }, - { /* vehicle_status_s::ARMING_STATE_REBOOT */ true, true, false, false, true, true, true }, - { /* vehicle_status_s::ARMING_STATE_IN_AIR_RESTORE */ false, false, false, false, false, false, false }, // NYI + // INIT, STANDBY, ARMED, STANDBY_ERROR, REBOOT, IN_AIR_RESTORE + { /* vehicle_status_s::ARMING_STATE_INIT */ true, true, false, true, false, false }, + { /* vehicle_status_s::ARMING_STATE_STANDBY */ true, true, true, false, false, false }, + { /* vehicle_status_s::ARMING_STATE_ARMED */ false, true, true, false, false, true }, + { /* vehicle_status_s::ARMING_STATE_STANDBY_ERROR */ true, true, true, true, false, false }, + { /* vehicle_status_s::ARMING_STATE_REBOOT */ true, true, false, true, true, true }, + { /* vehicle_status_s::ARMING_STATE_IN_AIR_RESTORE */ false, false, false, false, false, false }, // NYI }; // You can index into the array with an arming_state_t in order to get its textual representation @@ -79,7 +78,6 @@ const char *const arming_state_names[vehicle_status_s::ARMING_STATE_MAX] = { "ARMING_STATE_INIT", "ARMING_STATE_STANDBY", "ARMING_STATE_ARMED", - "ARMING_STATE_ARMED_ERROR", "ARMING_STATE_STANDBY_ERROR", "ARMING_STATE_REBOOT", "ARMING_STATE_IN_AIR_RESTORE", @@ -258,10 +256,6 @@ transition_result_t arming_state_transition(vehicle_status_s *status, } } } - - } else if (new_arming_state == vehicle_status_s::ARMING_STATE_STANDBY - && status->arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR) { - new_arming_state = vehicle_status_s::ARMING_STATE_STANDBY_ERROR; } } @@ -325,8 +319,7 @@ transition_result_t arming_state_transition(vehicle_status_s *status, // Finish up the state transition if (valid_transition) { - armed->armed = new_arming_state == vehicle_status_s::ARMING_STATE_ARMED - || new_arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR; + armed->armed = (new_arming_state == vehicle_status_s::ARMING_STATE_ARMED); armed->ready_to_arm = new_arming_state == vehicle_status_s::ARMING_STATE_ARMED || new_arming_state == vehicle_status_s::ARMING_STATE_STANDBY; ret = TRANSITION_CHANGED; @@ -592,8 +585,7 @@ bool set_nav_state(vehicle_status_s *status, const bool rc_loss_act_configured = rc_loss_act > link_loss_actions_t::DISABLED; const bool rc_lost = rc_loss_act_configured && (status->rc_signal_lost); - bool is_armed = (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED - || status->arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR); + bool is_armed = (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED); bool old_failsafe = status->failsafe; status->failsafe = false; diff --git a/src/modules/gpio_led/gpio_led.c b/src/modules/gpio_led/gpio_led.c index ffc8e2bcd7..c4d4c4d58c 100644 --- a/src/modules/gpio_led/gpio_led.c +++ b/src/modules/gpio_led/gpio_led.c @@ -304,10 +304,7 @@ void gpio_led_cycle(FAR void *arg) /* select pattern for current vehiclestatus */ int pattern = 0; - if (priv->vehicle_status.arming_state == ARMING_STATE_ARMED_ERROR) { - pattern = 0x2A; // *_*_*_ fast blink (armed, error) - - } else if (priv->vehicle_status.arming_state == ARMING_STATE_ARMED) { + if (priv->vehicle_status.arming_state == ARMING_STATE_ARMED) { if (priv->battery_status.warning == BATTERY_WARNING_NONE && !priv->vehicle_status.failsafe) { pattern = 0x3f; // ****** solid (armed) diff --git a/src/modules/logger/logger.cpp b/src/modules/logger/logger.cpp index 30943a28b0..3adbf3e4a0 100644 --- a/src/modules/logger/logger.cpp +++ b/src/modules/logger/logger.cpp @@ -957,9 +957,7 @@ void Logger::run() if (ret == 0 && vehicle_status_updated) { vehicle_status_s vehicle_status; orb_copy(ORB_ID(vehicle_status), vehicle_status_sub, &vehicle_status); - bool armed = (vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED) || - (vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR) || - _arm_override; + bool armed = (vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED) || _arm_override; if (_was_armed != armed && !_log_until_shutdown) { _was_armed = armed; diff --git a/src/modules/mavlink/mavlink_messages.cpp b/src/modules/mavlink/mavlink_messages.cpp index c68e4d681c..0ffc918668 100644 --- a/src/modules/mavlink/mavlink_messages.cpp +++ b/src/modules/mavlink/mavlink_messages.cpp @@ -131,8 +131,7 @@ void get_mavlink_mode_state(struct vehicle_status_s *status, uint8_t *mavlink_st } /* arming state */ - if (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED - || status->arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR) { + if (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED) { *mavlink_base_mode |= MAV_MODE_FLAG_SAFETY_ARMED; } @@ -259,9 +258,6 @@ void get_mavlink_mode_state(struct vehicle_status_s *status, uint8_t *mavlink_st } else if (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED) { *mavlink_state = MAV_STATE_ACTIVE; - } else if (status->arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR) { - *mavlink_state = MAV_STATE_CRITICAL; - } else if (status->arming_state == vehicle_status_s::ARMING_STATE_STANDBY) { *mavlink_state = MAV_STATE_STANDBY; @@ -3439,8 +3435,7 @@ protected: msg.param2 = 0; msg.param3 = 0; /* set camera capture ON/OFF depending on arming state */ - msg.param4 = (status.arming_state == vehicle_status_s::ARMING_STATE_ARMED - || status.arming_state == vehicle_status_s::ARMING_STATE_ARMED_ERROR) ? 1 : 0; + msg.param4 = (status.arming_state == vehicle_status_s::ARMING_STATE_ARMED) ? 1 : 0; msg.param5 = 0; msg.param6 = 0; msg.param7 = 0; diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c index faf4470af6..8a0037ecc7 100644 --- a/src/modules/sdlog2/sdlog2.c +++ b/src/modules/sdlog2/sdlog2.c @@ -2250,7 +2250,7 @@ void handle_command(struct vehicle_command_s *cmd) void handle_status(struct vehicle_status_s *status) { // TODO use flag from actuator_armed here? - bool armed = status->arming_state == ARMING_STATE_ARMED || status->arming_state == ARMING_STATE_ARMED_ERROR; + bool armed = status->arming_state == ARMING_STATE_ARMED; if (armed != flag_system_armed) { flag_system_armed = armed;