Public Member Functions | Protected Attributes | List of all members
rokubimini::ethercat::RokubiminiEthercatBusManager Class Reference

Inherits from RokubiminiBusManager. It's used for managing an Ethercat bus. More...

#include <RokubiminiEthercatBusManager.hpp>

Inheritance diagram for rokubimini::ethercat::RokubiminiEthercatBusManager:
Inheritance graph
[legend]

Public Member Functions

virtual bool addRokubiminiToBus (const std::shared_ptr< Rokubimini > &rokubimini) const
 
bool addRokubiminiToBus (const std::shared_ptr< RokubiminiEthercat > &rokubimini, rokubimini::soem_interface::EthercatBusBase *bus) const
 Adds a Rokubimini to Bus. More...
 
bool createRokubimini (const std::string &rokubiminiName) override
 Creates an RokubiminiEthercat instance. More...
 
bool loadBusParameters () override
 Loads ethercat bus parameters from parameter server. More...
 
double loadTimeStep () override
 Loads the time_step from the Parameter Server. More...
 
void publishBusManagerRosDiagnostics () override
 Publish the ROS Diagnostics of the Bus Manager. More...
 
void readBus () override
 Calls update read on the bus. More...
 
 RokubiminiEthercatBusManager ()=delete
 Default constructor of RokubiminiEthercatBusManager. More...
 
 RokubiminiEthercatBusManager (const NodeHandlePtr &nh)
 
 RokubiminiEthercatBusManager (const std::string &busName, NodeHandlePtr nh)
 Constructor with initialization list for the name and NodeHandle. More...
 
void setBusOperational ()
 Sets bus to operational state. More...
 
void setBusPreOperational ()
 Sets bus to pre operational state. More...
 
void setBusSafeOperational ()
 Sets bus to safe operational state. More...
 
void setConfigMode () override
 
void setRunMode () override
 
void shutdownBus () override
 Calls shutdown on the bus. More...
 
bool startupBus ()
 Starts up the bus and puts them in operational mode. More...
 
bool startupCommunication () override
 Starts up the bus. More...
 
void waitForState (const uint16_t state, const uint16_t slave=0, const unsigned int maxRetries=40, const double retrySleep=0.001)
 Waits for the slave to reach a state. More...
 
void writeToBus () override
 Calls update write on the bus. More...
 
 ~RokubiminiEthercatBusManager () override=default
 
- Public Member Functions inherited from rokubimini::RokubiminiBusManager
virtual bool addRokubiminiToBus (const std::shared_ptr< Rokubimini > &rokubimini) const
 
void cleanup () override
 
void createRokubiminiRosDiagnostics () const
 
void createRokubiminiRosPublishers () const
 
void createRokubiminiRosServices () const
 
virtual bool createRokubiminisFromParamServer ()
 
std::string getName () const
 
std::shared_ptr< RokubiminigetRokubimini (const std::string &name) const
 
std::vector< std::shared_ptr< Rokubimini > > getRokubiminis () const
 
bool hasRokubimini (const std::string &name)
 
bool init () override
 
virtual bool load ()
 
void publishRokubiminiRosDiagnostics () const
 
void publishRosMessages () const
 
 RokubiminiBusManager ()=delete
 
 RokubiminiBusManager (const NodeHandlePtr &nh)
 
 RokubiminiBusManager (const std::string &busName, NodeHandlePtr nh)
 
void setNodeHandle (const NodeHandlePtr &nh)
 
virtual void shutdown ()
 
void shutdownWithCommunication () const
 
void shutdownWithoutCommunication () const
 
virtual bool startup ()
 
void startupWithCommunication () const
 
void startupWithoutCommunication () const
 
virtual bool update (const bota_worker::WorkerEvent &event)
 
void updateProcessReading () const
 
 ~RokubiminiBusManager () override=default
 

Protected Attributes

std::unique_ptr< rokubimini::soem_interface::EthercatBusBasebus_
 The Ethercat bus instance. More...
 
std::recursive_mutex busMutex_
 Mutex prohibiting simultaneous access to EtherCAT bus manager. More...
 
std::string ethercatBusName_
 The name of the Ethercat bus. More...
 
- Protected Attributes inherited from rokubimini::RokubiminiBusManager
std::atomic< bool > isRunning_
 
std::string name_
 
NodeHandlePtr nh_
 
std::vector< std::shared_ptr< Rokubimini > > rokubiminis_
 

Additional Inherited Members

- Public Types inherited from rokubimini::RokubiminiBusManager
typedef std::shared_ptr< diagnostic_updater::UpdaterDiagnosticsUpdaterPtr
 
typedef std::shared_ptr< ros::NodeHandleNodeHandlePtr
 

Detailed Description

Inherits from RokubiminiBusManager. It's used for managing an Ethercat bus.

Definition at line 27 of file RokubiminiEthercatBusManager.hpp.

Constructor & Destructor Documentation

◆ RokubiminiEthercatBusManager() [1/3]

rokubimini::ethercat::RokubiminiEthercatBusManager::RokubiminiEthercatBusManager ( )
delete

Default constructor of RokubiminiEthercatBusManager.

◆ RokubiminiEthercatBusManager() [2/3]

rokubimini::ethercat::RokubiminiEthercatBusManager::RokubiminiEthercatBusManager ( const std::string &  busName,
NodeHandlePtr  nh 
)
inlineexplicit

Constructor with initialization list for the name and NodeHandle.

Definition at line 44 of file RokubiminiEthercatBusManager.hpp.

◆ RokubiminiEthercatBusManager() [3/3]

rokubimini::ethercat::RokubiminiEthercatBusManager::RokubiminiEthercatBusManager ( const NodeHandlePtr nh)
inlineexplicit

Definition at line 53 of file RokubiminiEthercatBusManager.hpp.

◆ ~RokubiminiEthercatBusManager()

rokubimini::ethercat::RokubiminiEthercatBusManager::~RokubiminiEthercatBusManager ( )
overridedefault

Member Function Documentation

◆ addRokubiminiToBus() [1/2]

virtual bool rokubimini::RokubiminiBusManager::addRokubiminiToBus

◆ addRokubiminiToBus() [2/2]

bool rokubimini::ethercat::RokubiminiEthercatBusManager::addRokubiminiToBus ( const std::shared_ptr< RokubiminiEthercat > &  rokubimini,
rokubimini::soem_interface::EthercatBusBase bus 
) const

Adds a Rokubimini to Bus.

This method is used for adding a Rokubimini Ethercat instance to the Ethercat Bus. This method also adds the EthercatSlave pointer to the Rokubimini Ethercat implementation.

Parameters
rokubiminiThe RokubiminiEthercat instance.
busThe bus to which the RokubiminiEthercat will be attached.

Definition at line 66 of file RokubiminiEthercatBusManager.cpp.

◆ createRokubimini()

bool rokubimini::ethercat::RokubiminiEthercatBusManager::createRokubimini ( const std::string &  rokubiminiName)
overridevirtual

Creates an RokubiminiEthercat instance.

This function creates a RokubiminiEthercat instance based on a given name and attaches it to the bus.

Parameters
rokubiminiNameThe name of the Rokubimini.
Returns
True if the operation succeeded.

Implements rokubimini::RokubiminiBusManager.

Definition at line 35 of file RokubiminiEthercatBusManager.cpp.

◆ loadBusParameters()

bool rokubimini::ethercat::RokubiminiEthercatBusManager::loadBusParameters ( )
overridevirtual

Loads ethercat bus parameters from parameter server.

Implements rokubimini::RokubiminiBusManager.

Definition at line 51 of file RokubiminiEthercatBusManager.cpp.

◆ loadTimeStep()

double rokubimini::ethercat::RokubiminiEthercatBusManager::loadTimeStep ( )
overridevirtual

Loads the time_step from the Parameter Server.

Implements rokubimini::RokubiminiBusManager.

Definition at line 7 of file RokubiminiEthercatBusManager.cpp.

◆ publishBusManagerRosDiagnostics()

void rokubimini::ethercat::RokubiminiEthercatBusManager::publishBusManagerRosDiagnostics ( )
inlineoverridevirtual

Publish the ROS Diagnostics of the Bus Manager.

Implements rokubimini::RokubiminiBusManager.

Definition at line 194 of file RokubiminiEthercatBusManager.hpp.

◆ readBus()

void rokubimini::ethercat::RokubiminiEthercatBusManager::readBus ( )
overridevirtual

Calls update read on the bus.

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 156 of file RokubiminiEthercatBusManager.cpp.

◆ setBusOperational()

void rokubimini::ethercat::RokubiminiEthercatBusManager::setBusOperational ( )

Sets bus to operational state.

Definition at line 117 of file RokubiminiEthercatBusManager.cpp.

◆ setBusPreOperational()

void rokubimini::ethercat::RokubiminiEthercatBusManager::setBusPreOperational ( )

Sets bus to pre operational state.

Definition at line 124 of file RokubiminiEthercatBusManager.cpp.

◆ setBusSafeOperational()

void rokubimini::ethercat::RokubiminiEthercatBusManager::setBusSafeOperational ( )

Sets bus to safe operational state.

Definition at line 131 of file RokubiminiEthercatBusManager.cpp.

◆ setConfigMode()

void rokubimini::ethercat::RokubiminiEthercatBusManager::setConfigMode ( )
overridevirtual

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 98 of file RokubiminiEthercatBusManager.cpp.

◆ setRunMode()

void rokubimini::ethercat::RokubiminiEthercatBusManager::setRunMode ( )
overridevirtual

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 104 of file RokubiminiEthercatBusManager.cpp.

◆ shutdownBus()

void rokubimini::ethercat::RokubiminiEthercatBusManager::shutdownBus ( )
overridevirtual

Calls shutdown on the bus.

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 168 of file RokubiminiEthercatBusManager.cpp.

◆ startupBus()

bool rokubimini::ethercat::RokubiminiEthercatBusManager::startupBus ( )

Starts up the bus and puts them in operational mode.

Returns
True if successful

Definition at line 110 of file RokubiminiEthercatBusManager.cpp.

◆ startupCommunication()

bool rokubimini::ethercat::RokubiminiEthercatBusManager::startupCommunication ( )
overridevirtual

Starts up the bus.

Returns
True if successful

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 145 of file RokubiminiEthercatBusManager.cpp.

◆ waitForState()

void rokubimini::ethercat::RokubiminiEthercatBusManager::waitForState ( const uint16_t  state,
const uint16_t  slave = 0,
const unsigned int  maxRetries = 40,
const double  retrySleep = 0.001 
)

Waits for the slave to reach a state.

Parameters
[in]stateEthercat state
[in]slaveSlave address, 0 = all slaves
[in]maxRetriesThe maximum retries
[in]retrySleepThe retry sleep

Definition at line 138 of file RokubiminiEthercatBusManager.cpp.

◆ writeToBus()

void rokubimini::ethercat::RokubiminiEthercatBusManager::writeToBus ( )
overridevirtual

Calls update write on the bus.

Reimplemented from rokubimini::RokubiminiBusManager.

Definition at line 162 of file RokubiminiEthercatBusManager.cpp.

Member Data Documentation

◆ bus_

std::unique_ptr< rokubimini::soem_interface::EthercatBusBase > rokubimini::ethercat::RokubiminiEthercatBusManager::bus_
protected

The Ethercat bus instance.

Definition at line 210 of file RokubiminiEthercatBusManager.hpp.

◆ busMutex_

std::recursive_mutex rokubimini::ethercat::RokubiminiEthercatBusManager::busMutex_
protected

Mutex prohibiting simultaneous access to EtherCAT bus manager.

Definition at line 203 of file RokubiminiEthercatBusManager.hpp.

◆ ethercatBusName_

std::string rokubimini::ethercat::RokubiminiEthercatBusManager::ethercatBusName_
protected

The name of the Ethercat bus.

Definition at line 218 of file RokubiminiEthercatBusManager.hpp.


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


rokubimini_ethercat
Author(s):
autogenerated on Sat Apr 15 2023 02:53:56