8 list(list), nextIndex(startIndex), remaining(count)
12 std::pair<EtherCATFrame*, EtherCATFrameMetaData*>
15 return {&list->list[nextIndex].first, &list->list[nextIndex].second};
21 return nextIndex == 0;
29 nextIndex = (nextIndex + 1) % list->list.size();
38 return remaining == 0;
The EtherCATFrameIterator class iterates over a set range of EtherCAT frames once.
EtherCATFrameIterator & operator++()
Move this iterator to the next EtherCAT frame.
bool atEnd() const
Check if this iterator has stepped over its range.
size_t getCurrentIndex() const
bool hasCompletedLoop() const
Check if this iterator points to the first available register frame.
EtherCATFrameIterator(EtherCATFrameList *list, size_t startIndex, size_t count)
Construct a new EtherCATFrameIterator that iterates over the given range of EtherCAT frames.
std::pair< EtherCATFrame *, EtherCATFrameMetaData * > operator*() const
Get the EtherCAT frame this iterator is on with metadata.
The EtherCATFrameList struct holds a list of EtherCAT frames that can be scheduled in round-robin-sty...