diff --git a/libuavcan/include/uavcan/publisher.hpp b/libuavcan/include/uavcan/publisher.hpp index 882768cf9c..02516b7ada 100644 --- a/libuavcan/include/uavcan/publisher.hpp +++ b/libuavcan/include/uavcan/publisher.hpp @@ -23,9 +23,10 @@ class Publisher public: typedef DataType_ DataType; -private: + enum { DefaultTxTimeoutUsec = 2500 }; // 2500 ms --> 400Hz max enum { MinTxTimeoutUsec = 200 }; +private: const uint64_t max_transfer_interval_; // TODO: memory usage can be reduced uint64_t tx_timeout_; Scheduler& scheduler_; @@ -59,7 +60,7 @@ private: } int genericSend(const DataType& message, TransferType transfer_type, NodeID dst_node_id, - uint64_t monotonic_blocking_deadline) + uint64_t monotonic_blocking_deadline = 0) { if (!checkInit()) return -1; @@ -82,7 +83,8 @@ private: } public: - Publisher(Scheduler& scheduler, IMarshalBufferProvider& buffer_provider, uint64_t tx_timeout_usec, + Publisher(Scheduler& scheduler, IMarshalBufferProvider& buffer_provider, + uint64_t tx_timeout_usec = DefaultTxTimeoutUsec, uint64_t max_transfer_interval = TransferSender::DefaultMaxTransferInterval) : max_transfer_interval_(max_transfer_interval) , tx_timeout_(tx_timeout_usec) @@ -93,19 +95,19 @@ public: StaticAssert::check(); } - int broadcast(const DataType& message, uint64_t monotonic_blocking_deadline = 0) + int broadcast(const DataType& message) { - return genericSend(message, TransferTypeMessageBroadcast, NodeID::Broadcast, monotonic_blocking_deadline); + return genericSend(message, TransferTypeMessageBroadcast, NodeID::Broadcast); } - int unicast(const DataType& message, NodeID dst_node_id, uint64_t monotonic_blocking_deadline = 0) + int unicast(const DataType& message, NodeID dst_node_id) { if (!dst_node_id.isUnicast()) { assert(0); return -1; } - return genericSend(message, TransferTypeMessageUnicast, dst_node_id, monotonic_blocking_deadline); + return genericSend(message, TransferTypeMessageUnicast, dst_node_id); } uint64_t getTxTimeout() const { return tx_timeout_; } diff --git a/libuavcan/test/publisher.cpp b/libuavcan/test/publisher.cpp index 64da45dbf3..6dbde8d61b 100644 --- a/libuavcan/test/publisher.cpp +++ b/libuavcan/test/publisher.cpp @@ -24,7 +24,7 @@ TEST(Publisher, Basic) uavcan::MarshalBufferProvider<> buffer_provider; - uavcan::Publisher publisher(sch, buffer_provider, 10000); + uavcan::Publisher publisher(sch, buffer_provider); ASSERT_FALSE(uavcan::GlobalDataTypeRegistry::instance().isFrozen());