AuboCaps  0.6.0
io_model.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_IO_MODEL_H
2 #define AUBO_SCOPE_IO_MODEL_H
3 
4 #include <vector>
5 #include <functional>
8 
9 namespace arcs {
10 namespace aubo_scope {
11 ARCS_CLASS_FORWARD(IoModel);
12 
13 /**
14  * Provides methods that returns I/Os from the current robot installation.
15  *
16  */
18 {
19 public:
20  IoModel(IoModel &f);
21  IoModel(IoModel &&f);
22  ~IoModel();
23 
24  /**
25  *
26  * @return the collection of available I/Os, including Modbus, EuroMap67 and
27  * named General Purpose Registers.
28  */
29  std::vector<IoPtr> getAll();
30 
31  IoPtr getIo(const std::string &name);
32 
33  /**
34  *
35  * @param filter, see {@link IOFilterFactory}
36  * @return the collection of IOs that are accepted by the filter.
37  */
38  std::vector<IoPtr> getIos(std::function<bool(IoPtr)> filter);
39 
40 private:
41  friend class DataSwitch;
42  IoModel();
43  void *d_{ nullptr };
44 };
45 
46 } // namespace aubo_scope
47 } // namespace arcs
48 #endif
ARCS_CLASS_FORWARD(GripForceCapability)
Provides methods that returns I/Os from the current robot installation.
Definition: io_model.h:17
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16