rm_controllers
Loading...
Searching...
No Matches
gpio_controller.h
Go to the documentation of this file.
1//
2// Created by myx on 2022/4/29.
3//
4
5#pragma once
6
7#include <controller_interface/controller.h>
8#include <controller_interface/multi_interface_controller.h>
9#include <realtime_tools/realtime_publisher.h>
10#include <rm_common/hardware_interface/gpio_interface.h>
11#include <rm_msgs/GpioData.h>
12
14{
15class Controller : public controller_interface::MultiInterfaceController<rm_control::GpioStateInterface,
16 rm_control::GpioCommandInterface>
17{
18public:
19 Controller() = default;
20
21 bool init(hardware_interface::RobotHW* robot_hw, ros::NodeHandle& root_nh, ros::NodeHandle& controller_nh) override;
22
23 void update(const ros::Time& time, const ros::Duration& period) override;
24
25private:
26 void setGpioCmd(const rm_msgs::GpioDataConstPtr& msg);
27
28 std::vector<rm_control::GpioStateHandle> gpio_state_handles_;
29 std::vector<rm_control::GpioCommandHandle> gpio_command_handles_;
30
31 ros::Subscriber cmd_subscriber_;
32 typedef std::shared_ptr<realtime_tools::RealtimePublisher<rm_msgs::GpioData>> RtpublisherPtr;
33 RtpublisherPtr gpio_state_pub_;
34};
35} // namespace gpio_controller
Definition gpio_controller.h:17
void update(const ros::Time &time, const ros::Duration &period) override
Definition gpio_controller.cpp:50
bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh) override
Definition gpio_controller.cpp:11
Definition gpio_controller.h:14