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
@@ -55,7 +55,6 @@ public:
private:
bool armingStateTransitionTest();
bool mainStateTransitionTest();
bool isSafeTest();
};
bool StateMachineHelperTest::armingStateTransitionTest()
@@ -287,7 +286,7 @@ bool StateMachineHelperTest::armingStateTransitionTest()
for (size_t i = 0; i < cArmingTransitionTests; i++) {
const ArmingTransitionTest_t *test = &rgArmingTransitionTests[i];
const bool check_gps = false;
PreFlightCheck::arm_requirements_t arm_req{};
// Setup initial machine state
status.arming_state = test->current_state.arming_state;
@@ -305,7 +304,7 @@ bool StateMachineHelperTest::armingStateTransitionTest()
true /* enable pre-arm checks */,
nullptr /* no mavlink_log_pub */,
&status_flags,
(check_gps ? PreFlightCheck::ARM_REQ_GPS_BIT : 0),
arm_req,
2e6 /* 2 seconds after boot, everything should be checked */
);
@@ -536,49 +535,10 @@ bool StateMachineHelperTest::mainStateTransitionTest()
return true;
}
bool StateMachineHelperTest::isSafeTest()
{
struct safety_s safety = {};
struct actuator_armed_s armed = {};
armed.armed = false;
armed.lockdown = false;
safety.safety_switch_available = true;
safety.safety_off = false;
ut_compare("is safe: not armed", is_safe(safety, armed), true);
armed.armed = false;
armed.lockdown = true;
safety.safety_switch_available = true;
safety.safety_off = true;
ut_compare("is safe: software lockdown", is_safe(safety, armed), true);
armed.armed = true;
armed.lockdown = false;
safety.safety_switch_available = true;
safety.safety_off = true;
ut_compare("not safe: safety off", is_safe(safety, armed), false);
armed.armed = true;
armed.lockdown = false;
safety.safety_switch_available = true;
safety.safety_off = false;
ut_compare("is safe: safety off", is_safe(safety, armed), true);
armed.armed = true;
armed.lockdown = false;
safety.safety_switch_available = false;
safety.safety_off = false;
ut_compare("not safe: no safety switch", is_safe(safety, armed), false);
return true;
}
bool StateMachineHelperTest::run_tests()
{
ut_run_test(armingStateTransitionTest);
ut_run_test(mainStateTransitionTest);
ut_run_test(isSafeTest);
return (_tests_failed == 0);
}