33 UAVCAN_TRACE(
"NodeStatusProvider",
"NodeStatus pub skipped - passive mode");
51 protocol::GetNodeInfo::Response& rsp)
53 UAVCAN_TRACE(
"NodeStatusProvider",
"Got GetNodeInfo request");
62 UAVCAN_TRACE(
"NodeStatusProvider",
"Node info was not initialized");
101 period =
min(period, maximum);
102 period =
max(period, minimum);
108 UAVCAN_TRACE(
"NodeStatusProvider",
"Status pub period: %s, TX timeout: %s",
134 node_info_.status.vendor_specific_status_code = code;
147 if (
node_info_.software_version == protocol::SoftwareVersion())
155 if (
node_info_.hardware_version == protocol::HardwareVersion())
StorageType< typename protocol::GetNodeInfo::Response::FieldTypes::name >::Type NodeName
MonotonicDuration getTxTimeout() const
void setStatusPublicationPeriod(uavcan::MonotonicDuration period)
void setPriority(const TransferPriority prio)
void setSoftwareVersion(const protocol::SoftwareVersion &version)
void setMode(uint8_t code)
bool isNodeInfoInitialized() const
void startPeriodic(MonotonicDuration period)
int startAndPublish(const TransferPriority priority=TransferPriority::Default)
void handleGetNodeInfoRequest(const protocol::GetNodeInfo::Request &, protocol::GetNodeInfo::Response &rsp)
const MonotonicTime creation_timestamp_
uavcan::MonotonicDuration getStatusPublicationPeriod() const
void setTxTimeout(MonotonicDuration tx_timeout)
#define UAVCAN_TRACE(...)
protocol::GetNodeInfo::Response node_info_
void toString(char buf[StringBufSize]) const
Prints time in seconds with microsecond resolution.
Publisher< protocol::NodeStatus > node_status_pub_
UAVCAN_EXPORT const T & max(const T &a, const T &b)
virtual void registerInternalFailure(const char *msg)=0
void setVendorSpecificStatusCode(VendorSpecificStatusCode code)
MethodBinder< NodeStatusProvider *, void(NodeStatusProvider::*)(const protocol::GetNodeInfo::Request &, protocol::GetNodeInfo::Response &)> GetNodeInfoCallback
virtual void updateNodeStatus()=0
void setHardwareVersion(const protocol::HardwareVersion &version)
static MonotonicDuration fromUSec(int64_t us)
StorageType< typename protocol::NodeStatus::FieldTypes::vendor_specific_status_code >::Type VendorSpecificStatusCode
UAVCAN_EXPORT const T & min(const T &a, const T &b)
void setHealth(uint8_t code)
virtual void handleTimerEvent(const TimerEvent &)
static MonotonicDuration fromMSec(int64_t ms)
ServiceServer< protocol::GetNodeInfo, GetNodeInfoCallback > gni_srv_
IAdHocNodeStatusUpdater * ad_hoc_status_updater_
void setAdHocNodeStatusUpdater(IAdHocNodeStatusUpdater *updater)
MonotonicTime getMonotonicTime() const
void setName(const NodeName &name)
MonotonicDuration getPeriod() const
int broadcast(const DataType &message)