Common
common packages for kyubic
 
Loading...
Searching...
No Matches
system_status.hpp
Go to the documentation of this file.
1
10#ifndef _SYSTEM_STATUS_HPP
11#define _SYSTEM_STATUS_HPP
12
13#include <cstdint>
14#include <driver_msgs/msg/system_status.hpp>
15#include <mutex>
16#include <proto_files/conversion_driver_msgs__SystemStatus.hpp>
17#include <protolink/client.hpp>
18#include <rclcpp/rclcpp.hpp>
19#include <timer/timeout.hpp>
20
22{
26class SystemStatus : public rclcpp::Node
27{
28public:
29 explicit SystemStatus(const rclcpp::NodeOptions & options);
30
31private:
32 // Network settings
33 uint16_t sub_port;
34 uint64_t timeout_ms;
35
36 protolink::IoContext io_context_;
37 std::shared_ptr<boost::asio::ip::udp::socket> sock_;
38 std::shared_ptr<timer::Timeout> timeout_;
39 std::mutex mutex_;
40
41 using ProtoSystemStatus = protolink__driver_msgs__SystemStatus::driver_msgs__SystemStatus;
42 std::shared_ptr<protolink::udp_protocol::Subscriber<ProtoSystemStatus>> protolink_subscriber_;
43
44 rclcpp::Publisher<driver_msgs::msg::SystemStatus>::SharedPtr pub_;
45 rclcpp::TimerBase::SharedPtr timer_;
46
47 void protolink_callback(const ProtoSystemStatus & _msg);
48};
49
50} // namespace driver::sensors_esp32_driver
51
52#endif
System Status class.
Definition: system_status.hpp:27
driver for sensors_esp32
timeout library