From f25e4a59fb847b1ca459370a8ee8eda1272d121a Mon Sep 17 00:00:00 2001 From: jvongehr <joel-jerome.vongehr@stud.hs-bochum.de> Date: Mon, 30 Aug 2021 11:56:54 +0200 Subject: [PATCH] added msg type img; poc for receiving msgs & drawing --- CMakeLists.txt | 16 ++++++++++++++-- msg/img.msg | 4 ++++ src/turtlesim_xl.cpp | 26 ++++++++++++++++++++++---- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 msg/img.msg diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dda4a2..51cf1db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,17 @@ cmake_minimum_required(VERSION 3.0.2) project(turtlesim_xl) -find_package(catkin REQUIRED COMPONENTS geometry_msgs message_generation rosconsole roscpp roscpp_serialization roslib rostime std_msgs std_srvs) +find_package(catkin REQUIRED COMPONENTS + geometry_msgs + message_generation + rosconsole + roscpp + roscpp_serialization + roslib + rostime + std_msgs + std_srvs +) find_package(Qt5Widgets REQUIRED) find_package(Boost REQUIRED COMPONENTS thread) @@ -10,13 +20,15 @@ include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) link_directories(${catkin_LIBRARY_DIRS}) add_message_files(DIRECTORY msg FILES - Color.msg Pose.msg) + Color.msg Pose.msg img.msg) + add_service_files(DIRECTORY srv FILES Kill.srv SetPen.srv Spawn.srv TeleportAbsolute.srv TeleportRelative.srv) + generate_messages(DEPENDENCIES geometry_msgs std_msgs std_srvs) catkin_package(CATKIN_DEPENDS geometry_msgs message_runtime std_msgs std_srvs) diff --git a/msg/img.msg b/msg/img.msg new file mode 100644 index 0000000..02795b4 --- /dev/null +++ b/msg/img.msg @@ -0,0 +1,4 @@ +int64 x +int64 y +# uint64[] img +string imgPath \ No newline at end of file diff --git a/src/turtlesim_xl.cpp b/src/turtlesim_xl.cpp index 14f1623..584f20d 100644 --- a/src/turtlesim_xl.cpp +++ b/src/turtlesim_xl.cpp @@ -32,9 +32,13 @@ #include <ros/ros.h> #include "turtlesim/turtle_frame.h" +#include <turtlesim_xl/img.h> class TurtleApp : public QApplication { + turtlesim_xl::img shapeData; + ros::Subscriber shapeSub; + turtlesim::TurtleFrame* frame; public: ros::NodeHandlePtr nh_; @@ -42,18 +46,32 @@ public: : QApplication(argc, argv) { ros::init(argc, argv, "turtlesim", ros::init_options::NoSigintHandler); + ros::NodeHandle n; nh_.reset(new ros::NodeHandle); + // turtlesim::TurtleFrame fr; + // frame = &fr; + frame = new turtlesim::TurtleFrame(); + + shapeSub = n.subscribe("/shapeData", 10, &TurtleApp::updateShape, this); } int exec(std::string shape = "rectangle") { - turtlesim::TurtleFrame frame; - frame.setShape(shape); - frame.drawShape(); - frame.show(); + frame->setShape(shape); + ROS_INFO("Offset before calling draw: x = %d; y = %d", shapeData.x, shapeData.y); + frame->drawShape(); + frame->show(); return QApplication::exec(); } + +private: + void updateShape(turtlesim_xl::img data) { + shapeData = data; + ROS_INFO("NEW SHAPE DATA SAVED"); + frame->setShape("triangle"); + frame->drawShape(); + } }; int main(int argc, char** argv) -- GitLab