Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
uavcan::CanIOManager Class Reference

#include <can_io.hpp>

Inheritance diagram for uavcan::CanIOManager:
Inheritance graph
[legend]

Classes

struct  IfaceFrameCounters
 

Public Member Functions

 CanIOManager (ICanDriver &driver, IPoolAllocator &allocator, ISystemClock &sysclock, std::size_t mem_blocks_per_iface=0)
 
ICanDrivergetCanDriver ()
 
const ICanDrivergetCanDriver () const
 
CanIfacePerfCounters getIfacePerfCounters (uint8_t iface_index) const
 
uint8_t getNumIfaces () const
 
uint8_t makePendingTxMask () const
 
int receive (CanRxFrame &out_frame, MonotonicTime blocking_deadline, CanIOFlags &out_flags)
 
int send (const CanFrame &frame, MonotonicTime tx_deadline, MonotonicTime blocking_deadline, uint8_t iface_mask, CanIOFlags flags)
 

Private Member Functions

int callSelect (CanSelectMasks &inout_masks, const CanFrame *(&pending_tx)[MaxCanIfaces], MonotonicTime blocking_deadline)
 
int sendFromTxQueue (uint8_t iface_index)
 
int sendToIface (uint8_t iface_index, const CanFrame &frame, MonotonicTime tx_deadline, CanIOFlags flags)
 
- Private Member Functions inherited from uavcan::Noncopyable
 Noncopyable ()
 
 ~Noncopyable ()
 

Private Attributes

IfaceFrameCounters counters_ [MaxCanIfaces]
 
ICanDriverdriver_
 
const uint8_t num_ifaces_
 
ISystemClocksysclock_
 
LazyConstructor< CanTxQueuetx_queues_ [MaxCanIfaces]
 

Detailed Description

Definition at line 128 of file can_io.hpp.

Constructor & Destructor Documentation

◆ CanIOManager()

uavcan::CanIOManager::CanIOManager ( ICanDriver driver,
IPoolAllocator allocator,
ISystemClock sysclock,
std::size_t  mem_blocks_per_iface = 0 
)

Definition at line 246 of file uc_can_io.cpp.

Member Function Documentation

◆ callSelect()

int uavcan::CanIOManager::callSelect ( CanSelectMasks inout_masks,
const CanFrame *(&)  pending_tx[MaxCanIfaces],
MonotonicTime  blocking_deadline 
)
private

Definition at line 230 of file uc_can_io.cpp.

◆ getCanDriver() [1/2]

ICanDriver& uavcan::CanIOManager::getCanDriver ( )
inline

Definition at line 163 of file can_io.hpp.

◆ getCanDriver() [2/2]

const ICanDriver& uavcan::CanIOManager::getCanDriver ( ) const
inline

Definition at line 162 of file can_io.hpp.

◆ getIfacePerfCounters()

CanIfacePerfCounters uavcan::CanIOManager::getIfacePerfCounters ( uint8_t  iface_index) const

Definition at line 282 of file uc_can_io.cpp.

◆ getNumIfaces()

uint8_t uavcan::CanIOManager::getNumIfaces ( ) const
inline

Definition at line 158 of file can_io.hpp.

◆ makePendingTxMask()

uint8_t uavcan::CanIOManager::makePendingTxMask ( ) const

Definition at line 269 of file uc_can_io.cpp.

◆ receive()

int uavcan::CanIOManager::receive ( CanRxFrame out_frame,
MonotonicTime  blocking_deadline,
CanIOFlags out_flags 
)

Definition at line 412 of file uc_can_io.cpp.

◆ send()

int uavcan::CanIOManager::send ( const CanFrame frame,
MonotonicTime  tx_deadline,
MonotonicTime  blocking_deadline,
uint8_t  iface_mask,
CanIOFlags  flags 
)

Returns: 0 - rejected/timedout/enqueued 1+ - sent/received negative - failure

Definition at line 297 of file uc_can_io.cpp.

◆ sendFromTxQueue()

int uavcan::CanIOManager::sendFromTxQueue ( uint8_t  iface_index)
private

Definition at line 214 of file uc_can_io.cpp.

◆ sendToIface()

int uavcan::CanIOManager::sendToIface ( uint8_t  iface_index,
const CanFrame frame,
MonotonicTime  tx_deadline,
CanIOFlags  flags 
)
private

Definition at line 192 of file uc_can_io.cpp.

Member Data Documentation

◆ counters_

IfaceFrameCounters uavcan::CanIOManager::counters_[MaxCanIfaces]
private

Definition at line 145 of file can_io.hpp.

◆ driver_

ICanDriver& uavcan::CanIOManager::driver_
private

Definition at line 141 of file can_io.hpp.

◆ num_ifaces_

const uint8_t uavcan::CanIOManager::num_ifaces_
private

Definition at line 147 of file can_io.hpp.

◆ sysclock_

ISystemClock& uavcan::CanIOManager::sysclock_
private

Definition at line 142 of file can_io.hpp.

◆ tx_queues_

LazyConstructor<CanTxQueue> uavcan::CanIOManager::tx_queues_[MaxCanIfaces]
private

Definition at line 144 of file can_io.hpp.


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


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:04