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