AuboStudio SDK  0.6.3
ethernet_ip.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_ETHERNET_IP_H
2 #define AUBO_SCOPE_ETHERNET_IP_H
3 
5 
6 namespace arcs {
7 namespace aubo_scope {
8 ARCS_CLASS_FORWARD(EtherNetIP);
9 
10 /**
11  *
12  * This interface provides support for EtherNet/IP I/Os.
13  */
15 {
16 public:
19  ~EtherNetIP();
20 
21  /**
22  *
23  * @return Get the byte offset for this EtherNet/IP I/O.
24  */
25  int getByteOffset();
26 
27  /**
28  *
29  * @return Get the bit offset for this EtherNet/IP I/O.
30  */
31  int getBitOffset();
32 
33  /**
34  *
35  * @return Get the is slave for this EtherNet/IP I/O.
36  */
37  bool isSlave();
38 
39  /**
40  *
41  * @param value Set EtherNet/IP signal to an integer value. If the
42  * EtherNet/IP signal is digital, then <code>false</code> is represented by
43  * 0 and <code>true</code> are represented by all numbers different from 0.
44  *
45  * @return <code>true</code> if the EtherNet/IP signal was sent down to the
46  * controller, and <code>false</code> if the signal was not sent down, e.g.
47  * because the controller was not running. Notice that the EtherNet/IP
48  * signal must support writes, consult the Aubo EtherNet/IP protocol.
49  */
50  bool setValue(int value);
51 
52  /**
53  *
54  * @return the integer value of the EtherNet/IP signal. If the EtherNet/IP
55  * signal is digital then <code>false</code> is represented by 0 and
56  * <code>true}</code> is represented by the value 1.
57  */
58  int getValue();
59 
60 private:
61  friend class DataSwitch;
62  EtherNetIP();
63  void *d_{ nullptr };
64 };
65 
67 {
68  EtherNetIPFilter(Io::IoType type, bool is_input)
69  : type_(type), is_input_(is_input)
70  {
71  }
72  bool operator()(IoPtr io)
73  {
74  return std::dynamic_pointer_cast<EtherNetIP>(io) != nullptr &&
75  io->getType() == type_ && io->isInput() == is_input_;
76  }
77 
78 private:
80  bool is_input_;
81 };
82 
83 } // namespace aubo_scope
84 } // namespace arcs
85 
86 #endif // EtherNet/IPIO_H
ARCS_CLASS_FORWARD(GripForceCapability)
EtherNetIPFilter(Io::IoType type, bool is_input)
Definition: ethernet_ip.h:68
This is the base interface representing all types of I/Os available in AuboScope. ...
Definition: io.h:16
This interface provides support for EtherNet/IP I/Os.
Definition: ethernet_ip.h:14
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16
IoType getType() const