#include "./include/mainwindow.h" std::shared_ptr node = nullptr; rclcpp::Publisher::SharedPtr publisher_; rclcpp::Subscription::SharedPtr subscriber_; //========================================================================= MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) // ui(new Ui::MainWindow) { QWidget *zoneCentrale = new QWidget; setCentralWidget(zoneCentrale); //--------------------------------------------------------------------- m_bout_publish = new QPushButton("publish"); //--------------------------------------------------------------------- m_layout = new QGridLayout(); m_layout->addWidget(m_bout_publish,0,0); zoneCentrale->setLayout(m_layout); //--------------------------------------------------------------------- timer_chrono = new QTimer(); //--------------------------------------------------------------------- connect( timer_chrono, SIGNAL(timeout()), this, SLOT(onTimer_Tick())); connect( m_bout_publish, SIGNAL(clicked()), this, SLOT(onButton_Publish())); node = std::make_shared("qt_cpp_node"); publisher_ = node->create_publisher("qt_cpp_topic_send", 10); subscriber_ = node->create_subscription( "qt_cpp_topic_rec", 10,std::bind(&MainWindow::topic_callback, this, std::placeholders::_1)); timer_chrono -> start(5); // 5 ms } //========================================================================= void MainWindow::topic_callback(const std_msgs::msg::String::SharedPtr msg) { RCLCPP_INFO(node->get_logger(), "I heard: '%s'", msg->data.c_str()); } //========================================================================= void MainWindow::onTimer_Tick() { rclcpp::spin_some(node); } //========================================================================= void MainWindow::onButton_Publish() { static int count_(0); auto message = std_msgs::msg::String(); message.data = "Hello, world! " + std::to_string(count_++); RCLCPP_INFO(node->get_logger(), "Publishing: '%s'", message.data.c_str()); publisher_->publish(message); } //========================================================================= MainWindow::~MainWindow() { //delete ui; } //=========================================================================