mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-19 02:23:58 +08:00
commander is_safe() use const references
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user