Line data Source code
1 : #pragma once 2 : 3 : #include <AP_Arming/AP_Arming.h> 4 : 5 : #ifndef AP_PLANE_BLACKBOX_LOGGING 6 : #define AP_PLANE_BLACKBOX_LOGGING 0 7 : #endif 8 : 9 : /* 10 : a plane specific arming class 11 : */ 12 : class AP_Arming_Plane : public AP_Arming 13 : { 14 : public: 15 692 : AP_Arming_Plane() 16 692 : : AP_Arming() 17 : { 18 692 : AP_Param::setup_object_defaults(this, var_info); 19 692 : } 20 : 21 : /* Do not allow copies */ 22 : CLASS_NO_COPY(AP_Arming_Plane); 23 : 24 : bool pre_arm_checks(bool report) override; 25 : bool arm_checks(AP_Arming::Method method) override; 26 : 27 : // var_info for holding Parameter information 28 : static const struct AP_Param::GroupInfo var_info[]; 29 : 30 : bool disarm(AP_Arming::Method method, bool do_disarm_checks=true) override; 31 : bool arm(AP_Arming::Method method, bool do_arming_checks=true) override; 32 : 33 : void update_soft_armed(); 34 623139 : bool get_delay_arming() const { return delay_arming; }; 35 : 36 : // mandatory checks that cannot be bypassed. This function will only be called if ARMING_SKIPCHK skips all or arming forced 37 : bool mandatory_checks(bool display_failure) override; 38 : 39 : protected: 40 : bool ins_checks(bool report) override; 41 : bool terrain_database_required() const override; 42 : 43 : bool quadplane_checks(bool display_failure); 44 : #if AP_MISSION_ENABLED 45 : bool mission_checks(bool report) override; 46 : #endif // AP_MISSION_ENABLED 47 : 48 : // Checks rc has been received if it is configured to be used 49 : bool rc_received_if_enabled_check(bool display_failure); 50 : 51 : private: 52 : void change_arm_state(void); 53 : 54 : // oneshot with duration AP_ARMING_DELAY_MS used by quadplane to delay spoolup after arming: 55 : // ignored unless OPTION_DELAY_ARMING or OPTION_TILT_DISARMED is set 56 : bool delay_arming; 57 : 58 : #if AP_PLANE_BLACKBOX_LOGGING 59 : AP_Float blackbox_speed; 60 : uint32_t last_over_3dspeed_ms; 61 : #endif 62 : };