mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 15:33:34 +08:00
commander: move most static variables and parameters to class
This commit is contained in:
@@ -78,19 +78,18 @@ public:
|
||||
* true if the system power should be checked
|
||||
**/
|
||||
static bool preflightCheck(orb_advert_t *mavlink_log_pub, vehicle_status_s &status,
|
||||
vehicle_status_flags_s &status_flags,
|
||||
const bool checkGNSS, bool reportFailures, const bool prearm, const hrt_abstime &time_since_boot);
|
||||
vehicle_status_flags_s &status_flags, const bool checkGNSS, bool reportFailures, const bool prearm,
|
||||
const hrt_abstime &time_since_boot);
|
||||
|
||||
struct arm_requirements_t {
|
||||
bool arm_authorization = false;
|
||||
bool esc_check = false;
|
||||
bool global_position = false;
|
||||
bool mission = false;
|
||||
};
|
||||
|
||||
static bool preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &status_flags,
|
||||
const safety_s &safety, const uint8_t arm_requirements, const vehicle_status_s &status);
|
||||
|
||||
typedef enum {
|
||||
ARM_REQ_NONE = 0,
|
||||
ARM_REQ_MISSION_BIT = (1 << 0),
|
||||
ARM_REQ_ARM_AUTH_BIT = (1 << 1),
|
||||
ARM_REQ_GPS_BIT = (1 << 2),
|
||||
ARM_REQ_ESCS_CHECK_BIT = (1 << 3)
|
||||
} arm_requirements_t;
|
||||
const safety_s &safety, const arm_requirements_t &arm_requirements, const vehicle_status_s &status);
|
||||
|
||||
private:
|
||||
static bool magnometerCheck(orb_advert_t *mavlink_log_pub, vehicle_status_s &status, const uint8_t instance,
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include <uORB/topics/vehicle_command_ack.h>
|
||||
|
||||
bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &status_flags,
|
||||
const safety_s &safety, const uint8_t arm_requirements, const vehicle_status_s &status)
|
||||
const safety_s &safety, const arm_requirements_t &arm_requirements, const vehicle_status_s &status)
|
||||
{
|
||||
bool prearm_ok = true;
|
||||
|
||||
@@ -70,7 +70,7 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
|
||||
}
|
||||
|
||||
// Arm Requirements: mission
|
||||
if (arm_requirements & ARM_REQ_MISSION_BIT) {
|
||||
if (arm_requirements.mission) {
|
||||
|
||||
if (!status_flags.condition_auto_mission_available) {
|
||||
if (prearm_ok) {
|
||||
@@ -90,7 +90,7 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
|
||||
}
|
||||
|
||||
// Arm Requirements: global position
|
||||
if (arm_requirements & ARM_REQ_GPS_BIT) {
|
||||
if (arm_requirements.global_position) {
|
||||
|
||||
if (!status_flags.condition_global_position_valid) {
|
||||
if (prearm_ok) {
|
||||
@@ -120,7 +120,7 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
|
||||
|
||||
}
|
||||
|
||||
if (status_flags.condition_escs_error && (arm_requirements & ARM_REQ_ESCS_CHECK_BIT)) {
|
||||
if (arm_requirements.esc_check && status_flags.condition_escs_error) {
|
||||
if (prearm_ok) {
|
||||
mavlink_log_critical(mavlink_log_pub, "Arming denied! One or more ESCs are offline");
|
||||
prearm_ok = false;
|
||||
@@ -136,7 +136,7 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
|
||||
|
||||
// Arm Requirements: authorization
|
||||
// check last, and only if everything else has passed
|
||||
if ((arm_requirements & ARM_REQ_ARM_AUTH_BIT) && prearm_ok) {
|
||||
if (arm_requirements.arm_authorization && prearm_ok) {
|
||||
if (arm_auth_check() != vehicle_command_ack_s::VEHICLE_RESULT_ACCEPTED) {
|
||||
// feedback provided in arm_auth_check
|
||||
prearm_ok = false;
|
||||
|
||||
Reference in New Issue
Block a user