Browse Source

AP_Gripper: servo gripper not valid unless aux channel assigned

master
Peter Barker 8 years ago committed by Randy Mackay
parent
commit
b4d1d0f918
  1. 2
      libraries/AP_Gripper/AP_Gripper_Backend.h
  2. 11
      libraries/AP_Gripper/AP_Gripper_Servo.cpp
  3. 3
      libraries/AP_Gripper/AP_Gripper_Servo.h

2
libraries/AP_Gripper/AP_Gripper_Backend.h

@ -35,7 +35,7 @@ public: @@ -35,7 +35,7 @@ public:
virtual void release() = 0;
// valid - returns true if the backend should be working
bool valid() const { return true; };
virtual bool valid() const { return true; };
// released - returns true if currently in released position
virtual bool released() const = 0;

11
libraries/AP_Gripper/AP_Gripper_Servo.cpp

@ -55,3 +55,14 @@ bool AP_Gripper_Servo::grabbed() const @@ -55,3 +55,14 @@ bool AP_Gripper_Servo::grabbed() const
// type-specific periodic updates:
void AP_Gripper_Servo::update_gripper() { };
bool AP_Gripper_Servo::valid() const
{
if (!AP_Gripper_Backend::valid()) {
return false;
}
if (!RC_Channel_aux::function_assigned(RC_Channel_aux::k_gripper)) {
return false;
}
return true;
}

3
libraries/AP_Gripper/AP_Gripper_Servo.h

@ -36,6 +36,9 @@ public: @@ -36,6 +36,9 @@ public:
// released - returns true if gripper in released state
bool released() const override;
// valid - returns true if the backend should be working
bool valid() const;
protected:
// type-specific intiailisations:

Loading…
Cancel
Save