5 #ifndef UAVCAN_PROTOCOL_NODE_STATUS_PROVIDER_HPP_INCLUDED 6 #define UAVCAN_PROTOCOL_NODE_STATUS_PROVIDER_HPP_INCLUDED 14 #include <uavcan/protocol/NodeStatus.hpp> 15 #include <uavcan/protocol/GetNodeInfo.hpp> 54 void (NodeStatusProvider::*)(
const protocol::GetNodeInfo::Request&,
68 bool isNodeInfoInitialized()
const;
72 virtual void handleTimerEvent(
const TimerEvent&);
73 void handleGetNodeInfoRequest(
const protocol::GetNodeInfo::Request&, protocol::GetNodeInfo::Response& rsp);
83 , creation_timestamp_(node.getMonotonicTime())
84 , node_status_pub_(node)
90 node_info_.status.mode = protocol::NodeStatus::MODE_INITIALIZATION;
92 node_info_.status.health = protocol::NodeStatus::HEALTH_OK;
129 void setHealthOk() { setHealth(protocol::NodeStatus::HEALTH_OK); }
151 return node_info_.status.vendor_specific_status_code;
159 const NodeName&
getName()
const {
return node_info_.name; }
160 void setName(
const NodeName& name);
168 void setSoftwareVersion(
const protocol::SoftwareVersion& version);
169 void setHardwareVersion(
const protocol::HardwareVersion& version);
174 #endif // UAVCAN_PROTOCOL_NODE_STATUS_PROVIDER_HPP_INCLUDED
const protocol::HardwareVersion & getHardwareVersion() const
StorageType< typename protocol::GetNodeInfo::Response::FieldTypes::name >::Type NodeName
uint8_t getHealth() const
const NodeName & getName() const
IAdHocNodeStatusUpdater * getAdHocNodeStatusUpdater() const
const MonotonicTime creation_timestamp_
void setModeMaintenance()
const protocol::SoftwareVersion & getSoftwareVersion() const
protocol::GetNodeInfo::Response node_info_
virtual ~IAdHocNodeStatusUpdater()
Publisher< protocol::NodeStatus > node_status_pub_
void setModeInitialization()
virtual void updateNodeStatus()=0
NodeStatusProvider(INode &node)
StorageType< typename protocol::NodeStatus::FieldTypes::vendor_specific_status_code >::Type VendorSpecificStatusCode
static const TransferPriority Default
This priority is used by default.
ServiceServer< protocol::GetNodeInfo, GetNodeInfoCallback > gni_srv_
IAdHocNodeStatusUpdater * ad_hoc_status_updater_
VendorSpecificStatusCode getVendorSpecificStatusCode() const
void setModeOperational()
void setModeSoftwareUpdate()