commander: move most static variables and parameters to class

This commit is contained in:
Daniel Agar
2019-12-23 23:38:10 -05:00
committed by GitHub
parent 386673e6c3
commit 0e70578052
8 changed files with 811 additions and 989 deletions

View File

@@ -46,7 +46,6 @@
#include <systemlib/mavlink_log.h>
#include <drivers/drv_hrt.h>
#include "Arming/PreFlightCheck/PreFlightCheck.hpp"
#include "state_machine_helper.h"
#include "commander_helper.h"
@@ -105,7 +104,8 @@ void reset_offboard_loss_globals(actuator_armed_s *armed, const bool old_failsaf
transition_result_t arming_state_transition(vehicle_status_s *status, const safety_s &safety,
const arming_state_t new_arming_state, actuator_armed_s *armed, const bool fRunPreArmChecks,
orb_advert_t *mavlink_log_pub, vehicle_status_flags_s *status_flags, const uint8_t arm_requirements,
orb_advert_t *mavlink_log_pub, vehicle_status_flags_s *status_flags,
const PreFlightCheck::arm_requirements_t &arm_requirements,
const hrt_abstime &time_since_boot)
{
// Double check that our static arrays are still valid
@@ -130,14 +130,12 @@ transition_result_t arming_state_transition(vehicle_status_s *status, const safe
*/
bool preflight_check_ret = true;
const bool checkGNSS = (arm_requirements & PreFlightCheck::ARM_REQ_GPS_BIT);
/* only perform the pre-arm check if we have to */
if (fRunPreArmChecks && (new_arming_state == vehicle_status_s::ARMING_STATE_ARMED)
&& !hil_enabled) {
preflight_check_ret = PreFlightCheck::preflightCheck(mavlink_log_pub, *status, *status_flags, checkGNSS, true, true,
time_since_boot);
preflight_check_ret = PreFlightCheck::preflightCheck(mavlink_log_pub, *status, *status_flags,
arm_requirements.global_position, true, true, time_since_boot);
if (preflight_check_ret) {
status_flags->condition_system_sensors_initialized = true;
@@ -156,8 +154,7 @@ transition_result_t arming_state_transition(vehicle_status_s *status, const safe
if ((last_preflight_check == 0) || (hrt_elapsed_time(&last_preflight_check) > 1000 * 1000)) {
status_flags->condition_system_sensors_initialized = PreFlightCheck::preflightCheck(mavlink_log_pub, *status,
*status_flags,
checkGNSS, false, false, time_since_boot);
*status_flags, arm_requirements.global_position, false, false, time_since_boot);
last_preflight_check = hrt_absolute_time();
}
@@ -245,17 +242,6 @@ transition_result_t arming_state_transition(vehicle_status_s *status, const safe
return ret;
}
bool is_safe(const safety_s &safety, const actuator_armed_s &armed)
{
// System is safe if:
// 1) Not armed
// 2) Armed, but in software lockdown (HIL)
// 3) Safety switch is present AND engaged -> actuators locked
const bool lockdown = (armed.lockdown || armed.manual_lockdown);
return !armed.armed || (armed.armed && lockdown) || (safety.safety_switch_available && !safety.safety_off);
}
transition_result_t
main_state_transition(const vehicle_status_s &status, const main_state_t new_main_state,
const vehicle_status_flags_s &status_flags, commander_state_s *internal_state)