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 
160 
161  /*!
162  * \brief The RegisterInfo struct holds additional information on one register.
163  */
165  {
166  std::string name;
168  std::size_t bitLength;
169  };
170 
171  template <EtherCATDataTypeEnum E>
173  makeInfo(const std::string& name)
174  {
175  return {name, E, EtherCATDataType::bitLength<typename TypeMap<E>::type>};
176  }
177 
178  /*!
179  * \brief Holds additional information on all defined registers.
180  */
181  const std::unordered_map<RegisterEnum, RegisterInfo> registerMap = {
182  {RegisterEnum::TYPE, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Type")},
183  {RegisterEnum::REVISION, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Revision")},
184  {RegisterEnum::BUILD, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Build")},
185  {RegisterEnum::RAM_SIZE, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Ram size")},
186  {RegisterEnum::PORT0_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 0 descriptor")},
187  {RegisterEnum::PORT1_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 1 descriptor")},
188  {RegisterEnum::PORT2_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 2 descriptor")},
189  {RegisterEnum::PORT3_DESCRIPTOR, makeInfo<EtherCATDataTypeEnum::BIT2>("Port 3 descriptor")},
191  makeInfo<EtherCATDataTypeEnum::BIT1>("FMMU bit operation not supported")},
193  makeInfo<EtherCATDataTypeEnum::BIT1>("No support for reserved register")},
194  {RegisterEnum::DC_SUPPORTED, makeInfo<EtherCATDataTypeEnum::BIT1>("DC supported")},
195  {RegisterEnum::DC_RANGE, makeInfo<EtherCATDataTypeEnum::BIT1>("DC range")},
196  {RegisterEnum::LOW_JITTER_EBUS, makeInfo<EtherCATDataTypeEnum::BIT1>("Low jitter EBUS")},
198  makeInfo<EtherCATDataTypeEnum::BIT1>("Enhanced link detection EBUS")},
200  makeInfo<EtherCATDataTypeEnum::BIT1>("Enhanced link detection MII")},
202  makeInfo<EtherCATDataTypeEnum::BIT1>("Separate fcs error handling")},
204  makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Configured station address")},
206  makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("Configured station alias")},
208  makeInfo<EtherCATDataTypeEnum::BIT1>("DLS user operational")},
210  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 0")},
212  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 1")},
214  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 2")},
216  makeInfo<EtherCATDataTypeEnum::BIT1>("Link status port 3")},
218  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 0")},
220  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 0")},
222  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 1")},
224  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 1")},
226  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 2")},
228  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 2")},
230  makeInfo<EtherCATDataTypeEnum::BIT1>("Loop status port 3")},
232  makeInfo<EtherCATDataTypeEnum::BIT1>("Signal detection port 3")},
233  {RegisterEnum::STATUS_CONTROL, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Status control")},
234  {RegisterEnum::DLS_USER_R2, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R2")},
235  {RegisterEnum::STATUS, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Status")},
236  {RegisterEnum::DLS_USER_R4, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R4")},
237  {RegisterEnum::DLS_USER_R5, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("DLS user R5")},
238  {RegisterEnum::DLS_USER_R6, makeInfo<EtherCATDataTypeEnum::UNSIGNED16>("DLS user R6")},
239  {RegisterEnum::DLS_USER_R7, makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("DLS user R7")},
240  {RegisterEnum::DLS_USER_R8, makeInfo<EtherCATDataTypeEnum::UNSIGNED32>("DLS user R8")},
241  {RegisterEnum::DLS_USER_R9, makeInfo<EtherCATDataTypeEnum::BIT7>("DLS user R9")},
243  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 0")},
245  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 0")},
247  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 1")},
249  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 1")},
251  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 2")},
253  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 2")},
255  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Frame error counter port 3")},
257  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Physical error counter port 3")},
259  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 0")},
261  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 1")},
263  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 2")},
265  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Previous error counter port 3")},
267  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Malformat frame counter")},
269  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Local problem counter")},
271  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 0")},
273  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 1")},
275  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 2")},
277  makeInfo<EtherCATDataTypeEnum::UNSIGNED8>("Lost link counter port 3")},
279  makeInfo<EtherCATDataTypeEnum::BIT1>("SII read operation")},
281  makeInfo<EtherCATDataTypeEnum::BIT1>("SII write operation")},
283  makeInfo<EtherCATDataTypeEnum::BIT1>("SII reload operation")},
285  makeInfo<EtherCATDataTypeEnum::BIT1>("SII checksum error")},
287  makeInfo<EtherCATDataTypeEnum::BIT1>("SII device info error")},
289  makeInfo<EtherCATDataTypeEnum::BIT1>("SII command error")},
290  {RegisterEnum::SII_WRITE_ERROR, makeInfo<EtherCATDataTypeEnum::BIT1>("SII write error")},
291  {RegisterEnum::SII_BUSY, makeInfo<EtherCATDataTypeEnum::BIT1>("SII busy")},
292  {RegisterEnum::SYSTEM_TIME, makeInfo<EtherCATDataTypeEnum::UNSIGNED64>("System time")},
293  };
294 
295 } // namespace armarx::control::ethercat::datatypes
296 
298 {
299  /*!
300  * \brief Get the length of a register in bytes, rounded up.
301  * \param reg the register to get the length of
302  * \return the length of the register
303  */
305 
306  /**
307  * @struct RegisterDataList
308  * @ingroup Library-ethercat
309  * @brief Brief description of struct RegisterDataList.
310  *
311  * Detailed description of struct RegisterDataList.
312  */
314  {
315  std::uint16_t slaveIndex;
316  std::map<datatypes::RegisterEnum, datatypes::RegisterEnumTypeContainer> registerData;
317  };
318 } // 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:173
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:315
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:181
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:316
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:166
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:159
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:313
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:167
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:164
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:168
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