Lely core libraries  1.9.2
lely::canopen::AsyncMaster Class Reference

An asynchronous CANopen master. More...

#include <master.hpp>

Inheritance diagram for lely::canopen::AsyncMaster:
Collaboration diagram for lely::canopen::AsyncMaster:

Public Member Functions

 BasicMaster (aio::TimerBase &timer, aio::CanBusBase &bus, const ::std::string &dcf_txt, const ::std::string &dcf_bin="", uint8_t id=0xff)
 Creates a new CANopen master. More...
 
- Public Member Functions inherited from lely::canopen::BasicMaster
 BasicMaster (aio::TimerBase &timer, aio::CanBusBase &bus, const ::std::string &dcf_txt, const ::std::string &dcf_bin="", uint8_t id=0xff)
 Creates a new CANopen master. More...
 
Object operator[] (uint16_t idx)
 Returns a mutator object that provides read/write access to the specified CANopen object in the local object dictionary. More...
 
ConstObject operator[] (uint16_t idx) const
 Returns an accessor object that provides read-only access to the specified CANopen object in the local object dictionary. More...
 
void Error (uint8_t id)
 Indicates the occurrence of an error event on a remote node and triggers the error handling process (see Fig. More...
 
void RpdoRtr (int num=0)
 Requests the transmission of a PDO. More...
 
void TpdoEvent (int num=0)
 Triggers the transmission of an event-driven (asynchronous) PDO. More...
 
::std::chrono::milliseconds GetTimeout () const
 Returns the SDO timeout used during the NMT 'boot slave' and 'check configuration' processes. More...
 
void SetTimeout (const ::std::chrono::milliseconds &timeout)
 Sets the SDO timeout used during the NMT 'boot slave' and 'check configuration' processes. More...
 
template<class T >
void SubmitRead (uint8_t id, Sdo::UploadRequest< T > &req)
 Equivalent to SubmitRead(uint8_t id, Sdo::UploadRequest<T>& req, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T >
void SubmitRead (uint8_t id, Sdo::UploadRequest< T > &req, ::std::error_code &ec)
 Queues an asynchronous read (SDO upload) operation. More...
 
template<class T , class F >
void SubmitRead (uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase &exec, F &&con)
 Equivalent to SubmitRead(uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase& exec, F&& con, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T , class F >
void SubmitRead (uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase &exec, F &&con, ::std::error_code &ec)
 Equivalent to SubmitRead(uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase& exec, F&& con, const Sdo::duration& timeout, ::std::error_code& ec), except that it uses the SDO timeout given by GetTimeout().
 
template<class T , class F >
void SubmitRead (uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase &exec, F &&con, const Sdo::duration &timeout)
 Equivalent to SubmitRead(uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase& exec, F&& con, const Sdo::duration& timeout, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T , class F >
void SubmitRead (uint8_t id, uint16_t idx, uint8_t subidx, aio::ExecutorBase &exec, F &&con, const Sdo::duration &timeout, ::std::error_code &ec)
 Queues an asynchronous read (SDO upload) operation. More...
 
template<class T >
void SubmitWrite (uint8_t id, Sdo::DownloadRequest< T > &req)
 Equivalent to SubmitWrite(uint8_t id, Sdo::DownloadRequest<T>& req, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T >
void SubmitWrite (uint8_t id, Sdo::DownloadRequest< T > &req, ::std::error_code &ec)
 Queues an asynchronous write (SDO download) operation. More...
 
template<class T , class F >
void SubmitWrite (uint8_t id, uint16_t idx, uint8_t subidx, T &&value, aio::ExecutorBase &exec, F &&con)
 Equivalent to SubmitWrite(uint8_t id, uint16_t idx, uint8_t subidx, T&& value, aio::ExecutorBase& exec, F&& con, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T , class F >
void SubmitWrite (uint8_t id, uint16_t idx, uint8_t subidx, T &&value, aio::ExecutorBase &exec, F &&con, ::std::error_code &ec)
 Equivalent to SubmitWrite(uint8_t id, uint16_t idx, uint8_t subidx, T&& value, aio::ExecutorBase& exec, F&& con, const Sdo::duration& timeout, ::std::error_code& ec), except that it uses the SDO timeout given by GetTimeout().
 
template<class T , class F >
void SubmitWrite (uint8_t id, uint16_t idx, uint8_t subidx, T &&value, aio::ExecutorBase &exec, F &&con, const Sdo::duration &timeout)
 Equivalent to SubmitWrite(uint8_t id, uint16_t idx, uint8_t subidx, T&& value, aio::ExecutorBase& exec, F&& con, const Sdo::duration& timeout, ::std::error_code& ec), except that it throws lely::canopen::SdoError on error.
 
template<class T , class F >
void SubmitWrite (uint8_t id, uint16_t idx, uint8_t subidx, T &&value, aio::ExecutorBase &exec, F &&con, const Sdo::duration &timeout, ::std::error_code &ec)
 Queues an asynchronous write (SDO download) operation. More...
 
template<class T >
aio::Future<::std::tuple<::std::error_code, T > > AsyncRead (aio::LoopBase &loop, aio::ExecutorBase &exec, uint8_t id, uint16_t idx, uint8_t subidx)
 Equivalent to AsyncRead(aio::LoopBase& loop, aio::ExecutorBase& exec, uint8_t id, uint16_t idx, uint8_t subidx, const Sdo::duration& timeout), except that it uses the SDO timeout given by GetTimeout().
 
template<class T >
aio::Future<::std::tuple<::std::error_code, T > > AsyncRead (aio::LoopBase &loop, aio::ExecutorBase &exec, uint8_t id, uint16_t idx, uint8_t subidx, const Sdo::duration &timeout)
 Queues an asynchronous read (SDO upload) operation and returns a future. More...
 
template<class T >
aio::Future<::std::error_code > AsyncWrite (aio::LoopBase &loop, aio::ExecutorBase &exec, uint8_t id, uint16_t idx, uint8_t subidx, T &&value)
 Equivalent to AsyncWrite(aio::LoopBase& loop, aio::ExecutorBase& exec, uint8_t id, uint16_t idx, uint8_t subidx, T&& value, const Sdo::duration& timeout), except that it uses the SDO timeout given by GetTimeout().
 
template<class T >
aio::Future<::std::error_code > AsyncWrite (aio::LoopBase &loop, aio::ExecutorBase &exec, uint8_t id, uint16_t idx, uint8_t subidx, T &&value, const Sdo::duration &timeout)
 Queues an asynchronous write (SDO download) operation and returns a future. More...
 
void Insert (DriverBase &driver)
 Registers a driver for a remote CANopen node. More...
 
void Erase (DriverBase &driver)
 Unregisters a driver for a remote CANopen node. More...
 
- Public Member Functions inherited from lely::canopen::Node
 Node (aio::TimerBase &timer, aio::CanBusBase &bus, const ::std::string &dcf_txt, const ::std::string &dcf_bin="", uint8_t id=0xff)
 Creates a new CANopen node. More...
 
void Reset ()
 (Re)starts the node. More...
 
- Public Member Functions inherited from lely::canopen::IoContext
 IoContext (aio::TimerBase &timer, aio::CanBusBase &bus, BasicLockable *mutex=nullptr)
 Creates a new I/O context. More...
 
aio::ExecutorBase GetExecutor () const noexcept
 Returns the executor used to process I/O events on the CAN bus.
 
template<class F >
void Post (F &&f)
 Schedules the specified Callable object for execution. More...
 
- Public Member Functions inherited from lely::canopen::Device
 Device (const ::std::string &dcf_txt, const ::std::string &dcf_bin="", uint8_t id=0xff, BasicLockable *mutex=nullptr)
 Creates a new CANopen device description. More...
 
uint8_t netid () const noexcept
 Returns the network-ID.
 
uint8_t id () const noexcept
 Returns the node-ID.
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Read (uint16_t idx, uint8_t subidx) const
 Submits an SDO upload request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Read (uint16_t idx, uint8_t subidx, ::std::error_code &ec) const
 Submits an SDO upload request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Write (uint16_t idx, uint8_t subidx, T value)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Write (uint16_t idx, uint8_t subidx, T value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Write (uint16_t idx, uint8_t subidx, const T &value)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Write (uint16_t idx, uint8_t subidx, const T &value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char *value)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char *value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char16_t *value)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char16_t *value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 

Protected Member Functions

void OnCanError (CanError error) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnCanState (CanState new_state, CanState old_state) noexcept override
 The default implementation invokes lely::canopen::Node::OnCanState() and queues a notification for each registered driver. More...
 
void OnCommand (NmtCommand cs) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnNodeGuarding (uint8_t id, bool occurred) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnHeartbeat (uint8_t id, bool occurred) noexcept override
 The default implementation queues a notification for the driver registered for node id. More...
 
void OnState (uint8_t id, NmtState st) noexcept override
 The default implementation queues a notification for the driver registered for node id. More...
 
void OnBoot (uint8_t id, NmtState st, char es, const ::std::string &what) noexcept override
 The default implementation queues a notification for the driver registered for node id. More...
 
void OnConfig (uint8_t id) noexcept override
 The default implementation queues a notification for the driver registered for node id. More...
 
void OnRpdo (int num, ::std::error_code ec, const void *p, ::std::size_t n) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnRpdoError (int num, uint16_t eec, uint8_t er) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnTpdo (int num, ::std::error_code ec, const void *p, ::std::size_t n) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnSync (uint8_t cnt, const time_point &t) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnSyncError (uint16_t eec, uint8_t er) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnTime (const ::std::chrono::system_clock::time_point &abs_time) noexcept override
 The default implementation queues a notification for all registered drivers. More...
 
void OnEmcy (uint8_t id, uint16_t eec, uint8_t er, uint8_t msef[5]) noexcept override
 The default implementation queues a notification for the driver registered for node id. More...
 
- Protected Member Functions inherited from lely::canopen::BasicMaster
void ConfigResult (uint8_t id, ::std::error_code ec) noexcept
 Reports the result of the 'update configuration' step to the NMT service. More...
 
SdoGetSdo (uint8_t id)
 Returns a pointer to the default client-SDO service for the given node. More...
 
void CancelSdo (uint8_t id=0)
 Aborts any ongoing or pending SDO requests for the specified slave. More...
 
- Protected Member Functions inherited from lely::canopen::Node
virtual void lock () final override
 Blocks until a lock can be obtained for the current execution agent (thread, process, task). More...
 
virtual void unlock () final override
 Releases the lock held by the execution agent. Throws no exceptions.
 
void OnCanState (CanState new_state, CanState old_state) noexcept override
 Implements the default behavior for a CAN bus state change. More...
 
CONMTnmt () const noexcept
 Returns a pointer to the internal CANopen NMT master/slave service from <lely/co/nmt.hpp>.
 
void RpdoRtr (int num=0)
 Requests the transmission of a PDO. More...
 
void TpdoEvent (int num=0)
 Triggers the transmission of an event-driven (asynchronous) PDO. More...
 
- Protected Member Functions inherited from lely::canopen::IoContext
CANNetnet () const noexcept
 Returns a pointer to the internal CAN network interface from <lely/can/net.hpp>.
 
void SetTime ()
 Update the CAN network time. More...
 
 IoContext (aio::TimerBase &timer, aio::CanBusBase &bus, BasicLockable *mutex=nullptr)
 Creates a new I/O context. More...
 
aio::ExecutorBase GetExecutor () const noexcept
 Returns the executor used to process I/O events on the CAN bus.
 
template<class F >
void Post (F &&f)
 Schedules the specified Callable object for execution. More...
 
- Protected Member Functions inherited from lely::canopen::Device
CODevdev () const noexcept
 Returns a pointer to the internal CANopen device from <lely/co/dev.hpp>.
 
const ::std::type_info & Type (uint16_t idx, uint8_t subidx) const
 Returns the type of a sub-object. More...
 
const ::std::type_info & Type (uint16_t idx, uint8_t subidx, ::std::error_code &ec) const
 Returns the type of a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Get (uint16_t idx, uint8_t subidx) const
 Reads the value of a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Get (uint16_t idx, uint8_t subidx, ::std::error_code &ec) const
 Reads the value of a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Set (uint16_t idx, uint8_t subidx, T value)
 Writes a CANopen basic value to a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Set (uint16_t idx, uint8_t subidx, T value, ::std::error_code &ec)
 Writes a CANopen basic value to a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Set (uint16_t idx, uint8_t subidx, const T &value)
 Writes a CANopen array value to a sub-object. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Set (uint16_t idx, uint8_t subidx, const T &value, ::std::error_code &ec)
 Writes a CANopen array value to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const char *value)
 Writes a VISIBLE_STRING to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const char *value, ::std::error_code &ec)
 Writes a VISIBLE_STRING to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const char16_t *value)
 Writes a UNICODE_STRING to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const char16_t *value, ::std::error_code &ec)
 Writes a UNICODE_STRING to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n)
 Writes an OCTET_STRING or DOMAIN value to a sub-object. More...
 
void Set (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n, ::std::error_code &ec)
 Writes an OCTET_STRING or DOMAIN value to a sub-object. More...
 
 Device (const ::std::string &dcf_txt, const ::std::string &dcf_bin="", uint8_t id=0xff, BasicLockable *mutex=nullptr)
 Creates a new CANopen device description. More...
 
uint8_t netid () const noexcept
 Returns the network-ID.
 
uint8_t id () const noexcept
 Returns the node-ID.
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Read (uint16_t idx, uint8_t subidx) const
 Submits an SDO upload request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenType< T >::value, T >::type Read (uint16_t idx, uint8_t subidx, ::std::error_code &ec) const
 Submits an SDO upload request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Write (uint16_t idx, uint8_t subidx, T value)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenBasic< T >::value >::type Write (uint16_t idx, uint8_t subidx, T value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Write (uint16_t idx, uint8_t subidx, const T &value)
 Submits an SDO download request to the local object dictionary. More...
 
template<class T >
typename ::std::enable_if< detail::IsCanopenArray< T >::value >::type Write (uint16_t idx, uint8_t subidx, const T &value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char *value)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char *value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char16_t *value)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const char16_t *value, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n)
 Submits an SDO download request to the local object dictionary. More...
 
void Write (uint16_t idx, uint8_t subidx, const void *p, ::std::size_t n, ::std::error_code &ec)
 Submits an SDO download request to the local object dictionary. More...
 

Additional Inherited Members

- Public Types inherited from lely::canopen::BasicMaster
template<class T >
using ReadSignature = void(uint8_t id, uint16_t idx, uint8_t subidx, ::std::error_code ec, T value)
 The signature of the callback function invoked on completion of an asynchronous read (SDO upload) operation from a remote object dictionary. More...
 
using WriteSignature = void(uint8_t id, uint16_t idx, uint8_t subidx, ::std::error_code ec)
 The signature of the callback function invoked on completion of an asynchronous write (SDO download) operation to a remote object dictionary. More...
 

Detailed Description

An asynchronous CANopen master.

When a CANopen event occurs, this master queues a notification to (the executor of) each registered driver. The master itself does not block waiting for events to be handled.

Definition at line 1044 of file master.hpp.

Member Function Documentation

◆ OnCanError()

void lely::canopen::AsyncMaster::OnCanError ( CanError  error)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
IoContext::OnCanError(), DriverBase::OnCanError()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 313 of file master.cpp.

◆ OnCanState()

void lely::canopen::AsyncMaster::OnCanState ( CanState  new_state,
CanState  old_state 
)
overrideprotectedvirtualnoexcept

The default implementation invokes lely::canopen::Node::OnCanState() and queues a notification for each registered driver.

See also
IoContext::OnCanState(), DriverBase::OnCanState()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 324 of file master.cpp.

◆ OnCommand()

void lely::canopen::AsyncMaster::OnCommand ( NmtCommand  cs)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

Unless the master enters the pre-operational or operational state, all ongoing and pending SDO requests are aborted.

See also
Node::OnCommand(), DriverBase::OnCommand()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 335 of file master.cpp.

◆ OnNodeGuarding()

void lely::canopen::AsyncMaster::OnNodeGuarding ( uint8_t  id,
bool  occurred 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
BasicMaster::OnNodeGuarding(), DriverBase::OnNodeGuarding()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 349 of file master.cpp.

◆ OnHeartbeat()

void lely::canopen::AsyncMaster::OnHeartbeat ( uint8_t  id,
bool  occurred 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for the driver registered for node id.

See also
Node::OnHeartbeat(), DriverBase::OnHeartbeat()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 361 of file master.cpp.

◆ OnState()

void lely::canopen::AsyncMaster::OnState ( uint8_t  id,
NmtState  st 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for the driver registered for node id.

If a boot-up event (st == NmtState::BOOTUP) is detected, any ongoing or pending SDO requests for the slave are aborted.

See also
Node::OnState(), DriverBase::OnState()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 373 of file master.cpp.

◆ OnBoot()

void lely::canopen::AsyncMaster::OnBoot ( uint8_t  id,
NmtState  st,
char  es,
const ::std::string &  what 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for the driver registered for node id.

See also
BasicMaster::OnBoot(), DriverBase::OnBoot()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 388 of file master.cpp.

◆ OnConfig()

void lely::canopen::AsyncMaster::OnConfig ( uint8_t  id)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for the driver registered for node id.

See also
BasicMaster::OnConfig(), DriverBase::OnConfig()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 401 of file master.cpp.

◆ OnRpdo()

void lely::canopen::AsyncMaster::OnRpdo ( int  num,
::std::error_code  ec,
const void *  p,
::std::size_t  n 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnRpdo(), DriverBase::OnRpdo()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 427 of file master.cpp.

◆ OnRpdoError()

void lely::canopen::AsyncMaster::OnRpdoError ( int  num,
uint16_t  eec,
uint8_t  er 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnRpdoError(), DriverBase::OnRpdoError()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 443 of file master.cpp.

◆ OnTpdo()

void lely::canopen::AsyncMaster::OnTpdo ( int  num,
::std::error_code  ec,
const void *  p,
::std::size_t  n 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnTpdo(), DriverBase::OnTpdo()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 454 of file master.cpp.

◆ OnSync()

void lely::canopen::AsyncMaster::OnSync ( uint8_t  cnt,
const time_point &  t 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnSync(), DriverBase::OnSync()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 469 of file master.cpp.

◆ OnSyncError()

void lely::canopen::AsyncMaster::OnSyncError ( uint16_t  eec,
uint8_t  er 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnSyncError(), DriverBase::OnSyncError()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 480 of file master.cpp.

◆ OnTime()

void lely::canopen::AsyncMaster::OnTime ( const ::std::chrono::system_clock::time_point &  abs_time)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for all registered drivers.

See also
Node::OnTime(), DriverBase::OnTime()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 491 of file master.cpp.

◆ OnEmcy()

void lely::canopen::AsyncMaster::OnEmcy ( uint8_t  id,
uint16_t  eec,
uint8_t  er,
uint8_t  msef[5] 
)
overrideprotectedvirtualnoexcept

The default implementation queues a notification for the driver registered for node id.

See also
Node::OnEmcy(), DriverBase::OnEmcy()

Reimplemented from lely::canopen::BasicMaster.

Definition at line 503 of file master.cpp.

◆ BasicMaster()

lely::canopen::BasicMaster::BasicMaster

Creates a new CANopen master.

After creation, the master is in the NMT 'Initialisation' state and does not yet create any services or perform any communication. Call Reset() to start the boot-up process.

Parameters
timerthe timer used for CANopen events.
busa handle to the CAN bus.
dcf_txtthe path of the text EDS or DCF containing the device description.
dcf_binthe path of the (binary) concise DCF containing the values of (some of) the objets in the object dictionary. If dcf_bin is empty, no concise DCF is loaded.
idthe node-ID (in the range [1..127, 255]). If id is 255 (unconfigured), the node-ID is obtained from the DCF.

Definition at line 55 of file master.cpp.


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