AuboCaps  0.6.0
gripper_node.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_GRIPPER_NODE_H
2 #define AUBO_SCOPE_GRIPPER_NODE_H
3 
7 
8 namespace arcs {
9 namespace aubo_scope {
10 ARCS_CLASS_FORWARD(GripperNode);
11 
12 /**
13  * <p>
14  * This interface represents a program node which can be used for programming
15  * grip and release actions with a selected gripper device.
16  * </p>
17  *
18  * <p>
19  * An instance of this interface can be built using the {@link
20  * GripperNodeFactory} interface and is returned as a result when {@link
21  * GripperNodeFactory#createGripperNode(GripperDevice)} is called.
22  * </p>
23  */
25 {
26 public:
27  /**
28  * The configuration type used to determine which type of configuration this
29  * instance is.
30  */
32  {
33 
34  /**
35  * <p>
36  * A Gripper action (i.e. grip or release) has not been selected
37  * </p>
38  *
39  * The config instance can be cast to {@link UndefinedActionConfig}.
40  * This is only relevant if the Gripper node uses a multi-gripper
41  * device, i.e. a gripper device supporting the multi-gripper capability
42  * (see the
43  * {@link MultiGripperSupport} interface). The instance will provide
44  * access to the individual gripper selection.
45  */
47 
48  /**
49  * <p>
50  * The gripper is configured for a grip action
51  * </p>
52  *
53  * The config instance can be cast to {@link GripActionConfig}.
54  */
56 
57  /**
58  * <p>
59  * The gripper is configured for a release action
60  * </p>
61  *
62  * The config instance can be cast to {@link ReleaseActionConfig}.
63  */
64  RELEASE_ACTION
65  };
66 
69  virtual ~GripperNode();
70 
71  /**
72  * This method returns the type of configuration. Cast this instance
73  * appropriately to have access to specific getters.
74  *
75  * @return The type of this config.
76  */
77  ConfigType getConfigType();
78 
79  void setConfigType(ConfigType type);
80 
81  /**
82  * @return The gripper device used by this Gripper node
83  */
84  GripperDevicePtr getGripperDevice();
85 
86  /**
87  * The setting type used to determine which type of setting this instance
88  * is.
89  */
91  {
92 
93  /**
94  * <p>
95  * No selection has been made.
96  * </p>
97  */
99 
100  /**
101  * <p>
102  * A payload (from the installation) is selected.
103  * </p>
104  *
105  * The setting instance can be cast to {@link PayloadSelection}.
106  */
108 
109  /**
110  * <p>
111  * Custom payload parameters are specified.
112  * </p>
113  *
114  * The setting instance can be cast to {@link CustomPayloadParameters}.
115  */
116  CUSTOM_PARAMETERS
117  };
118 
119  /**
120  * This method returns the type of setting. Cast this instance appropriately
121  * to have access to specific getters.
122  *
123  * @return The type of this payload setting.
124  */
125  SettingType getSettingType();
126 
127 private:
128  friend class DataSwitch;
129  GripperNode();
130  void *d_{ nullptr };
131 };
132 } // namespace aubo_scope
133 } // namespace arcs
134 
135 #endif
ARCS_CLASS_FORWARD(GripForceCapability)
SettingType
The setting type used to determine which type of setting this instance is.
Definition: gripper_node.h:90
ConfigType
The configuration type used to determine which type of configuration this instance is...
Definition: gripper_node.h:31
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16