SlaveErrorRegistersDevice.cpp
Go to the documentation of this file.
2
4{
5 void
7 {
8 ARMARX_CHECK_EQUAL(data->slaveIndex, this->slaveIndex);
9
10 auto update = [&](std::uint8_t* member, datatypes::RegisterEnum registertype)
11 {
12 if (data->registerData.count(registertype))
13 {
14 *member = std::get<datatypes::EtherCATDataType::UNSIGNED8>(
15 data->registerData.at(registertype));
16 }
17 };
18
19 update(&value.linkLostCounterPort0, datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_0);
20 update(&value.linkLostCounterPort1, datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_1);
21 // update(&value.linkLostCounterPort2, datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_2);
22 // update(&value.linkLostCounterPort3, datatypes::RegisterEnum::LOST_LINK_COUNTER_PORT_3);
23
24 update(&value.frameErrorCounterPort0, datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_0);
25 update(&value.frameErrorCounterPort1, datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_1);
26 // update(&value.frameErrorCounterPort2, datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_2);
27 // update(&value.frameErrorCounterPort3, datatypes::RegisterEnum::FRAME_ERROR_COUNTER_PORT_3);
28
31 // update(&value.rxErrorCounterPort2, datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_2);
32 // update(&value.rxErrorCounterPort3, datatypes::RegisterEnum::PHYSICAL_ERROR_COUNTER_PORT_3);
33
34 update(&value.forwardedRxErrorCounterPort0,
36 update(&value.forwardedRxErrorCounterPort1,
38 // update(&value.forwardedRxErrorCounterPort2,
39 // datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_2);
40 // update(&value.forwardedRxErrorCounterPort3,
41 // datatypes::RegisterEnum::PREVIOUS_ERROR_COUNTER_PORT_3);
42 }
43} // namespace armarx::control::ethercat
#define ARMARX_CHECK_EQUAL(lhs, rhs)
This macro evaluates whether lhs is equal (==) rhs and if it turns out to be false it will throw an E...
RegisterEnum
The RegisterEnum enum encodes the slave registers that every slave offers.
Brief description of struct RegisterDataList.