diagnostics_publisher.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 #include <boost/optional.hpp>
6 
9 #include <ros/node_handle.h>
10 #include <ros/timer.h>
11 
12 #include <ixblue_stdbin_decoder/data_models/navigation_data/ins_algorithm_status.h>
13 #include <ixblue_stdbin_decoder/data_models/navigation_data/ins_system_status.h>
14 
16 {
17 public:
19  void setHardwareID(const std::string& hwId);
20  void stdImuTick(const ros::Time& stamp);
21  void updateStatus(
22  const boost::optional<ixblue_stdbin_decoder::Data::INSSystemStatus>& systemStatus,
23  const boost::optional<ixblue_stdbin_decoder::Data::INSAlgorithmStatus>&
24  algorithmStatus);
25 
26 private:
29 
30  // Parameters
32  const double frequency_tolerance = 0.1;
33  double max_latency;
35 
38  std::unique_ptr<diagnostic_updater::TopicDiagnostic> stdImuTopicDiagnostic;
40  boost::optional<ixblue_stdbin_decoder::Data::INSSystemStatus> lastSystemStatus;
41  boost::optional<ixblue_stdbin_decoder::Data::INSAlgorithmStatus> lastAlgorithmStatus;
42 };
DiagnosticsPublisher::updateStatus
void updateStatus(const boost::optional< ixblue_stdbin_decoder::Data::INSSystemStatus > &systemStatus, const boost::optional< ixblue_stdbin_decoder::Data::INSAlgorithmStatus > &algorithmStatus)
Definition: diagnostics_publisher.cpp:34
DiagnosticsPublisher::DiagnosticsPublisher
DiagnosticsPublisher(ros::NodeHandle &nh)
Definition: diagnostics_publisher.cpp:3
DiagnosticsPublisher::frequency_tolerance
const double frequency_tolerance
Definition: diagnostics_publisher.h:32
node_handle.h
DiagnosticsPublisher::diagnosticsUpdater
diagnostic_updater::Updater diagnosticsUpdater
Definition: diagnostics_publisher.h:37
DiagnosticsPublisher::lastMessageReceivedStamp
ros::SteadyTime lastMessageReceivedStamp
Definition: diagnostics_publisher.h:39
DiagnosticsPublisher::setHardwareID
void setHardwareID(const std::string &hwId)
Definition: diagnostics_publisher.cpp:24
DiagnosticsPublisher::diagnosticsTimer
ros::Timer diagnosticsTimer
Definition: diagnostics_publisher.h:36
diagnostic_updater::Updater
DiagnosticsPublisher::expected_frequency
double expected_frequency
Definition: diagnostics_publisher.h:31
DiagnosticsPublisher::connection_lost_timeout
double connection_lost_timeout
Definition: diagnostics_publisher.h:34
DiagnosticsPublisher::lastAlgorithmStatus
boost::optional< ixblue_stdbin_decoder::Data::INSAlgorithmStatus > lastAlgorithmStatus
Definition: diagnostics_publisher.h:41
publisher.h
diagnostic_updater.h
DiagnosticsPublisher::stdImuTick
void stdImuTick(const ros::Time &stamp)
Definition: diagnostics_publisher.cpp:29
ros::SteadyTime
DiagnosticsPublisher
Definition: diagnostics_publisher.h:15
ros::TimerEvent
DiagnosticsPublisher::stdImuTopicDiagnostic
std::unique_ptr< diagnostic_updater::TopicDiagnostic > stdImuTopicDiagnostic
Definition: diagnostics_publisher.h:38
timer.h
DiagnosticsPublisher::lastSystemStatus
boost::optional< ixblue_stdbin_decoder::Data::INSSystemStatus > lastSystemStatus
Definition: diagnostics_publisher.h:40
ros::Time
DiagnosticsPublisher::produceStatusDiagnostics
void produceStatusDiagnostics(diagnostic_updater::DiagnosticStatusWrapper &status)
Definition: diagnostics_publisher.cpp:49
DiagnosticsPublisher::max_latency
double max_latency
Definition: diagnostics_publisher.h:33
diagnostic_updater::DiagnosticStatusWrapper
DiagnosticsPublisher::diagTimerCallback
void diagTimerCallback(const ros::TimerEvent &)
Definition: diagnostics_publisher.cpp:44
ros::Timer
ros::NodeHandle


ixblue_ins_driver
Author(s): Adrien BARRAL , Laure LE BRETON
autogenerated on Wed Mar 2 2022 00:24:28