Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
uavcan::NodeStatusProvider Class Reference

#include <node_status_provider.hpp>

Inheritance diagram for uavcan::NodeStatusProvider:
Inheritance graph
[legend]

Public Types

typedef StorageType< typename protocol::GetNodeInfo::Response::FieldTypes::name >::Type NodeName
 
typedef StorageType< typename protocol::NodeStatus::FieldTypes::vendor_specific_status_code >::Type VendorSpecificStatusCode
 

Public Member Functions

int forcePublish ()
 
IAdHocNodeStatusUpdatergetAdHocNodeStatusUpdater () const
 
const protocol::HardwareVersion & getHardwareVersion () const
 
uint8_t getHealth () const
 
uint8_t getMode () const
 
const NodeNamegetName () const
 
const protocol::SoftwareVersion & getSoftwareVersion () const
 
uavcan::MonotonicDuration getStatusPublicationPeriod () const
 
VendorSpecificStatusCode getVendorSpecificStatusCode () const
 
 NodeStatusProvider (INode &node)
 
void setAdHocNodeStatusUpdater (IAdHocNodeStatusUpdater *updater)
 
void setHardwareVersion (const protocol::HardwareVersion &version)
 
void setHealth (uint8_t code)
 
void setHealthCritical ()
 
void setHealthError ()
 
void setHealthOk ()
 
void setHealthWarning ()
 
void setMode (uint8_t code)
 
void setModeInitialization ()
 
void setModeMaintenance ()
 
void setModeOffline ()
 
void setModeOperational ()
 
void setModeSoftwareUpdate ()
 
void setName (const NodeName &name)
 
void setSoftwareVersion (const protocol::SoftwareVersion &version)
 
void setStatusPublicationPeriod (uavcan::MonotonicDuration period)
 
void setVendorSpecificStatusCode (VendorSpecificStatusCode code)
 
int startAndPublish (const TransferPriority priority=TransferPriority::Default)
 

Private Types

typedef MethodBinder< NodeStatusProvider *, void(NodeStatusProvider::*)(const protocol::GetNodeInfo::Request &, protocol::GetNodeInfo::Response &)> GetNodeInfoCallback
 

Private Member Functions

INodegetNode ()
 
void handleGetNodeInfoRequest (const protocol::GetNodeInfo::Request &, protocol::GetNodeInfo::Response &rsp)
 
virtual void handleTimerEvent (const TimerEvent &)
 
bool isNodeInfoInitialized () const
 
int publish ()
 
- Private Member Functions inherited from uavcan::TimerBase
MonotonicTime getDeadline () const
 
MonotonicDuration getPeriod () const
 
SchedulergetScheduler () const
 
bool isRunning () const
 
void startOneShotWithDeadline (MonotonicTime deadline)
 
void startOneShotWithDelay (MonotonicDuration delay)
 
void startPeriodic (MonotonicDuration period)
 
void stop ()
 
 TimerBase (INode &node)
 

Private Attributes

IAdHocNodeStatusUpdaterad_hoc_status_updater_
 
const MonotonicTime creation_timestamp_
 
ServiceServer< protocol::GetNodeInfo, GetNodeInfoCallbackgni_srv_
 
protocol::GetNodeInfo::Response node_info_
 
Publisher< protocol::NodeStatus > node_status_pub_
 

Detailed Description

Provides the status and basic information about this node to other network participants.

Usually the application does not need to deal with this class directly - it's instantiated by the node class.

Default values:

Definition at line 51 of file node_status_provider.hpp.

Member Typedef Documentation

◆ GetNodeInfoCallback

typedef MethodBinder<NodeStatusProvider*, void (NodeStatusProvider::*)(const protocol::GetNodeInfo::Request&, protocol::GetNodeInfo::Response&)> uavcan::NodeStatusProvider::GetNodeInfoCallback
private

Definition at line 55 of file node_status_provider.hpp.

◆ NodeName

typedef StorageType<typename protocol::GetNodeInfo::Response::FieldTypes::name>::Type uavcan::NodeStatusProvider::NodeName

Definition at line 79 of file node_status_provider.hpp.

◆ VendorSpecificStatusCode

typedef StorageType<typename protocol::NodeStatus::FieldTypes::vendor_specific_status_code>::Type uavcan::NodeStatusProvider::VendorSpecificStatusCode

Definition at line 77 of file node_status_provider.hpp.

Constructor & Destructor Documentation

◆ NodeStatusProvider()

uavcan::NodeStatusProvider::NodeStatusProvider ( INode node)
inlineexplicit

Definition at line 81 of file node_status_provider.hpp.

Member Function Documentation

◆ forcePublish()

int uavcan::NodeStatusProvider::forcePublish ( )
inline

Publish the message uavcan.protocol.NodeStatus right now, out of schedule. Returns negative error code.

Definition at line 105 of file node_status_provider.hpp.

◆ getAdHocNodeStatusUpdater()

IAdHocNodeStatusUpdater* uavcan::NodeStatusProvider::getAdHocNodeStatusUpdater ( ) const
inline

Definition at line 122 of file node_status_provider.hpp.

◆ getHardwareVersion()

const protocol::HardwareVersion& uavcan::NodeStatusProvider::getHardwareVersion ( ) const
inline

Definition at line 167 of file node_status_provider.hpp.

◆ getHealth()

uint8_t uavcan::NodeStatusProvider::getHealth ( ) const
inline

Local node health code control.

Definition at line 127 of file node_status_provider.hpp.

◆ getMode()

uint8_t uavcan::NodeStatusProvider::getMode ( ) const
inline

Local node mode code control.

Definition at line 137 of file node_status_provider.hpp.

◆ getName()

const NodeName& uavcan::NodeStatusProvider::getName ( ) const
inline

Local node name control. Can be set only once before the provider is started. The provider will refuse to start if the node name is not set.

Definition at line 159 of file node_status_provider.hpp.

◆ getNode()

INode& uavcan::NodeStatusProvider::getNode ( )
inlineprivate

Definition at line 66 of file node_status_provider.hpp.

◆ getSoftwareVersion()

const protocol::SoftwareVersion& uavcan::NodeStatusProvider::getSoftwareVersion ( ) const
inline

Node version information. Can be set only once before the provider is started.

Definition at line 166 of file node_status_provider.hpp.

◆ getStatusPublicationPeriod()

uavcan::MonotonicDuration uavcan::NodeStatusProvider::getStatusPublicationPeriod ( ) const

Definition at line 112 of file uc_node_status_provider.cpp.

◆ getVendorSpecificStatusCode()

VendorSpecificStatusCode uavcan::NodeStatusProvider::getVendorSpecificStatusCode ( ) const
inline

Definition at line 149 of file node_status_provider.hpp.

◆ handleGetNodeInfoRequest()

void uavcan::NodeStatusProvider::handleGetNodeInfoRequest ( const protocol::GetNodeInfo::Request &  ,
protocol::GetNodeInfo::Response &  rsp 
)
private

Definition at line 50 of file uc_node_status_provider.cpp.

◆ handleTimerEvent()

void uavcan::NodeStatusProvider::handleTimerEvent ( const TimerEvent event)
privatevirtual

Implement this method in your class to receive callbacks.

Implements uavcan::TimerBase.

Definition at line 29 of file uc_node_status_provider.cpp.

◆ isNodeInfoInitialized()

bool uavcan::NodeStatusProvider::isNodeInfoInitialized ( ) const
private

Definition at line 12 of file uc_node_status_provider.cpp.

◆ publish()

int uavcan::NodeStatusProvider::publish ( )
private

Definition at line 18 of file uc_node_status_provider.cpp.

◆ setAdHocNodeStatusUpdater()

void uavcan::NodeStatusProvider::setAdHocNodeStatusUpdater ( IAdHocNodeStatusUpdater updater)

Configure the optional handler that is invoked before every node status message is emitted. By default no handler is installed. It is allowed to pass a null pointer, that will disable the ad-hoc update feature. IAdHocNodeStatusUpdater

Definition at line 117 of file uc_node_status_provider.cpp.

◆ setHardwareVersion()

void uavcan::NodeStatusProvider::setHardwareVersion ( const protocol::HardwareVersion &  version)

Definition at line 153 of file uc_node_status_provider.cpp.

◆ setHealth()

void uavcan::NodeStatusProvider::setHealth ( uint8_t  code)

Definition at line 122 of file uc_node_status_provider.cpp.

◆ setHealthCritical()

void uavcan::NodeStatusProvider::setHealthCritical ( )
inline

Definition at line 132 of file node_status_provider.hpp.

◆ setHealthError()

void uavcan::NodeStatusProvider::setHealthError ( )
inline

Definition at line 131 of file node_status_provider.hpp.

◆ setHealthOk()

void uavcan::NodeStatusProvider::setHealthOk ( )
inline

Definition at line 129 of file node_status_provider.hpp.

◆ setHealthWarning()

void uavcan::NodeStatusProvider::setHealthWarning ( )
inline

Definition at line 130 of file node_status_provider.hpp.

◆ setMode()

void uavcan::NodeStatusProvider::setMode ( uint8_t  code)

Definition at line 127 of file uc_node_status_provider.cpp.

◆ setModeInitialization()

void uavcan::NodeStatusProvider::setModeInitialization ( )
inline

Definition at line 140 of file node_status_provider.hpp.

◆ setModeMaintenance()

void uavcan::NodeStatusProvider::setModeMaintenance ( )
inline

Definition at line 141 of file node_status_provider.hpp.

◆ setModeOffline()

void uavcan::NodeStatusProvider::setModeOffline ( )
inline

Definition at line 143 of file node_status_provider.hpp.

◆ setModeOperational()

void uavcan::NodeStatusProvider::setModeOperational ( )
inline

Definition at line 139 of file node_status_provider.hpp.

◆ setModeSoftwareUpdate()

void uavcan::NodeStatusProvider::setModeSoftwareUpdate ( )
inline

Definition at line 142 of file node_status_provider.hpp.

◆ setName()

void uavcan::NodeStatusProvider::setName ( const NodeName name)

Definition at line 137 of file uc_node_status_provider.cpp.

◆ setSoftwareVersion()

void uavcan::NodeStatusProvider::setSoftwareVersion ( const protocol::SoftwareVersion &  version)

Definition at line 145 of file uc_node_status_provider.cpp.

◆ setStatusPublicationPeriod()

void uavcan::NodeStatusProvider::setStatusPublicationPeriod ( uavcan::MonotonicDuration  period)

Allows to override default publishing rate for uavcan.protocol.NodeStatus. Refer to the DSDL definition of uavcan.protocol.NodeStatus to see what is the default rate. Doesn't fail; if the value is outside of acceptable range, a closest valid value will be used instead.

Definition at line 96 of file uc_node_status_provider.cpp.

◆ setVendorSpecificStatusCode()

void uavcan::NodeStatusProvider::setVendorSpecificStatusCode ( VendorSpecificStatusCode  code)

Local node vendor-specific status code control.

Definition at line 132 of file uc_node_status_provider.cpp.

◆ startAndPublish()

int uavcan::NodeStatusProvider::startAndPublish ( const TransferPriority  priority = TransferPriority::Default)

Starts the provider and immediately broadcasts uavcan.protocol.NodeStatus. Returns negative error code.

Definition at line 58 of file uc_node_status_provider.cpp.

Member Data Documentation

◆ ad_hoc_status_updater_

IAdHocNodeStatusUpdater* uavcan::NodeStatusProvider::ad_hoc_status_updater_
private

Definition at line 64 of file node_status_provider.hpp.

◆ creation_timestamp_

const MonotonicTime uavcan::NodeStatusProvider::creation_timestamp_
private

Definition at line 57 of file node_status_provider.hpp.

◆ gni_srv_

ServiceServer<protocol::GetNodeInfo, GetNodeInfoCallback> uavcan::NodeStatusProvider::gni_srv_
private

Definition at line 60 of file node_status_provider.hpp.

◆ node_info_

protocol::GetNodeInfo::Response uavcan::NodeStatusProvider::node_info_
private

Definition at line 62 of file node_status_provider.hpp.

◆ node_status_pub_

Publisher<protocol::NodeStatus> uavcan::NodeStatusProvider::node_status_pub_
private

Definition at line 59 of file node_status_provider.hpp.


The documentation for this class was generated from the following files:


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:05