Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
uavcan::TransferSender Class Reference

#include <transfer_sender.hpp>

Public Types

enum  { AllIfacesMask = 0xFF }
 

Public Member Functions

void allowAnonymousTransfers ()
 
CanIOFlags getCanIOFlags () const
 
uint8_t getIfaceMask () const
 
TransferPriority getPriority () const
 
void init (const DataTypeDescriptor &dtid)
 
bool isInitialized () const
 
int send (const uint8_t *payload, unsigned payload_len, MonotonicTime tx_deadline, MonotonicTime blocking_deadline, TransferType transfer_type, NodeID dst_node_id) const
 
int send (const uint8_t *payload, unsigned payload_len, MonotonicTime tx_deadline, MonotonicTime blocking_deadline, TransferType transfer_type, NodeID dst_node_id, TransferID tid) const
 
void setCanIOFlags (CanIOFlags flags)
 
void setIfaceMask (uint8_t iface_mask)
 
void setPriority (TransferPriority prio)
 
 TransferSender (Dispatcher &dispatcher, const DataTypeDescriptor &data_type, MonotonicDuration max_transfer_interval=getDefaultMaxTransferInterval())
 
 TransferSender (Dispatcher &dispatcher, MonotonicDuration max_transfer_interval=getDefaultMaxTransferInterval())
 

Static Public Member Functions

static MonotonicDuration getDefaultMaxTransferInterval ()
 

Private Member Functions

void registerError () const
 

Private Attributes

bool allow_anonymous_transfers_
 
TransferCRC crc_base_
 
DataTypeID data_type_id_
 
Dispatcherdispatcher_
 
CanIOFlags flags_
 
uint8_t iface_mask_
 
const MonotonicDuration max_transfer_interval_
 
TransferPriority priority_
 

Detailed Description

Definition at line 20 of file transfer_sender.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
AllIfacesMask 

Definition at line 36 of file transfer_sender.hpp.

Constructor & Destructor Documentation

◆ TransferSender() [1/2]

uavcan::TransferSender::TransferSender ( Dispatcher dispatcher,
const DataTypeDescriptor data_type,
MonotonicDuration  max_transfer_interval = getDefaultMaxTransferInterval() 
)
inline

Definition at line 43 of file transfer_sender.hpp.

◆ TransferSender() [2/2]

uavcan::TransferSender::TransferSender ( Dispatcher dispatcher,
MonotonicDuration  max_transfer_interval = getDefaultMaxTransferInterval() 
)
inline

Definition at line 55 of file transfer_sender.hpp.

Member Function Documentation

◆ allowAnonymousTransfers()

void uavcan::TransferSender::allowAnonymousTransfers ( )
inline

Anonymous transfers (i.e. transfers that don't carry a valid Source Node ID) can be sent if the local node is configured in passive mode (i.e. the node doesn't have a valid Node ID). By default, this class will return an error if it is asked to send a transfer while the node is configured in passive mode. However, if this option is enabled, it will be possible to send anonymous transfers from passive mode.

Definition at line 88 of file transfer_sender.hpp.

◆ getCanIOFlags()

CanIOFlags uavcan::TransferSender::getCanIOFlags ( ) const
inline

Definition at line 68 of file transfer_sender.hpp.

◆ getDefaultMaxTransferInterval()

static MonotonicDuration uavcan::TransferSender::getDefaultMaxTransferInterval ( )
inlinestatic

Definition at line 38 of file transfer_sender.hpp.

◆ getIfaceMask()

uint8_t uavcan::TransferSender::getIfaceMask ( ) const
inline

Definition at line 71 of file transfer_sender.hpp.

◆ getPriority()

TransferPriority uavcan::TransferSender::getPriority ( ) const
inline

Definition at line 78 of file transfer_sender.hpp.

◆ init()

void uavcan::TransferSender::init ( const DataTypeDescriptor dtid)

Definition at line 18 of file uc_transfer_sender.cpp.

◆ isInitialized()

bool uavcan::TransferSender::isInitialized ( ) const
inline

Definition at line 66 of file transfer_sender.hpp.

◆ registerError()

void uavcan::TransferSender::registerError ( ) const
private

Definition at line 13 of file uc_transfer_sender.cpp.

◆ send() [1/2]

int uavcan::TransferSender::send ( const uint8_t payload,
unsigned  payload_len,
MonotonicTime  tx_deadline,
MonotonicTime  blocking_deadline,
TransferType  transfer_type,
NodeID  dst_node_id 
) const

Send with automatic Transfer ID.

Note that as long as the local node operates in passive mode, the flag CanIOFlagAbortOnError will be set implicitly for all outgoing frames.

TID is managed by OutgoingTransferRegistry.

Definition at line 145 of file uc_transfer_sender.cpp.

◆ send() [2/2]

int uavcan::TransferSender::send ( const uint8_t payload,
unsigned  payload_len,
MonotonicTime  tx_deadline,
MonotonicTime  blocking_deadline,
TransferType  transfer_type,
NodeID  dst_node_id,
TransferID  tid 
) const

Send with explicit Transfer ID. Should be used only for service responses, where response TID should match request TID.

Definition at line 26 of file uc_transfer_sender.cpp.

◆ setCanIOFlags()

void uavcan::TransferSender::setCanIOFlags ( CanIOFlags  flags)
inline

Definition at line 69 of file transfer_sender.hpp.

◆ setIfaceMask()

void uavcan::TransferSender::setIfaceMask ( uint8_t  iface_mask)
inline

Definition at line 72 of file transfer_sender.hpp.

◆ setPriority()

void uavcan::TransferSender::setPriority ( TransferPriority  prio)
inline

Definition at line 79 of file transfer_sender.hpp.

Member Data Documentation

◆ allow_anonymous_transfers_

bool uavcan::TransferSender::allow_anonymous_transfers_
private

Definition at line 31 of file transfer_sender.hpp.

◆ crc_base_

TransferCRC uavcan::TransferSender::crc_base_
private

Definition at line 27 of file transfer_sender.hpp.

◆ data_type_id_

DataTypeID uavcan::TransferSender::data_type_id_
private

Definition at line 28 of file transfer_sender.hpp.

◆ dispatcher_

Dispatcher& uavcan::TransferSender::dispatcher_
private

Definition at line 24 of file transfer_sender.hpp.

◆ flags_

CanIOFlags uavcan::TransferSender::flags_
private

Definition at line 29 of file transfer_sender.hpp.

◆ iface_mask_

uint8_t uavcan::TransferSender::iface_mask_
private

Definition at line 30 of file transfer_sender.hpp.

◆ max_transfer_interval_

const MonotonicDuration uavcan::TransferSender::max_transfer_interval_
private

Definition at line 22 of file transfer_sender.hpp.

◆ priority_

TransferPriority uavcan::TransferSender::priority_
private

Definition at line 26 of file transfer_sender.hpp.


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


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