From b90c4ed1ad441414013af71a8c8c1b3aec1df2ae Mon Sep 17 00:00:00 2001 From: Hoop77 <p.badenhoop@gmx.de> Date: Mon, 12 Feb 2018 18:14:58 +0100 Subject: [PATCH] - --- modules/catkin_ws/src/car/CMakeLists.txt | 2 + .../car/include/mainNode/PlatoonController.h | 1 + .../src/car/include/mainNode/mainNode.h | 16 +++++++- .../car/src/mainNode/PlatoonController.cpp | 11 +++++ .../src/car/src/mainNode/mainNode.cpp | 40 ++++++++++++------- 5 files changed, 54 insertions(+), 16 deletions(-) diff --git a/modules/catkin_ws/src/car/CMakeLists.txt b/modules/catkin_ws/src/car/CMakeLists.txt index 1521b22e..2a033a1d 100644 --- a/modules/catkin_ws/src/car/CMakeLists.txt +++ b/modules/catkin_ws/src/car/CMakeLists.txt @@ -78,6 +78,8 @@ set(MAIN_NODE_SOURCE_FILES src/mainNode/mainNode.cpp include/mainNode/mainNode.h include/mainNode/PlatoonController.h src/mainNode/PlatoonController.cpp) +message(MAIN_NODE_SOURCE_FILES) + find_package(catkin REQUIRED COMPONENTS roscpp rospy diff --git a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h index 703c9513..09916fe0 100644 --- a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h +++ b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h @@ -11,6 +11,7 @@ namespace car class PlatoonController { public: + void run(); private: }; diff --git a/modules/catkin_ws/src/car/include/mainNode/mainNode.h b/modules/catkin_ws/src/car/include/mainNode/mainNode.h index bf1157b6..34071ea8 100644 --- a/modules/catkin_ws/src/car/include/mainNode/mainNode.h +++ b/modules/catkin_ws/src/car/include/mainNode/mainNode.h @@ -6,7 +6,8 @@ #include "boost/thread.hpp" #include "car/environmentDataMsg.h" #include "NotifiableThread.h" -#include "../../../../../Communication/NetworkingLib/include/Networking.h" +//#include "../../../../../Communication/NetworkingLib/include/Networking.h" +#include "PlatoonController.h" namespace car { @@ -22,12 +23,25 @@ public: ~MainNode(); private: + std::function<void()> platoonControllerNotify = + [this] + { platoonControllerThread.notify(); }; + + NotifiableThread::Callback platoonControllerRun = + [this] + { platoonController.run(); }; + ros::NodeHandle nh; std::string name; boost::thread loggerModule; ros::Publisher logEnabled; ros::Subscriber environmentData; + //Networking platoonProtocolThread; + NotifiableThread platoonControllerThread; + + PlatoonController platoonController; + void environmentDataCallback(const environmentDataMsg::ConstPtr & inMsg); }; } diff --git a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp index 5a3dbccf..fcb44c3c 100644 --- a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp +++ b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp @@ -2,3 +2,14 @@ // Created by philipp on 12.02.18. // +#include "../../include/mainNode/PlatoonController.h" + +namespace car +{ + +void car::PlatoonController::run() +{ + // TODO: implementation +} + +} diff --git a/modules/catkin_ws/src/car/src/mainNode/mainNode.cpp b/modules/catkin_ws/src/car/src/mainNode/mainNode.cpp index 3c22e498..8bef4824 100644 --- a/modules/catkin_ws/src/car/src/mainNode/mainNode.cpp +++ b/modules/catkin_ws/src/car/src/mainNode/mainNode.cpp @@ -16,23 +16,33 @@ PLUGINLIB_EXPORT_CLASS(car::MainNode, nodelet::Nodelet); namespace car { - MainNode::MainNode(ros::NodeHandle &nh, std::string &name) : nh(nh), name(name) {} - MainNode::MainNode() {} - MainNode::~MainNode() {} - void MainNode::onInit() - { - NODELET_INFO("MainNode::onInit -- START"); - logEnabled = nh.advertise<logEnabledMsg>("logEnabled", 5); - environmentData = nh.subscribe("environmentData", 1, &MainNode::environmentDataCallback, this); +MainNode::MainNode(ros::NodeHandle & nh, std::string & name) + : nh(nh) + , name(name) + , platoonControllerThread(platoonControllerRun) +{} + +MainNode::MainNode() + : platoonControllerThread(platoonControllerRun) +{} + +MainNode::~MainNode() +{} + +void MainNode::onInit() +{ + NODELET_INFO("MainNode::onInit -- START"); + logEnabled = nh.advertise<logEnabledMsg>("logEnabled", 5); + environmentData = nh.subscribe("environmentData", 1, &MainNode::environmentDataCallback, this); std::cout << "MainNode &nh: " << &nh << "\n"; + // CODE GOES HERE - // CODE GOES HERE - NODELET_INFO("MainNode::onInit -- END"); - } - - void MainNode::environmentDataCallback(const environmentDataMsg::ConstPtr& inMsg) - { + NODELET_INFO("MainNode::onInit -- END"); +} + +void MainNode::environmentDataCallback(const environmentDataMsg::ConstPtr & inMsg) +{ std::cout << "MainNode recived new environmentData data (" << inMsg->distance << ", " << inMsg->prevSpeed << ").\n"; - } +} } -- GitLab