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>
41 Select<(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>
236 (void)proto_logger_.
logInfo(source, format,
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 void logInfo(const char *source, const char *format, Args... args)
const protocol::HardwareVersion & getHardwareVersion() const
void setRestartRequestHandler(IRestartRequestHandler *handler)
int logDebug(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
int logWarning(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
const NodeName & getName() const
RestartRequestServer proto_rrs_
void setSoftwareVersion(const protocol::SoftwareVersion &version)
int start(const TransferPriority node_status_transfer_priority=TransferPriority::Default)
RestartRequestServer & getRestartRequestServer()
int spin(MonotonicDuration duration)
void setHardwareVersion(const protocol::HardwareVersion &version)
NodeStatusProvider proto_nsp_
const NodeStatusProvider::NodeName & getName() const
void setSoftwareVersion(const protocol::SoftwareVersion &version)
void setModeMaintenance()
TransportStatsProvider proto_tsp_
const protocol::SoftwareVersion & getSoftwareVersion() const
#define UAVCAN_TRACE(...)
void logError(const char *source, const char *format, Args... args)
void setVendorSpecificStatusCode(NodeStatusProvider::VendorSpecificStatusCode code)
int logError(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
void setName(const NodeStatusProvider::NodeName &name)
void logWarning(const char *source, const char *format, Args... args)
virtual void registerInternalFailure(const char *msg)
void setModeOfflineAndPublish()
uint64_t internal_failure_cnt_
const protocol::SoftwareVersion & getSoftwareVersion() const
virtual Scheduler & getScheduler()
void setVendorSpecificStatusCode(VendorSpecificStatusCode code)
DataTypeInfoProvider proto_dtp_
void setModeInitialization()
Node(ICanDriver &can_driver, ISystemClock &system_clock)
void setHardwareVersion(const protocol::HardwareVersion &version)
int spin(MonotonicTime deadline)
int logInfo(const char *source, const char *format, Args... args) UAVCAN_NOEXCEPT
Select<(MemPoolSize > 0), PoolAllocator< MemPoolSize, MemPoolBlockSize >, IPoolAllocator & >::Result Allocator
void setModeOperational()
const protocol::HardwareVersion & getHardwareVersion() const
static GlobalDataTypeRegistry & instance()
static const TransferPriority Default
This priority is used by default.
virtual RemoveReference< Allocator >::Type & getAllocator()
void setModeMaintenance()
void setHandler(IRestartRequestHandler *handler)
NodeStatusProvider & getNodeStatusProvider()
void setModeOperational()
void logDebug(const char *source, const char *format, Args... args)
int spin(MonotonicTime deadline)
void setModeSoftwareUpdate()
Allocator pool_allocator_
void setModeInitialization()
Node(ICanDriver &can_driver, ISystemClock &system_clock, IPoolAllocator &allocator)
uint64_t getInternalFailureCount() const
virtual const Scheduler & getScheduler() const
void setName(const NodeName &name)
void setModeSoftwareUpdate()