#include "test_topic/minSubscriber.h" MinSubscriber::MinSubscriber(int argc, char **argv): MinHandler(argc, argv, "serial_sender") { } bool MinSubscriber::node_init(void) { std::string port, topic; int baud = 115200; ros::param::param("~port", port, "/dev/ttyACM0"); ros::param::param("~baud", baud, 57600); ros::param::param("~topic", topic, "test_topic"); ROS_INFO("will listen '%s' tiopic", topic.c_str()); _sub = _node->subscribe(topic, 200, boost::bind(&MinSubscriber::callback, this, _1)); if (!_serial.open(port, baud, 1, 8, 'N')) { ROS_ERROR("open serial '%s' failed!", port.c_str()); return false; } return true; } MinSubscriber::~MinSubscriber() { _serial.close(); } void MinSubscriber::callback(const boost::shared_ptr &msg) { ROS_INFO("I heard: [%s]", msg->data.c_str()); _serial.send(msg->data.c_str(), strlen(msg->data.c_str())); } int main(int argc, char *argv[]) { MinSubscriber *nh = new MinSubscriber(argc, argv); nh->run(4); free(nh); return 0; }