publisher.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
5 #ifndef UAVCAN_NODE_PUBLISHER_HPP_INCLUDED
6 #define UAVCAN_NODE_PUBLISHER_HPP_INCLUDED
7 
9 
10 namespace uavcan
11 {
17 template <typename DataType_>
18 class UAVCAN_EXPORT Publisher : protected GenericPublisher<DataType_, DataType_>
19 {
21 
22 public:
23  typedef DataType_ DataType;
24 
38  explicit Publisher(INode& node, MonotonicDuration tx_timeout = getDefaultTxTimeout(),
40  : BaseType(node, tx_timeout, max_transfer_interval)
41  {
42 #if UAVCAN_DEBUG
43  UAVCAN_ASSERT(getTxTimeout() == tx_timeout); // Making sure default values are OK
44 #endif
46  }
47 
52  int broadcast(const DataType& message)
53  {
54  return BaseType::publish(message, TransferTypeMessageBroadcast, NodeID::Broadcast);
55  }
56 
63  int broadcast(const DataType& message, TransferID tid)
64  {
65  return BaseType::publish(message, TransferTypeMessageBroadcast, NodeID::Broadcast, tid);
66  }
67 
69 
74  using BaseType::init;
75 
76  using BaseType::allowAnonymousTransfers;
77  using BaseType::getTransferSender;
78  using BaseType::getMinTxTimeout;
79  using BaseType::getMaxTxTimeout;
80  using BaseType::getTxTimeout;
81  using BaseType::setTxTimeout;
82  using BaseType::getPriority;
83  using BaseType::setPriority;
84  using BaseType::getNode;
85 };
86 
87 }
88 
89 #endif // UAVCAN_NODE_PUBLISHER_HPP_INCLUDED
generic_publisher.hpp
uavcan::Publisher::Publisher
Publisher(INode &node, MonotonicDuration tx_timeout=getDefaultTxTimeout(), MonotonicDuration max_transfer_interval=TransferSender::getDefaultMaxTransferInterval())
Definition: publisher.hpp:38
uavcan::Publisher
Definition: publisher.hpp:18
uavcan::DurationBase< MonotonicDuration >::fromMSec
static MonotonicDuration fromMSec(int64_t ms)
Definition: time.hpp:41
uavcan::StaticAssert
struct UAVCAN_EXPORT StaticAssert
Definition: templates.hpp:29
uavcan::MonotonicDuration
Definition: time.hpp:182
uavcan::TransferID
Definition: transfer.hpp:71
uavcan::TransferTypeMessageBroadcast
@ TransferTypeMessageBroadcast
Definition: transfer.hpp:22
uavcan::Publisher::DataType
DataType_ DataType
Message data type.
Definition: publisher.hpp:23
UAVCAN_EXPORT
#define UAVCAN_EXPORT
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:108
uavcan::DataTypeKind
DataTypeKind
Definition: data_type.hpp:19
uavcan::NodeID::Broadcast
static const NodeID Broadcast
Definition: transfer.hpp:122
uavcan::INode
Definition: abstract_node.hpp:19
uavcan::Publisher::getDefaultTxTimeout
static MonotonicDuration getDefaultTxTimeout()
Definition: publisher.hpp:68
uavcan_kinetis::clock::init
void init()
Definition: clock.cpp:43
uavcan::TransferSender::getDefaultMaxTransferInterval
static MonotonicDuration getDefaultMaxTransferInterval()
Definition: transfer_sender.hpp:38
uavcan::Publisher::broadcast
int broadcast(const DataType &message)
Definition: publisher.hpp:52
uavcan::GenericPublisher
Definition: generic_publisher.hpp:85
pyuavcan_v0.introspect.node
node
Definition: introspect.py:398
uavcan::Publisher::broadcast
int broadcast(const DataType &message, TransferID tid)
Definition: publisher.hpp:63
uavcan
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:204
uavcan::DataTypeKindMessage
@ DataTypeKindMessage
Definition: data_type.hpp:22
uavcan::Publisher::BaseType
GenericPublisher< DataType_, DataType_ > BaseType
Definition: publisher.hpp:20
UAVCAN_ASSERT
#define UAVCAN_ASSERT(x)
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:184


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