35 #ifndef ETHERCAT_DEVICE_H    36 #define ETHERCAT_DEVICE_H    41 #include <ethercat/ethercat_defs.h>    42 #include <al/ethercat_slave_handler.h>    48 #include <diagnostic_msgs/DiagnosticArray.h>   108   void collect(
EthercatCom *com, EtherCAT_SlaveHandler *sh);
   137   virtual void construct(EtherCAT_SlaveHandler *sh, 
int &start_address);
   151   virtual void packCommand(
unsigned char *buffer, 
bool halt, 
bool reset) {}
   153   virtual bool unpackState(
unsigned char *this_buffer, 
unsigned char *prev_buffer) {
return true;}
   161   virtual void multiDiagnostics(vector<diagnostic_msgs::DiagnosticStatus> &vec, 
unsigned char *buffer);
   187   virtual bool publishTrace(
const string &reason, 
unsigned level, 
unsigned delay) {
return false;}
   196     return writeData(com, sh_, address, buffer, length, addrMode);
   202   static int readData(
EthercatCom *com, EtherCAT_SlaveHandler *sh,  EC_UINT address, 
void *buffer, EC_UINT length, 
AddrMode addrMode);
   204     return readData(com, sh_, address, buffer, length, addrMode);
   210   static int readWriteData(
EthercatCom *com, EtherCAT_SlaveHandler *sh,  EC_UINT address, 
void *buffer, EC_UINT length, 
AddrMode addrMode);
   212     return readWriteData(com, sh_, address, buffer, length, addrMode);
   217   EtherCAT_SlaveHandler *
sh_;
 
unsigned int command_size_
 
bool isClosed(unsigned port)
 
ROSCONSOLE_DECL void initialize()
 
uint8_t forwarded_rx_error[4]
 
bool isGreaterThan(unsigned value) const 
 
pthread_mutex_t newDiagnosticsIndexLock_
 
et1x00_error_counters errorCountersPrev_
 
virtual void packCommand(unsigned char *buffer, bool halt, bool reset)
 
unsigned newDiagnosticsIndex_
 
diagnostic_updater::DiagnosticStatusWrapper diagnostic_status_
 
virtual bool publishTrace(const string &reason, unsigned level, unsigned delay)
Asks device to publish (motor) trace. Only works for devices that support it. 
 
int writeData(EthercatCom *com, EC_UINT address, void const *buffer, EC_UINT length, AddrMode addrMode)
 
pthread_mutex_t diagnosticsLock_
 
bool hasLink(unsigned port)
 
int devicesRespondingToNodeAddress_
 
uint64_t invalidFrameTotal
 
static const EC_UINT BASE_ADDR
 
EtherCAT_SlaveHandler * sh_
 
bool writeData(EthercatCom *com, EtherCAT_SlaveHandler *sh, EthercatDevice::AddrMode addrMode, unsigned num) const 
 
bool hasCommunication(unsigned port)
 
uint64_t forwardedRxErrorTotal
 
unsigned int status_size_
 
virtual bool unpackState(unsigned char *this_buffer, unsigned char *prev_buffer)
 
int readWriteData(EthercatCom *com, EC_UINT address, void *buffer, EC_UINT length, AddrMode addrMode)
 
int readData(EthercatCom *com, EC_UINT address, void *buffer, EC_UINT length, AddrMode addrMode)
 
struct EthercatPortDiagnostics __attribute__
 
bool errorCountersMayBeCleared_
 
bool readData(EthercatCom *com, EtherCAT_SlaveHandler *sh, EthercatDevice::AddrMode addrMode, unsigned num)