Classes | Public Member Functions | Private Types | Private Member Functions | List of all members
uavcan::GenericPublisher< DataSpec, DataStruct > Class Template Reference

#include <generic_publisher.hpp>

Inheritance diagram for uavcan::GenericPublisher< DataSpec, DataStruct >:
Inheritance graph
[legend]

Classes

struct  ZeroTransferBuffer
 

Public Member Functions

 GenericPublisher (INode &node, MonotonicDuration tx_timeout, MonotonicDuration max_transfer_interval=TransferSender::getDefaultMaxTransferInterval())
 
int init ()
 
int init (TransferPriority priority)
 
int publish (const DataStruct &message, TransferType transfer_type, NodeID dst_node_id, MonotonicTime blocking_deadline=MonotonicTime())
 
int publish (const DataStruct &message, TransferType transfer_type, NodeID dst_node_id, TransferID tid, MonotonicTime blocking_deadline=MonotonicTime())
 
 ~GenericPublisher ()
 
- Public Member Functions inherited from uavcan::GenericPublisherBase
void allowAnonymousTransfers ()
 
INodegetNode () const
 
TransferPriority getPriority () const
 
MonotonicDuration getTxTimeout () const
 
void setPriority (const TransferPriority prio)
 
void setTxTimeout (MonotonicDuration tx_timeout)
 

Private Types

typedef Select< DataStruct::MaxBitLen==0, ZeroTransferBuffer, StaticTransferBuffer< BitLenToByteLen< DataStruct::MaxBitLen >::Result > >::Result Buffer
 

Private Member Functions

int checkInit ()
 
int doEncode (const DataStruct &message, ITransferBuffer &buffer) const
 
int genericPublish (const DataStruct &message, TransferType transfer_type, NodeID dst_node_id, TransferID *tid, MonotonicTime blocking_deadline)
 

Additional Inherited Members

- Static Public Member Functions inherited from uavcan::GenericPublisherBase
static MonotonicDuration getMaxTxTimeout ()
 
static MonotonicDuration getMinTxTimeout ()
 
- Protected Member Functions inherited from uavcan::GenericPublisherBase
int doInit (DataTypeKind dtkind, const char *dtname)
 
int genericPublish (const StaticTransferBufferImpl &buffer, TransferType transfer_type, NodeID dst_node_id, TransferID *tid, MonotonicTime blocking_deadline)
 
 GenericPublisherBase (INode &node, MonotonicDuration tx_timeout, MonotonicDuration max_transfer_interval)
 
TransferSendergetTransferSender ()
 
const TransferSendergetTransferSender () const
 
MonotonicTime getTxDeadline () const
 
bool isInited () const
 
 ~GenericPublisherBase ()
 

Detailed Description

template<typename DataSpec, typename DataStruct>
class uavcan::GenericPublisher< DataSpec, DataStruct >

Generic publisher, suitable for messages and services. DataSpec - data type specification class DataStruct - instantiable class

Definition at line 85 of file generic_publisher.hpp.

Member Typedef Documentation

◆ Buffer

template<typename DataSpec , typename DataStruct >
typedef Select<DataStruct::MaxBitLen == 0, ZeroTransferBuffer, StaticTransferBuffer<BitLenToByteLen<DataStruct::MaxBitLen>::Result> >::Result uavcan::GenericPublisher< DataSpec, DataStruct >::Buffer
private

Definition at line 94 of file generic_publisher.hpp.

Constructor & Destructor Documentation

◆ GenericPublisher()

template<typename DataSpec , typename DataStruct >
uavcan::GenericPublisher< DataSpec, DataStruct >::GenericPublisher ( INode node,
MonotonicDuration  tx_timeout,
MonotonicDuration  max_transfer_interval = TransferSender::getDefaultMaxTransferInterval() 
)
inline
Parameters
max_transfer_intervalMaximum expected time interval between subsequent publications. Leave default.

Definition at line 107 of file generic_publisher.hpp.

◆ ~GenericPublisher()

template<typename DataSpec , typename DataStruct >
uavcan::GenericPublisher< DataSpec, DataStruct >::~GenericPublisher ( )
inline

Definition at line 112 of file generic_publisher.hpp.

Member Function Documentation

◆ checkInit()

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::checkInit
private

Definition at line 148 of file generic_publisher.hpp.

◆ doEncode()

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::doEncode ( const DataStruct &  message,
ITransferBuffer buffer 
) const
private

Definition at line 159 of file generic_publisher.hpp.

◆ genericPublish()

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::genericPublish ( const DataStruct &  message,
TransferType  transfer_type,
NodeID  dst_node_id,
TransferID tid,
MonotonicTime  blocking_deadline 
)
private

Definition at line 173 of file generic_publisher.hpp.

◆ init() [1/2]

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::init ( )
inline

Init method can be called prior first publication, but it's not necessary because the publisher can be automatically initialized ad-hoc.

Definition at line 118 of file generic_publisher.hpp.

◆ init() [2/2]

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::init ( TransferPriority  priority)
inline

This overload allows to set the priority; otherwise it's the same.

Definition at line 126 of file generic_publisher.hpp.

◆ publish() [1/2]

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::publish ( const DataStruct &  message,
TransferType  transfer_type,
NodeID  dst_node_id,
MonotonicTime  blocking_deadline = MonotonicTime() 
)
inline

Definition at line 132 of file generic_publisher.hpp.

◆ publish() [2/2]

template<typename DataSpec , typename DataStruct >
int uavcan::GenericPublisher< DataSpec, DataStruct >::publish ( const DataStruct &  message,
TransferType  transfer_type,
NodeID  dst_node_id,
TransferID  tid,
MonotonicTime  blocking_deadline = MonotonicTime() 
)
inline

Definition at line 138 of file generic_publisher.hpp.


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


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