Go to the documentation of this file.
13 #include <unordered_map>
24 static constexpr
size_t ethernetFrameMaxLength = 1518;
29 static constexpr
size_t ethernetHeaderSize = 14;
36 static constexpr
size_t maxTotalPDULength =
37 ethernetFrameMaxLength - ethernetHeaderSize -
sizeof(uint16_t) -
sizeof(uint32_t);
50 static constexpr uint8_t fprdCommandType = 0x04;
57 static constexpr uint8_t invalidIndex = 0xff;
86 static constexpr
int pduOverhead =
sizeof(EtherCATPDU) -
sizeof(uint8_t) +
sizeof(uint16_t);
127 std::vector<std::pair<EtherCATFrame, EtherCATFrameMetaData>>
list;
153 std::pair<EtherCATFrame*, EtherCATFrameMetaData*>
operator*()
const;
uint16_t dataLengthAndNext
list(APPEND SOURCES ${QT_RESOURCES}) set(COMPONENT_LIBS ArmarXGui ArmarXCoreObservers ArmarXCoreEigen3Variants PlotterController $
uint16_t slaveConfiguredAddress
uint8_t pduArea[maxTotalPDULength]
std::vector< std::pair< EtherCATFrame, EtherCATFrameMetaData > > list
std::pair< EtherCATFrame *, EtherCATFrameMetaData * > operator*() const
Get the EtherCAT frame this iterator is on with metadata.
The EtherCATPDU struct represents an EtherCAT PDU according to the EtherCAT spec.
The EtherCATFrameIterator class iterates over a set range of EtherCAT frames once.
EtherCATFrameIterator(EtherCATFrameList *list, size_t startIndex, size_t count)
Construct a new EtherCATFrameIterator that iterates over the given range of EtherCAT frames.
The EtherCATFrameList struct holds a list of EtherCAT frames that can be scheduled in round-robin-sty...
EtherCATFrameIterator & operator++()
Move this iterator to the next EtherCAT frame.
bool atEnd() const
Check if this iterator has stepped over its range.
bool hasCompletedLoop() const
Check if this iterator points to the first available register frame.
The EtherCATFrame struct represents an EtherCAT frame according to the EtherCAT spec.
size_t getCurrentIndex() const
struct armarx::control::ethercat::PDUMetaData __attribute__