Go to the documentation of this file.
5 #ifndef UAVCAN_NODE_NODE_HPP_INCLUDED
6 #define UAVCAN_NODE_NODE_HPP_INCLUDED
23 #if !defined(UAVCAN_CPP_VERSION) || !defined(UAVCAN_CPP11)
24 # error UAVCAN_CPP_VERSION
37 template <std::
size_t MemPoolSize = 0>
62 internal_failure_cnt_ = 0;
69 internal_failure_cnt_++;
84 scheduler_(can_driver, pool_allocator_, system_clock),
88 , proto_logger_(*this)
102 pool_allocator_(allocator),
103 scheduler_(can_driver, pool_allocator_, system_clock),
107 , proto_logger_(*this)
126 return -ErrNotInited;
135 return -ErrNotInited;
144 return -ErrNotInited;
225 #if UAVCAN_CPP_VERSION >= UAVCAN_CPP11
227 template <
typename... Args>
233 template <
typename... Args>
239 template <
typename... Args>
245 template <
typename... Args>
253 void logDebug(
const char* source,
const char* text) { (void)proto_logger_.
logDebug(source, text); }
254 void logInfo(
const char* source,
const char* text) { (void)proto_logger_.
logInfo(source, text); }
255 void logWarning(
const char* source,
const char* text) { (void)proto_logger_.
logWarning(source, text); }
256 void logError(
const char* source,
const char* text) { (void)proto_logger_.
logError(source, text); }
268 #endif // UAVCAN_TINY
273 template <std::
size_t MemPoolSize_>
283 res = proto_nsp_.startAndPublish(priority);
289 res = proto_dtp_.start();
294 res = proto_logger_.init();
299 res = proto_rrs_.start();
304 res = proto_tsp_.start();
319 #endif // UAVCAN_NODE_NODE_HPP_INCLUDED
DataTypeInfoProvider proto_dtp_
void setHardwareVersion(const protocol::HardwareVersion &version)
void setVendorSpecificStatusCode(VendorSpecificStatusCode code)
uint64_t getInternalFailureCount() const
void setSoftwareVersion(const protocol::SoftwareVersion &version)
void setModeOfflineAndPublish()
Select<(MemPoolSize > 0), PoolAllocator< MemPoolSize, MemPoolBlockSize >, IPoolAllocator & >::Result Allocator
uint64_t internal_failure_cnt_
int logInfo(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
void setModeInitialization()
virtual RemoveReference< Allocator >::Type & getAllocator()
void setModeOperational()
void logWarning(const char *source, const char *format, Args... args)
virtual Scheduler & getScheduler()
NodeStatusProvider proto_nsp_
int spin(MonotonicTime deadline)
const protocol::SoftwareVersion & getSoftwareVersion() const
void setHandler(IRestartRequestHandler *handler)
#define UAVCAN_TRACE(...)
void setModeMaintenance()
int spin(MonotonicTime deadline)
TransportStatsProvider proto_tsp_
RestartRequestServer & getRestartRequestServer()
void setModeSoftwareUpdate()
const protocol::HardwareVersion & getHardwareVersion() const
void setRestartRequestHandler(IRestartRequestHandler *handler)
int logDebug(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
void setName(const NodeStatusProvider::NodeName &name)
void setName(const NodeName &name)
int spin(MonotonicDuration duration)
void logError(const char *source, const char *format, Args... args)
NodeStatusProvider & getNodeStatusProvider()
Allocator pool_allocator_
struct UAVCAN_EXPORT Select
int logWarning(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
RestartRequestServer proto_rrs_
const protocol::HardwareVersion & getHardwareVersion() const
int start(const TransferPriority node_status_transfer_priority=TransferPriority::Default)
const NodeName & getName() const
const NodeStatusProvider::NodeName & getName() const
void setModeInitialization()
void setModeOperational()
void setVendorSpecificStatusCode(NodeStatusProvider::VendorSpecificStatusCode code)
void setModeSoftwareUpdate()
Node(ICanDriver &can_driver, ISystemClock &system_clock)
void setSoftwareVersion(const protocol::SoftwareVersion &version)
void logInfo(const char *source, const char *format, Args... args)
Node(ICanDriver &can_driver, ISystemClock &system_clock, IPoolAllocator &allocator)
static GlobalDataTypeRegistry & instance()
const protocol::SoftwareVersion & getSoftwareVersion() const
virtual const Scheduler & getScheduler() const
void setHardwareVersion(const protocol::HardwareVersion &version)
void setModeMaintenance()
static const TransferPriority Default
This priority is used by default.
void logDebug(const char *source, const char *format, Args... args)
int logError(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
virtual void registerInternalFailure(const char *msg)