AuboCaps  0.6.0
registered_cpabilities.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_REGISTERED_CAPABILITIES_H
2 #define AUBO_SCOPE_REGISTERED_CAPABILITIES_H
3 
11 
12 namespace arcs {
13 namespace aubo_scope {
14 ARCS_CLASS_FORWARD(RegisteredCapabilities);
15 
16 /**
17  * <p>
18  * Each of the individual grippers/zones available in a multi-gripper device
19  * supports all capabilities that has been registered, i.e. all the individual
20  * grippers have the exact same set of capabilities. This interface gives access
21  * to all registered capabilities, such as the width capability (see {@link
22  * WidthCapability}), speed capability (see
23  * {@link SpeedCapability}), etc. This enables dynamic adjustment of capability
24  * properties, including the value range and default values, exclusively per
25  * individual gripper (independently of the other grippers).
26  * </p>
27  *
28  * <p>
29  * This interface is only relevant if the multi-gripper capability has been
30  * registered (using the method
31  * {@link GripperCapabilities#registerWidthCapability(double, double, double,
32  * double, Length.Unit)}).
33  * </p>
34  *
35  * <p>
36  * Each capability <b>must</b> be registered using the {@link
37  * GripperCapabilities} interface (when
38  * {@link GripperContribution#configureGripper(GripperConfiguration,
39  * GripperAPIProvider)} is called) before they can be accessed using this
40  * interface.
41  * </p>
42  *
43  * <b>NOTE:</b> If an update of the properties of a capability needs to apply
44  * for all individual grippers, it is more convenient to perform the adjustment
45  * simultaneously for all grippers using the capability instance (e.g.
46  * {@link WidthCapability}) returned when the capability was registered (with
47  * the {@link GripperCapabilities} interface).
48  */
50 {
51 public:
52  virtual ~RegisteredCapabilities() = default;
53 
54  /**
55  * <p>
56  * Access the width capability interface which allows for dynamic
57  * adjustments of the capability properties exclusively for this
58  * specific individual gripper (independently of the other grippers),
59  * including the value range and default value.
60  * </p>
61  *
62  * This is only valid, if the width capability has been registered
63  * (using the method
64  * {@link GripperCapabilities#registerWidthCapability(double, double,
65  * double, double, Length.Unit)}).
66  *
67  * @return The width capability for this individual gripper
68  * @throws UnsupportedOperationException if the gripper has not
69  * registered the width capability
70  */
71  virtual WidthCapabilityPtr getWidthCapability() = 0;
72 
73  /**
74  * <p>
75  * Access the grip force capability interface which allows for dynamic
76  * adjustments of the capability properties exclusively for this specific
77  * individual gripper (independently of the other grippers), including the
78  * value range and default value.
79  * </p>
80  *
81  *
82  * This is only valid, if the force capability has been registered (using
83  * the method
84  * {@link GripperCapabilities#registerGrippingForceCapability(double,
85  * double, double, Force.Unit)}).
86  *
87  * @return The grip force capability for this individual gripper
88  * @throws UnsupportedOperationException if the gripper has not registered
89  * the force capability
90  */
91  virtual GripForceCapabilityPtr getGripForceCapability() = 0;
92 
93  /**
94  * <p>
95  * Access the speed capability interface which allows for dynamic
96  * adjustments of the capability properties exclusively for this specific
97  * individual gripper (independently of the other grippers), including the
98  * value range and default value.
99  * </p>
100  *
101  * This is only valid, if the speed capability has been registered (using
102  * the method
103  * {@link GripperCapabilities#registerSpeedCapability(double, double,
104  * double, double, Speed.Unit)}).
105  *
106  * @return The speed capability for this individual gripper
107  * @throws UnsupportedOperationException if the gripper has not registered
108  * the speed capability
109  */
110  virtual SpeedCapabilityPtr getSpeedCapability() = 0;
111 
112  /**
113  * <p>
114  * Access the grip vacuum capability interface which allows for dynamic
115  * adjustments of the capability properties exclusively for this specific
116  * individual gripper (independently of the other grippers), including the
117  * value range and default value.
118  * </p>
119  *
120  * This is only valid, if the vacuum capability has been registered (using
121  * the method
122  * {@link GripperCapabilities#registerGrippingVacuumCapability(double,
123  * double, double, Pressure.Unit)}).
124  *
125  * @return The grip vacuum capability for this individual gripper
126  * @throws UnsupportedOperationException if the gripper has not registered
127  * the vacuum capability
128  */
129  virtual GripVacuumCapabilityPtr getGripVacuumCapability() = 0;
130 };
131 } // namespace aubo_scope
132 } // namespace arcs
133 #endif
ARCS_CLASS_FORWARD(GripForceCapability)
virtual WidthCapabilityPtr getWidthCapability()=0
virtual GripVacuumCapabilityPtr getGripVacuumCapability()=0
virtual SpeedCapabilityPtr getSpeedCapability()=0
virtual GripForceCapabilityPtr getGripForceCapability()=0