APMrover2: use static method to construct AP_Arming_Rover

This commit is contained in:
Lucas De Marchi 2017-08-30 13:25:42 -07:00 committed by Francisco Ferreira
parent 10529feae6
commit 5ec1430726
2 changed files with 14 additions and 6 deletions

View File

@ -8,16 +8,24 @@
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) :
AP_Arming(ahrs_ref, baro, compass, battery) {
static AP_Arming_Rover create(const AP_AHRS &ahrs_ref, const AP_Baro &baro, Compass &compass, const AP_BattMonitor &battery) {
return AP_Arming_Rover{ahrs_ref, baro, compass, battery};
}
constexpr AP_Arming_Rover(AP_Arming_Rover &&other) = default;
/* Do not allow copies */
AP_Arming_Rover(const AP_Arming_Rover &other) = delete;
AP_Arming_Rover &operator=(const AP_Baro&) = delete;
bool pre_arm_rc_checks(const bool display_failure);
protected:
AP_Arming_Rover(const AP_AHRS &ahrs_ref, const AP_Baro &baro, Compass &compass,
const AP_BattMonitor &battery)
: AP_Arming(ahrs_ref, baro, compass, battery)
{
}
enum HomeState home_status() const override;
};

View File

@ -171,7 +171,7 @@ private:
#endif
// Arming/Disarming management class
AP_Arming_Rover arming {ahrs, barometer, compass, battery};
AP_Arming_Rover arming = AP_Arming_Rover::create(ahrs, barometer, compass, battery);
AP_L1_Control L1_controller;