armarx::control::ethercat Namespace Reference

Namespaces

 datatypes
 
 reporting
 
 timing
 

Classes

class  Bus
 Brief description of class Bus. More...
 
class  BusErrorHandler
 Brief description of class BusErrorHandler. More...
 
class  BusIO
 Brief description of class BusIO. More...
 
class  ChangeStateRequest
 Brief description of class ChangeStateRequest. More...
 
class  DataInterface
 Brief description of class DataInterface. More...
 
class  DeviceInterface
 Brief description of class DeviceInterface. More...
 
struct  ESIData
 Holds ESI data that can be read from slaves via SII. More...
 
struct  ESIGeneral
 
class  ESIHandler
 Brief description of class ESIHandler. More...
 
struct  ESIHeader
 
class  ESIParser
 
struct  ESIPDOEntry
 
struct  ESIPDOObject
 
struct  ESISyncMElement
 
struct  EtherCATFrame
 The EtherCATFrame struct represents an EtherCAT frame according to the EtherCAT spec. More...
 
class  EtherCATFrameIterator
 The EtherCATFrameIterator class iterates over a set range of EtherCAT frames once. More...
 
struct  EtherCATFrameList
 The EtherCATFrameList struct holds a list of EtherCAT frames that can be scheduled in round-robin-style. More...
 
struct  EtherCATFrameMetaData
 The EtherCATFrameMetaData struct holds information about the structure of an EtherCAT frame. More...
 
struct  EtherCATPDU
 The EtherCATPDU struct represents an EtherCAT PDU according to the EtherCAT spec. More...
 
class  EtherCATState
 This class is a wrapper around an enum containing the different EtherCAT states. More...
 
class  LinearConvertedValue
 Brief description of class LinearConvertedValue. More...
 
class  ModularConvertedValue
 
struct  PDUMetaData
 The PDUMetaData struct holds information about the structure of a PDU. More...
 
class  ReadStatesRequest
 Brief description of class ReadStatesRequest. More...
 
struct  RegisterDataList
 Brief description of struct RegisterDataList. More...
 
class  RegisterReadRequest
 Brief description of class RegisterReadRequest. More...
 
class  RegisterResetRequest
 Brief description of class RegisterResetRequest. More...
 
class  RequestBase
 Brief description of class RequestBase. More...
 
class  RequestQueue
 Brief description of class RequestQueue. More...
 
class  RTUnit
 Brief description of class RTUnit. More...
 
class  RTUtility
 The RTUtility class contains functions for improving the realtime capabilities of a thread or of the whole system. More...
 
struct  SDOIdentifier
 
class  SDOUpdateRequest
 Brief description of class SDOUpdateRequest. More...
 
class  SlaveErrorRegistersDevice
 Brief description of class SlaveErrorRegistersDevice. More...
 
class  SlaveErrorRegistersSensorValue
 
class  SlaveIdentifier
 The SlaveIdentifier class is a POD-type representing a unique set of values identifying an EtherCAT slave. More...
 
class  SlaveInterface
 Brief description of class SlaveInterface. More...
 
class  SlaveInterfaceWithIO
 
class  SlaveRegisterReadingScheduler
 Brief description of class SlaveRegisterReadingScheduler. More...
 
struct  Timeouts
 

Typedefs

using ESIFMMU = std::vector< std::uint8_t >
 
using ESIRxPDO = std::vector< ESIPDOObject >
 
using ESIStrings = std::vector< std::string >
 
using ESISyncM = std::vector< ESISyncMElement >
 
using ESITxPDO = std::vector< ESIPDOObject >
 
using Reporting = reporting::Reporting
 
using ReportingEntry = reporting::Entry
 
using ReportingType = reporting::Type
 
using SlaveErrorRegistersDevicePtr = std::shared_ptr< SlaveErrorRegistersDevice >
 
using SlaveList = std::vector< SlaveInterface * >
 

Enumerations

enum  BusFunctionalState { Running, Reinitializing, EmergencyStop, Shutdown }
 
enum  MailboxProtocols {
  AOE = 0x1, EOE = 0x2, COE = 0x4, FOE = 0x8,
  SOE = 0x10, VOE = 0x20
}
 
enum  PDOValidity { None, OnlyInputs, Both }
 

Functions

struct armarx::control::ethercat::EtherCATPDU __attribute__ ((packed))
 
template<typename Device >
std::shared_ptr< DeviceInterfacecreateDevice (hardware_config::DeviceConfig &config, const VirtualRobot::RobotPtr &robot)
 
template<typename Slave >
std::unique_ptr< armarx::control::ethercat::SlaveInterfacecreateSlave (const SlaveIdentifier &sid)
 
std::int16_t get16 (const std::vector< std::byte > &esiBinary, std::uint16_t address)
 
std::size_t getRegisterByteLength (datatypes::RegisterEnum reg)
 Get the length of a register in bytes, rounded up. More...
 
std::uint16_t getU16 (const std::vector< std::byte > &esiBinary, std::uint16_t address)
 
std::uint16_t getU16W (const std::vector< std::byte > &esiBinary, std::uint16_t wordAddress)
 
std::uint32_t getU32 (const std::vector< std::byte > &esiBinary, std::uint16_t address)
 
std::uint32_t getU32W (const std::vector< std::byte > &esiBinary, std::uint16_t wordAddress)
 
std::uint8_t getU8 (const std::vector< std::byte > &esiBinary, std::uint16_t address)
 
template<typename SlaveI , typename Slave >
DeviceInterface::TryAssignResult tryAssignUsingSerialNo (SlaveI &slave, Slave *&concreteSlave, std::uint32_t serialNo)
 
 TYPEDEF_PTRS_SHARED (SlaveErrorRegistersDevice)
 

Variables

struct armarx::control::ethercat::PDUMetaData __attribute__
 
constexpr std::uint16_t ESI_Header_EndAdress = 0x0040
 
constexpr std::uint16_t ESI_Header_StartAdress = 0x0000
 

Detailed Description

Typedef Documentation

◆ ESIFMMU

using ESIFMMU = std::vector<std::uint8_t>

Definition at line 124 of file ESI.h.

◆ ESIRxPDO

using ESIRxPDO = std::vector<ESIPDOObject>

Definition at line 160 of file ESI.h.

◆ ESIStrings

using ESIStrings = std::vector<std::string>

Definition at line 102 of file ESI.h.

◆ ESISyncM

using ESISyncM = std::vector<ESISyncMElement>

Definition at line 136 of file ESI.h.

◆ ESITxPDO

using ESITxPDO = std::vector<ESIPDOObject>

Definition at line 159 of file ESI.h.

◆ Reporting

Definition at line 236 of file ErrorReporting.h.

◆ ReportingEntry

Definition at line 234 of file ErrorReporting.h.

◆ ReportingType

Definition at line 235 of file ErrorReporting.h.

◆ SlaveErrorRegistersDevicePtr

Definition at line 19 of file SlaveInterface.h.

◆ SlaveList

using SlaveList = std::vector<SlaveInterface*>

Definition at line 36 of file BusErrorHandler.h.

Enumeration Type Documentation

◆ BusFunctionalState

enum BusFunctionalState
strong
Enumerator
Running 
Reinitializing 
EmergencyStop 
Shutdown 

Definition at line 40 of file Bus.h.

◆ MailboxProtocols

enum MailboxProtocols
strong
Enumerator
AOE 
EOE 
COE 
FOE 
SOE 
VOE 

Definition at line 92 of file ESI.h.

◆ PDOValidity

enum PDOValidity
strong
Enumerator
None 
OnlyInputs 
Both 

Definition at line 33 of file Bus.h.

Function Documentation

◆ __attribute__()

struct armarx::control::ethercat::EtherCATPDU armarx::control::ethercat::__attribute__ ( (packed)  )

◆ createDevice()

std::shared_ptr<DeviceInterface> armarx::control::ethercat::createDevice ( hardware_config::DeviceConfig config,
const VirtualRobot::RobotPtr robot 
)

Definition at line 140 of file DeviceInterface.h.

◆ createSlave()

std::unique_ptr<armarx::control::ethercat::SlaveInterface> armarx::control::ethercat::createSlave ( const SlaveIdentifier sid)

Definition at line 201 of file SlaveInterface.h.

+ Here is the call graph for this function:

◆ get16()

std::int16_t armarx::control::ethercat::get16 ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  address 
)

Definition at line 100 of file ESI.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRegisterByteLength()

std::size_t getRegisterByteLength ( datatypes::RegisterEnum  reg)

Get the length of a register in bytes, rounded up.

Parameters
regthe register to get the length of
Returns
the length of the register

Definition at line 6 of file SlaveRegisters.cpp.

+ Here is the caller graph for this function:

◆ getU16()

std::uint16_t armarx::control::ethercat::getU16 ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  address 
)

Definition at line 90 of file ESI.cpp.

+ Here is the caller graph for this function:

◆ getU16W()

std::uint16_t armarx::control::ethercat::getU16W ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  wordAddress 
)

Definition at line 107 of file ESI.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getU32()

std::uint32_t armarx::control::ethercat::getU32 ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  address 
)

Definition at line 113 of file ESI.cpp.

+ Here is the caller graph for this function:

◆ getU32W()

std::uint32_t armarx::control::ethercat::getU32W ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  wordAddress 
)

Definition at line 125 of file ESI.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getU8()

std::uint8_t armarx::control::ethercat::getU8 ( const std::vector< std::byte > &  esiBinary,
std::uint16_t  address 
)

Definition at line 82 of file ESI.cpp.

+ Here is the caller graph for this function:

◆ tryAssignUsingSerialNo()

DeviceInterface::TryAssignResult armarx::control::ethercat::tryAssignUsingSerialNo ( SlaveI &  slave,
Slave *&  concreteSlave,
std::uint32_t  serialNo 
)

Definition at line 148 of file DeviceInterface.h.

+ Here is the call graph for this function:

◆ TYPEDEF_PTRS_SHARED()

armarx::control::ethercat::TYPEDEF_PTRS_SHARED ( SlaveErrorRegistersDevice  )

Variable Documentation

◆ __attribute__

◆ ESI_Header_EndAdress

constexpr std::uint16_t ESI_Header_EndAdress = 0x0040
constexpr

Definition at line 36 of file ESI.h.

◆ ESI_Header_StartAdress

constexpr std::uint16_t ESI_Header_StartAdress = 0x0000
constexpr

Definition at line 35 of file ESI.h.