AuboStudio SDK  0.6.3
registered_cpabilities.h
浏览该文件的文档.
1#ifndef AUBO_SCOPE_REGISTERED_CAPABILITIES_H
2#define AUBO_SCOPE_REGISTERED_CAPABILITIES_H
3
11
12namespace arcs {
13namespace aubo_scope {
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{
51public:
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
#define ARCS_CLASS_FORWARD(C)
Macro that forward declares a class and defines the respective smartpointers through ARCS_DECLARE_PTR...
virtual GripForceCapabilityPtr getGripForceCapability()=0
virtual WidthCapabilityPtr getWidthCapability()=0
virtual SpeedCapabilityPtr getSpeedCapability()=0
virtual GripVacuumCapabilityPtr getGripVacuumCapability()=0