ardupilot/APMrover2/AP_Arming.h

35 lines
899 B
C++

#pragma once
#include <AP_Arming/AP_Arming.h>
#include <AC_Fence/AC_Fence.h>
/*
a rover-specific arming class
*/
class AP_Arming_Rover : public AP_Arming
{
public:
AP_Arming_Rover(const AP_AHRS &ahrs_ref, const AP_Baro &baro, Compass &compass,
const AP_BattMonitor &battery, const AC_Fence &fence)
: AP_Arming(ahrs_ref, baro, compass, battery),
_fence(fence)
{
}
/* Do not allow copies */
AP_Arming_Rover(const AP_Arming_Rover &other) = delete;
AP_Arming_Rover &operator=(const AP_Baro&) = delete;
bool pre_arm_checks(bool report) override;
bool pre_arm_rc_checks(const bool display_failure);
bool gps_checks(bool display_failure) override;
protected:
enum HomeState home_status() const override;
bool fence_checks(bool report);
bool proximity_check(bool report);
private:
const AC_Fence& _fence;
};