commander is_safe() use const references

This commit is contained in:
Daniel Agar
2018-03-27 15:53:56 -04:00
parent 376b5e4747
commit f59b7c7399
4 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -3979,7 +3979,7 @@ void *commander_low_prio_loop(void *arg)
switch (cmd.command) {
case vehicle_command_s::VEHICLE_CMD_PREFLIGHT_REBOOT_SHUTDOWN:
if (is_safe(&safety, &armed)) {
if (is_safe(safety, armed)) {
if (((int)(cmd.param1)) == 1) {
answer_command(cmd, vehicle_command_s::VEHICLE_CMD_RESULT_ACCEPTED, command_ack_pub);
@@ -482,31 +482,31 @@ bool StateMachineHelperTest::isSafeTest()
armed.lockdown = false;
safety.safety_switch_available = true;
safety.safety_off = false;
ut_compare("is safe: not armed", is_safe(&safety, &armed), true);
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);
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);
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);
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);
ut_compare("not safe: no safety switch", is_safe(safety, armed), false);
return true;
}
@@ -379,15 +379,15 @@ transition_result_t arming_state_transition(vehicle_status_s *status,
return ret;
}
bool is_safe(const struct safety_s *safety, const struct actuator_armed_s *armed)
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);
const bool lockdown = (armed.lockdown || armed.manual_lockdown);
return !armed->armed || (armed->armed && lockdown) || (safety->safety_switch_available && !safety->safety_off);
return !armed.armed || (armed.armed && lockdown) || (safety.safety_switch_available && !safety.safety_off);
}
transition_result_t
+1 -1
View File
@@ -77,7 +77,7 @@ typedef enum {
extern const char *const arming_state_names[];
bool is_safe(const struct safety_s *safety, const struct actuator_armed_s *armed);
bool is_safe(const safety_s& safety, const actuator_armed_s& armed);
transition_result_t arming_state_transition(struct vehicle_status_s *status,
struct battery_status_s *battery,