SlaveRegisters.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*!
4  * Copied from https://gitlab.com/h2t/student-projects/pse-ws2021/etherkitten/-/tree/master/reader/src/etherkitten/reader
5  *
6  * !!!
7  * Needs correct license message!!!!
8  * !!!
9  */
10 
11 #include <map>
12 #include <string>
13 #include <unordered_map>
14 
15 #include "EtherCATDataTypes.h"
16 
17 /**
18  * @defgroup Namespace-datatypes datatypes
19  * @ingroup Library-ethercat
20  * @brief Brief description of Namespace datatypes.
21  */
23 {
24  /*!
25  * @enum RegisterEnum
26  * @ingroup Namespace-datatypes
27  *
28  * \brief The RegisterEnum enum encodes the slave registers that every slave offers.
29  *
30  * Not all registers are in this enum; a subset has been selected based on the registers' value
31  * in debugging.
32  *
33  * The low 16 bits of a register's value in this enum corresponds to its address in a slave's
34  * memory. If multiple registers are located in the same byte, the next 3 bits encode the
35  * register's offset in the byte.
36  */
37  enum class RegisterEnum
38  {
39  TYPE = 0x0,
40  REVISION = 0x1,
41  BUILD = 0x2,
42  RAM_SIZE = 0x6,
43  PORT0_DESCRIPTOR = 0x00007,
44  PORT1_DESCRIPTOR = 0x20007,
45  PORT2_DESCRIPTOR = 0x40007,
46  PORT3_DESCRIPTOR = 0x60007,
47  FMMU_BIT_NOT_SUPPORTED = 0x00008,
49  DC_SUPPORTED = 0x20008,
50  DC_RANGE = 0x30008,
51  LOW_JITTER_EBUS = 0x40008,
57  DLS_USER_OPERATIONAL = 0x00110,
58  LINK_STATUS_PORT_0 = 0x40110,
59  LINK_STATUS_PORT_1 = 0x50110,
60  LINK_STATUS_PORT_2 = 0x60110,
61  LINK_STATUS_PORT_3 = 0x70110,
62  LOOP_STATUS_PORT_0 = 0x00111,
63  SIGNAL_DETECTION_PORT_0 = 0x10111,
64  LOOP_STATUS_PORT_1 = 0x20111,
65  SIGNAL_DETECTION_PORT_1 = 0x30111,
66  LOOP_STATUS_PORT_2 = 0x40111,
67  SIGNAL_DETECTION_PORT_2 = 0x50111,
68  LOOP_STATUS_PORT_3 = 0x60111,
69  SIGNAL_DETECTION_PORT_3 = 0x70111,
70  STATUS_CONTROL = 0x120,
71  DLS_USER_R2 = 0x121,
72  STATUS = 0x130,
73  DLS_USER_R4 = 0x131,
74  DLS_USER_R5 = 0x132,
75  DLS_USER_R6 = 0x134,
76  DLS_USER_R7 = 0x140,
77  DLS_USER_R8 = 0x150,
78  DLS_USER_R9 = 0x141,
92  LOCAL_PROBLEM_COUNTER = 0x30D,
97  SII_READ_OPERATION = 0x00503,
98  SII_WRITE_OPERATION = 0x10503,
99  SII_RELOAD_OPERATION = 0x20503,
100  SII_CHECKSUM_ERROR = 0x30503,
101  SII_DEVICE_INFO_ERROR = 0x40503,
102  SII_COMMAND_ERROR = 0x50503,
103  SII_WRITE_ERROR = 0x60503,
104  SII_BUSY = 0x70503,
105  SYSTEM_TIME = 0x910,
106  };
107 
108  inline std::uint32_t
110  {
111  static constexpr std::uint32_t addressMask = 0xFFFF;
112  return static_cast<std::uint32_t>(e) & addressMask;
113  }
114 
115  inline std::uint8_t
117  {
118  static constexpr std::uint32_t subaddressMask = 0x70000;
119  return static_cast<std::uint8_t>((static_cast<std::uint32_t>(e) & subaddressMask) >> 16);
120  }
121 
122  // Comparison Operator for RegisterEnum
123  inline bool
125  {
126  std::uint32_t a_address = getRegisterAddress(a);
127  std::uint32_t b_address = getRegisterAddress(b);
128  std::uint8_t a_subaddress = getRegisterSubAddress(a);
129  std::uint8_t b_subaddress = getRegisterSubAddress(b);
130 
131  if (a_address < b_address)
132  {
133  return true;
134  }
135  else if (a_address > b_address)
136  {
137  return false;
138  }
139  else
140  {
141  if (a_subaddress < b_subaddress)
142  {
143  return true;
144  }
145  else
146  {
147  return false;
148  }
149  }
150  }
151 
152 
161 
162  /*!
163  * \brief The RegisterInfo struct holds additional information on one register.
164  */
166  {
167  std::string name;
169  std::size_t bitLength;
170  };
171 
172  template <EtherCATDataTypeEnum E>
174  makeInfo(const std::string& name)
175  {
176  return {name, E, EtherCATDataType::bitLength<typename TypeMap<E>::type>};
177  }
178 
179  /*!
180  * \brief Holds additional information on all defined registers.
181  */
182  const std::unordered_map<RegisterEnum, RegisterInfo> registerMap = {
183  {RegisterEnum::TYPE, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Type")},
184  {RegisterEnum::REVISION, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Revision")},
185  {RegisterEnum::BUILD, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Build")},
186  {RegisterEnum::RAM_SIZE, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Ram size")},
187  {RegisterEnum::PORT0_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 0 descriptor")},
188  {RegisterEnum::PORT1_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 1 descriptor")},
189  {RegisterEnum::PORT2_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 2 descriptor")},
190  {RegisterEnum::PORT3_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 3 descriptor")},
192  makeInfo<EtherCATDataTypeEnum::BIT1>("FMMU bit operation not supported")},
194  makeInfo<EtherCATDataTypeEnum::BIT1>("No support for reserved register")},
195  {RegisterEnum::DC_SUPPORTED, makeInfo<EtherCATDataTypeEnum::BIT1>("DC supported")},
196  {RegisterEnum::DC_RANGE, makeInfo<EtherCATDataTypeEnum::BIT1>("DC range")},
197  {RegisterEnum::LOW_JITTER_EBUS, makeInfo<EtherCATDataTypeEnum::BIT1>("Low jitter EBUS")},
199  makeInfo<EtherCATDataTypeEnum::BIT1>("Enhanced link detection EBUS")},
201  makeInfo<EtherCATDataTypeEnum::BIT1>("Enhanced link detection MII")},
203  makeInfo<EtherCATDataTypeEnum::BIT1>("Separate fcs error handling")},
205  makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Configured station address")},
207  makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Configured station alias")},
209  makeInfo<EtherCATDataTypeEnum::BIT1>("DLS user operational")},
211  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 0")},
213  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 1")},
215  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 2")},
217  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 3")},
219  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 0")},
221  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 0")},
223  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 1")},
225  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 1")},
227  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 2")},
229  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 2")},
231  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 3")},
233  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 3")},
234  {RegisterEnum::STATUS_CONTROL, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Status control")},
235  {RegisterEnum::DLS_USER_R2, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R2")},
236  {RegisterEnum::STATUS, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Status")},
237  {RegisterEnum::DLS_USER_R4, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R4")},
238  {RegisterEnum::DLS_USER_R5, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("DLS user R5")},
239  {RegisterEnum::DLS_USER_R6, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("DLS user R6")},
240  {RegisterEnum::DLS_USER_R7, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R7")},
241  {RegisterEnum::DLS_USER_R8, makeInfo<EtherCATDataTypeEnum::UNSIGNED32>("DLS user R8")},
242  {RegisterEnum::DLS_USER_R9, makeInfo<EtherCATDataTypeEnum::BIT7>("DLS user R9")},
244  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 0")},
246  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 0")},
248  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 1")},
250  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 1")},
252  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 2")},
254  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 2")},
256  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 3")},
258  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 3")},
260  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 0")},
262  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 1")},
264  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 2")},
266  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 3")},
268  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Malformat frame counter")},
270  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Local problem counter")},
272  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 0")},
274  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 1")},
276  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 2")},
278  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 3")},
280  makeInfo<EtherCATDataTypeEnum::BIT1>("SII read operation")},
282  makeInfo<EtherCATDataTypeEnum::BIT1>("SII write operation")},
284  makeInfo<EtherCATDataTypeEnum::BIT1>("SII reload operation")},
286  makeInfo<EtherCATDataTypeEnum::BIT1>("SII checksum error")},
288  makeInfo<EtherCATDataTypeEnum::BIT1>("SII device info error")},
290  makeInfo<EtherCATDataTypeEnum::BIT1>("SII command error")},
291  {RegisterEnum::SII_WRITE_ERROR, makeInfo<EtherCATDataTypeEnum::BIT1>("SII write error")},
292  {RegisterEnum::SII_BUSY, makeInfo<EtherCATDataTypeEnum::BIT1>("SII busy")},
293  {RegisterEnum::SYSTEM_TIME, makeInfo<EtherCATDataTypeEnum::UNSIGNED64>("System time")},
294  };
295 
296 } // namespace armarx::control::ethercat::datatypes
297 
298 
300 {
301  /*!
302  * \brief Get the length of a register in bytes, rounded up.
303  * \param reg the register to get the length of
304  * \return the length of the register
305  */
307 
308 
309  /**
310  * @struct RegisterDataList
311  * @ingroup Library-ethercat
312  * @brief Brief description of struct RegisterDataList.
313  *
314  * Detailed description of struct RegisterDataList.
315  */
317  {
318  std::uint16_t slaveIndex;
319  std::map<datatypes::RegisterEnum, datatypes::RegisterEnumTypeContainer> registerData;
320  };
321 } // namespace armarx::control::ethercat
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_OPERATIONAL
@ DLS_USER_OPERATIONAL
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R2
@ DLS_USER_R2
armarx::control::ethercat::datatypes::EtherCATDataType::INTEGER64
int64_t INTEGER64
Definition: EtherCATDataTypes.h:82
armarx::control::ethercat::datatypes::RegisterEnum::MALFORMAT_FRAME_COUNTER
@ MALFORMAT_FRAME_COUNTER
armarx::control::ethercat::datatypes::RegisterEnum::LINK_STATUS_PORT_2
@ LINK_STATUS_PORT_2
armarx::control::ethercat::datatypes::RegisterEnum::LINK_STATUS_PORT_3
@ LINK_STATUS_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::LOOP_STATUS_PORT_1
@ LOOP_STATUS_PORT_1
armarx::control::ethercat::datatypes::operator<
bool operator<(RegisterEnum a, RegisterEnum b)
Definition: SlaveRegisters.h:124
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R4
@ DLS_USER_R4
armarx::control::ethercat::datatypes::makeInfo
RegisterInfo makeInfo(const std::string &name)
Definition: SlaveRegisters.h:174
armarx::control::ethercat::datatypes::EtherCATDataTypeEnum
EtherCATDataTypeEnum
Holds all the types we support via EtherCAT in a type-agnostic enum.
Definition: EtherCATDataTypes.h:27
armarx::control::ethercat::getRegisterByteLength
std::size_t getRegisterByteLength(datatypes::RegisterEnum reg)
Get the length of a register in bytes, rounded up.
Definition: SlaveRegisters.cpp:6
EtherCATDataTypes.h
armarx::control::ethercat::datatypes::RegisterEnum::LOOP_STATUS_PORT_3
@ LOOP_STATUS_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::SII_READ_OPERATION
@ SII_READ_OPERATION
armarx::control::ethercat::RegisterDataList::slaveIndex
std::uint16_t slaveIndex
Definition: SlaveRegisters.h:318
armarx::control::ethercat::datatypes::RegisterEnum::SYSTEM_TIME
@ SYSTEM_TIME
armarx::control::ethercat::datatypes::EtherCATDataType::UNSIGNED16
uint16_t UNSIGNED16
Definition: EtherCATDataTypes.h:72
armarx::control::ethercat::datatypes::EtherCATDataType::UNSIGNED8
uint8_t UNSIGNED8
Definition: EtherCATDataTypes.h:71
armarx::control::ethercat::datatypes::RegisterEnum::LOOP_STATUS_PORT_2
@ LOOP_STATUS_PORT_2
armarx::control::ethercat::datatypes::registerMap
const std::unordered_map< RegisterEnum, RegisterInfo > registerMap
Holds additional information on all defined registers.
Definition: SlaveRegisters.h:182
armarx::control::ethercat::datatypes::RegisterEnum::SIGNAL_DETECTION_PORT_1
@ SIGNAL_DETECTION_PORT_1
armarx::control::ethercat::datatypes::RegisterEnum::LINK_STATUS_PORT_0
@ LINK_STATUS_PORT_0
armarx::control::ethercat::RegisterDataList::registerData
std::map< datatypes::RegisterEnum, datatypes::RegisterEnumTypeContainer > registerData
Definition: SlaveRegisters.h:319
armarx::control::ethercat::datatypes::getRegisterSubAddress
std::uint8_t getRegisterSubAddress(RegisterEnum e)
Definition: SlaveRegisters.h:116
armarx::control::ethercat::datatypes::RegisterEnum
RegisterEnum
The RegisterEnum enum encodes the slave registers that every slave offers.
Definition: SlaveRegisters.h:37
armarx::control::ethercat::datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_0
@ PREVIOUS_ERROR_COUNTER_PORT_0
armarx::control::ethercat::datatypes::RegisterEnum::SII_CHECKSUM_ERROR
@ SII_CHECKSUM_ERROR
armarx::control::ethercat::datatypes::RegisterEnum::PORT2_DESCRIPTOR
@ PORT2_DESCRIPTOR
armarx::control::ethercat::datatypes::RegisterEnum::RAM_SIZE
@ RAM_SIZE
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R6
@ DLS_USER_R6
armarx::control::ethercat::datatypes::RegisterEnum::SIGNAL_DETECTION_PORT_3
@ SIGNAL_DETECTION_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::CONFIGURED_STATION_ADDRESS
@ CONFIGURED_STATION_ADDRESS
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R8
@ DLS_USER_R8
armarx::control::ethercat::datatypes::EtherCATDataType::INTEGER16
int16_t INTEGER16
Definition: EtherCATDataTypes.h:69
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R7
@ DLS_USER_R7
armarx::control::ethercat::datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_2
@ LOST_LINK_COUNTER_PORT_2
armarx::control::ethercat::datatypes::RegisterEnum::SII_WRITE_ERROR
@ SII_WRITE_ERROR
armarx::control::ethercat::datatypes::RegisterInfo::name
std::string name
Definition: SlaveRegisters.h:167
armarx::control::ethercat::datatypes::EtherCATDataType::UNSIGNED64
uint64_t UNSIGNED64
Definition: EtherCATDataTypes.h:84
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R9
@ DLS_USER_R9
armarx::control::ethercat::datatypes::RegisterEnum::BUILD
@ BUILD
armarx::control::ethercat::datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_3
@ PHYSICAL_ERROR_COUNTER_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::SII_BUSY
@ SII_BUSY
armarx::control::ethercat::datatypes::RegisterEnum::SII_COMMAND_ERROR
@ SII_COMMAND_ERROR
armarx::control::ethercat::datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_1
@ FRAME_ERROR_COUNTER_PORT_1
armarx::control::ethercat::datatypes::RegisterEnum::NO_SUPPORT_RESERVED_REGISTER
@ NO_SUPPORT_RESERVED_REGISTER
armarx::control::ethercat::datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_1
@ LOST_LINK_COUNTER_PORT_1
armarx::ctrlutil::a
double a(double t, double a0, double j)
Definition: CtrlUtil.h:45
armarx::control::ethercat::datatypes::getRegisterAddress
std::uint32_t getRegisterAddress(RegisterEnum e)
Definition: SlaveRegisters.h:109
armarx::control::ethercat::datatypes::RegisterEnumTypeContainer
std::variant< EtherCATDataType::INTEGER8, EtherCATDataType::INTEGER16, EtherCATDataType::INTEGER32, EtherCATDataType::INTEGER64, EtherCATDataType::UNSIGNED8, EtherCATDataType::UNSIGNED16, EtherCATDataType::UNSIGNED32, EtherCATDataType::UNSIGNED64 > RegisterEnumTypeContainer
Definition: SlaveRegisters.h:160
armarx::control::ethercat::datatypes::RegisterEnum::TYPE
@ TYPE
armarx::control::ethercat::datatypes::RegisterEnum::STATUS_CONTROL
@ STATUS_CONTROL
armarx::control::ethercat::RegisterDataList
Brief description of struct RegisterDataList.
Definition: SlaveRegisters.h:316
armarx::control::ethercat::datatypes::RegisterEnum::LOW_JITTER_EBUS
@ LOW_JITTER_EBUS
armarx::control::ethercat::datatypes::RegisterEnum::SII_WRITE_OPERATION
@ SII_WRITE_OPERATION
armarx::control::ethercat::datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_2
@ PREVIOUS_ERROR_COUNTER_PORT_2
armarx::control::ethercat::datatypes::RegisterEnum::SIGNAL_DETECTION_PORT_2
@ SIGNAL_DETECTION_PORT_2
armarx::control::ethercat::datatypes::RegisterInfo::enumType
EtherCATDataTypeEnum enumType
Definition: SlaveRegisters.h:168
armarx::control::ethercat::datatypes::RegisterEnum::LINK_STATUS_PORT_1
@ LINK_STATUS_PORT_1
armarx::control::ethercat::datatypes::RegisterEnum::DC_SUPPORTED
@ DC_SUPPORTED
armarx::control::ethercat
Definition: Bus.cpp:24
armarx::control::ethercat::datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_1
@ PREVIOUS_ERROR_COUNTER_PORT_1
armarx::control::ethercat::datatypes::RegisterEnum::PORT1_DESCRIPTOR
@ PORT1_DESCRIPTOR
armarx::control::ethercat::datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_3
@ LOST_LINK_COUNTER_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::PORT0_DESCRIPTOR
@ PORT0_DESCRIPTOR
armarx::control::ethercat::datatypes::RegisterInfo
The RegisterInfo struct holds additional information on one register.
Definition: SlaveRegisters.h:165
armarx::control::ethercat::datatypes::RegisterEnum::FMMU_BIT_NOT_SUPPORTED
@ FMMU_BIT_NOT_SUPPORTED
armarx::control::ethercat::datatypes::EtherCATDataType::INTEGER8
int8_t INTEGER8
Definition: EtherCATDataTypes.h:68
armarx::control::ethercat::datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_0
@ PHYSICAL_ERROR_COUNTER_PORT_0
armarx::control::ethercat::datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_2
@ FRAME_ERROR_COUNTER_PORT_2
armarx::control::ethercat::datatypes::EtherCATDataType::UNSIGNED32
uint32_t UNSIGNED32
Definition: EtherCATDataTypes.h:73
armarx::control::ethercat::datatypes::RegisterEnum::SEPARATE_FCS_ERROR_HANDLING
@ SEPARATE_FCS_ERROR_HANDLING
armarx::control::ethercat::datatypes::RegisterEnum::PORT3_DESCRIPTOR
@ PORT3_DESCRIPTOR
armarx::control::ethercat::datatypes::EtherCATDataType::INTEGER32
int32_t INTEGER32
Definition: EtherCATDataTypes.h:70
armarx::control::ethercat::datatypes::RegisterEnum::SII_RELOAD_OPERATION
@ SII_RELOAD_OPERATION
armarx::control::ethercat::datatypes::RegisterEnum::REVISION
@ REVISION
armarx::control::ethercat::datatypes::RegisterEnum::ENHANCED_LINK_DETECTION_EBUS
@ ENHANCED_LINK_DETECTION_EBUS
armarx::control::ethercat::datatypes::RegisterEnum::LOOP_STATUS_PORT_0
@ LOOP_STATUS_PORT_0
armarx::control::ethercat::datatypes::RegisterInfo::bitLength
std::size_t bitLength
Definition: SlaveRegisters.h:169
armarx::control::ethercat::datatypes::RegisterEnum::SII_DEVICE_INFO_ERROR
@ SII_DEVICE_INFO_ERROR
armarx::control::ethercat::datatypes::RegisterEnum::SIGNAL_DETECTION_PORT_0
@ SIGNAL_DETECTION_PORT_0
armarx::control::ethercat::datatypes
Definition: EtherCATDataTypes.h:16
armarx::control::ethercat::datatypes::RegisterEnum::DC_RANGE
@ DC_RANGE
armarx::control::ethercat::datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_1
@ PHYSICAL_ERROR_COUNTER_PORT_1
armarx::control::ethercat::datatypes::RegisterEnum::CONFIGURED_STATION_ALIAS
@ CONFIGURED_STATION_ALIAS
armarx::control::ethercat::datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_2
@ PHYSICAL_ERROR_COUNTER_PORT_2
armarx::control::ethercat::datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_0
@ FRAME_ERROR_COUNTER_PORT_0
armarx::control::ethercat::datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_3
@ PREVIOUS_ERROR_COUNTER_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::STATUS
@ STATUS
armarx::control::ethercat::datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_3
@ FRAME_ERROR_COUNTER_PORT_3
armarx::control::ethercat::datatypes::RegisterEnum::ENHANCED_LINK_DETECTION_MII
@ ENHANCED_LINK_DETECTION_MII
armarx::control::ethercat::datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_0
@ LOST_LINK_COUNTER_PORT_0
armarx::control::ethercat::datatypes::RegisterEnum::LOCAL_PROBLEM_COUNTER
@ LOCAL_PROBLEM_COUNTER
armarx::control::ethercat::datatypes::RegisterEnum::DLS_USER_R5
@ DLS_USER_R5