Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
EthercatHardware Class Reference

#include <ethercat_hardware.h>

List of all members.

Public Member Functions

void collectDiagnostics ()
 Collects diagnotics from all devices.
 EthercatHardware (const std::string &name, hardware_interface::HardwareInterface *hw, const string &eth, bool allow_unprogrammed)
 Constructor.
void init ()
 Initialize the EtherCAT Master Library.
void printCounters (std::ostream &os=std::cout)
bool publishTrace (int position, const string &reason, unsigned level, unsigned delay)
 Ask one or all EtherCAT devices to publish (motor) traces.
bool txandrx_PD (unsigned buffer_size, unsigned char *buffer, unsigned tries)
 Send process data.
void update (bool reset, bool halt)
 Send most recent motor commands and retrieve updates. This command must be run at a sufficient rate or else the motors will be disabled.
 ~EthercatHardware ()
 Destructor.

Public Attributes

hardware_interface::HardwareInterfacehw_

Private Member Functions

boost::shared_ptr< EthercatDeviceconfigNonEthercatDevice (const std::string &product_id, const std::string &data)
boost::shared_ptr< EthercatDeviceconfigSlave (EtherCAT_SlaveHandler *sh)
void haltMotors (bool error, const char *reason)
void loadNonEthercatDevices ()
void publishDiagnostics ()
 Collects raw diagnostics data and passes it to diagnostics_publisher.

Static Private Member Functions

static void changeState (EtherCAT_SlaveHandler *sh, EC_State new_state)
static void updateAccMax (double &max, const accumulator_set< double, stats< tag::max, tag::mean > > &acc)

Private Attributes

EtherCAT_ALal_
bool allow_unprogrammed_
 if the driver should treat the discovery of unprogrammed boards as a fatal error. Set to 'true' during board configuration, and set to 'false' otherwise.
unsigned int buffer_size_
unsigned char * buffers_
pluginlib::ClassLoader
< EthercatDevice
device_loader_
EthercatHardwareDiagnostics diagnostics_
EthercatHardwareDiagnosticsPublisher diagnostics_publisher_
EtherCAT_Masterem_
bool halt_motors_
string interface_
 The socket interface that is connected to the EtherCAT devices (e.g., eth0)
ros::Time last_published_
ros::Time last_reset_
unsigned max_pd_retries_
 Max number of times to retry sending process data before halting motors.
realtime_tools::RealtimePublisher
< std_msgs::Bool > 
motor_publisher_
struct netifni_
ros::NodeHandle node_
unsigned int num_ethercat_devices_
EthercatOobComoob_com_
unsigned char * prev_buffer_
unsigned int reset_state_
std::vector< boost::shared_ptr
< EthercatDevice > > 
slaves_
unsigned char * this_buffer_
unsigned timeout_
 Timeout (in microseconds) to used for sending/recieving packets once in realtime mode.

Detailed Description

Definition at line 203 of file ethercat_hardware.h.


Constructor & Destructor Documentation

EthercatHardware::EthercatHardware ( const std::string &  name,
hardware_interface::HardwareInterface hw,
const string &  eth,
bool  allow_unprogrammed 
)

Constructor.

Definition at line 69 of file ethercat_hardware.cpp.

Destructor.

Definition at line 93 of file ethercat_hardware.cpp.


Member Function Documentation

void EthercatHardware::changeState ( EtherCAT_SlaveHandler sh,
EC_State  new_state 
) [static, private]

Definition at line 112 of file ethercat_hardware.cpp.

Collects diagnotics from all devices.

Definition at line 960 of file ethercat_hardware.cpp.

boost::shared_ptr< EthercatDevice > EthercatHardware::configNonEthercatDevice ( const std::string &  product_id,
const std::string &  data 
) [private]

Definition at line 853 of file ethercat_hardware.cpp.

boost::shared_ptr< EthercatDevice > EthercatHardware::configSlave ( EtherCAT_SlaveHandler sh) [private]

Definition at line 742 of file ethercat_hardware.cpp.

void EthercatHardware::haltMotors ( bool  error,
const char *  reason 
) [private]

Definition at line 685 of file ethercat_hardware.cpp.

void EthercatHardware::init ( void  )

Initialize the EtherCAT Master Library.

Definition at line 130 of file ethercat_hardware.cpp.

Definition at line 892 of file ethercat_hardware.cpp.

void EthercatHardware::printCounters ( std::ostream &  os = std::cout)

Definition at line 995 of file ethercat_hardware.cpp.

Collects raw diagnostics data and passes it to diagnostics_publisher.

Definition at line 716 of file ethercat_hardware.cpp.

bool EthercatHardware::publishTrace ( int  position,
const string &  reason,
unsigned  level,
unsigned  delay 
)

Ask one or all EtherCAT devices to publish (motor) traces.

Parameters:
positiondevice ring position to publish trace for. Use -1 to trigger all devices.
reasonMessage to put in trace as reason.
levelLevel to put in trace (aka ERROR=2, WARN=1, OK=0)
delayPublish trace after delay cyles. For 1kHz realtime loop 1cycle = 1ms.
Returns:
Return true if device supports publishing trace. False, if not. If all devices are triggered, returns true if any device publishes trace.

Definition at line 1037 of file ethercat_hardware.cpp.

bool EthercatHardware::txandrx_PD ( unsigned  buffer_size,
unsigned char *  buffer,
unsigned  tries 
)

Send process data.

Definition at line 1019 of file ethercat_hardware.cpp.

void EthercatHardware::update ( bool  reset,
bool  halt 
)

Send most recent motor commands and retrieve updates. This command must be run at a sufficient rate or else the motors will be disabled.

Parameters:
resetA boolean indicating if the motor controller boards should be reset
haltA boolean indicating if the motors should be halted

Definition at line 578 of file ethercat_hardware.cpp.

void EthercatHardware::updateAccMax ( double &  max,
const accumulator_set< double, stats< tag::max, tag::mean > > &  acc 
) [static, private]

Definition at line 710 of file ethercat_hardware.cpp.


Member Data Documentation

Definition at line 269 of file ethercat_hardware.h.

if the driver should treat the discovery of unprogrammed boards as a fatal error. Set to 'true' during board configuration, and set to 'false' otherwise.

Definition at line 301 of file ethercat_hardware.h.

unsigned int EthercatHardware::buffer_size_ [private]

Definition at line 279 of file ethercat_hardware.h.

unsigned char* EthercatHardware::buffers_ [private]

Definition at line 278 of file ethercat_hardware.h.

Definition at line 299 of file ethercat_hardware.h.

Definition at line 290 of file ethercat_hardware.h.

Definition at line 291 of file ethercat_hardware.h.

Definition at line 270 of file ethercat_hardware.h.

Definition at line 281 of file ethercat_hardware.h.

Definition at line 252 of file ethercat_hardware.h.

string EthercatHardware::interface_ [private]

The socket interface that is connected to the EtherCAT devices (e.g., eth0)

Definition at line 267 of file ethercat_hardware.h.

Definition at line 292 of file ethercat_hardware.h.

Definition at line 293 of file ethercat_hardware.h.

Max number of times to retry sending process data before halting motors.

Definition at line 285 of file ethercat_hardware.h.

Definition at line 295 of file ethercat_hardware.h.

struct netif* EthercatHardware::ni_ [private]

Definition at line 265 of file ethercat_hardware.h.

Definition at line 263 of file ethercat_hardware.h.

Definition at line 274 of file ethercat_hardware.h.

Definition at line 297 of file ethercat_hardware.h.

unsigned char* EthercatHardware::prev_buffer_ [private]

Definition at line 277 of file ethercat_hardware.h.

unsigned int EthercatHardware::reset_state_ [private]

Definition at line 282 of file ethercat_hardware.h.

std::vector<boost::shared_ptr<EthercatDevice> > EthercatHardware::slaves_ [private]

Definition at line 273 of file ethercat_hardware.h.

unsigned char* EthercatHardware::this_buffer_ [private]

Definition at line 276 of file ethercat_hardware.h.

unsigned EthercatHardware::timeout_ [private]

Timeout (in microseconds) to used for sending/recieving packets once in realtime mode.

Definition at line 284 of file ethercat_hardware.h.


The documentation for this class was generated from the following files:


ros_ethercat_hardware
Author(s): Rob Wheeler , Derek King , Manos Nikolaidis
autogenerated on Thu Aug 27 2015 14:47:15