diff --git a/libuavcan/include/uavcan/internal/node/generic_publisher.hpp b/libuavcan/include/uavcan/internal/node/generic_publisher.hpp index ad1d67dc11..3b970e05ab 100644 --- a/libuavcan/include/uavcan/internal/node/generic_publisher.hpp +++ b/libuavcan/include/uavcan/internal/node/generic_publisher.hpp @@ -93,7 +93,7 @@ class GenericPublisher } } -protected: +public: GenericPublisher(Scheduler& scheduler, IMarshalBufferProvider& buffer_provider, MonotonicDuration max_transfer_interval = TransferSender::getDefaultMaxTransferInterval()) : max_transfer_interval_(max_transfer_interval) @@ -116,7 +116,6 @@ protected: return genericPublish(message, transfer_type, dst_node_id, &tid, blocking_deadline); } -public: static MonotonicDuration getDefaultTxTimeout() { return MonotonicDuration::fromUSec(2500); }// 2500ms --> 400Hz max static MonotonicDuration getMinTxTimeout() { return MonotonicDuration::fromUSec(200); } diff --git a/libuavcan/include/uavcan/internal/node/generic_subscriber.hpp b/libuavcan/include/uavcan/internal/node/generic_subscriber.hpp index a640ce4137..1b04bad525 100644 --- a/libuavcan/include/uavcan/internal/node/generic_subscriber.hpp +++ b/libuavcan/include/uavcan/internal/node/generic_subscriber.hpp @@ -123,7 +123,7 @@ class GenericSubscriber : Noncopyable message_.setTransfer(&transfer); - const int decode_res = DataSpec::decode(message_, codec); + const int decode_res = DataStruct::decode(message_, codec); // We don't need the data anymore, the memory can be reused from the callback: transfer.release(); if (decode_res <= 0) diff --git a/libuavcan/include/uavcan/publisher.hpp b/libuavcan/include/uavcan/publisher.hpp index 98a0e24139..435390349b 100644 --- a/libuavcan/include/uavcan/publisher.hpp +++ b/libuavcan/include/uavcan/publisher.hpp @@ -10,7 +10,7 @@ namespace uavcan { template -class Publisher : public GenericPublisher +class Publisher : protected GenericPublisher { typedef GenericPublisher BaseType; @@ -40,6 +40,12 @@ public: } return publish(message, TransferTypeMessageUnicast, dst_node_id); } + + using BaseType::getDefaultTxTimeout; + using BaseType::getMinTxTimeout; + using BaseType::getTxTimeout; + using BaseType::setTxTimeout; + using BaseType::getScheduler; }; }