AuboCaps  0.6.0
speed_capability.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_SPEED_CAPABILITY_H
2 #define AUBO_SCOPE_SPEED_CAPABILITY_H
3 
5 
6 namespace arcs {
7 namespace aubo_scope {
8 ARCS_CLASS_FORWARD(SpeedCapability);
9 
10 /**
11  * <p>
12  * This interface represents a registered speed capability for a gripper which
13  * supports operating using a user configurable speed.
14  * </p>
15  *
16  * Through this interface, it is possible to adjust the range and default values
17  * for the speed after the capability has been registered. This is typically not
18  * applicable for most grippers, but can be relevant when the range depends on
19  * another custom gripper setting (which can be configured by the user).
20  */
22 {
23 public:
24  virtual ~SpeedCapability() = default;
25 
26  /**
27  * <p>
28  * Update the range and default values for the speed supported by the
29  * gripper.
30  * </p>
31  *
32  * Updating the range could result in an already entered value in the
33  * configuration of a gripper program node being outside the range. This
34  * will make the given program node undefined, and force the end user to
35  * adjust the value to be valid again.
36  *
37  * @param minSpeed minimum operating speed supported by the gripper
38  * @param maxSpeed maximum operating speed supported by the gripper
39  * @param defaultGripSpeed default value for the speed for a grip action.
40  * This value is used for, e.g. performing a "default" grip action using the
41  * toolbar
42  * @param defaultReleaseSpeed default value for the speed for a release
43  * action. This value is used for, e.g. performing a "default" release
44  * action using the toolbar
45  * @param unit the unit for all specified values, not <code>null</code>
46  * @throws InvalidCapabilityRange if <code>minSpeed</code> >
47  * <code>maxSpeed</code>
48  * @throws InvalidCapabilityRange if <code>defaultGripSpeed</code> or
49  * <code>defaultReleaseSpeed</code> is outside the range defined by
50  * <code>minSpeed</code> and <code>maxSpeed</code>.
51  */
52  virtual void updateCapability(double minSpeed, double maxSpeed,
53  double defaultGripSpeed,
54  double defaultReleaseSpeed) = 0;
55 };
56 } // namespace aubo_scope
57 } // namespace arcs
58 #endif
ARCS_CLASS_FORWARD(GripForceCapability)
virtual void updateCapability(double minSpeed, double maxSpeed, double defaultGripSpeed, double defaultReleaseSpeed)=0
virtual ~SpeedCapability()=default