From 8f733b5ea1c731f94771e8b8ff5cc12862d110e9 Mon Sep 17 00:00:00 2001
From: Franz Bethke <bethke@math.hu-berlin.de>
Date: Mon, 12 Feb 2018 14:30:35 +0100
Subject: [PATCH] Add nodlet for camera

---
 modules/catkin_ws/src/car/CMakeLists.txt              |  6 ++++++
 .../src/car/include/environment/environment.h         |  3 +++
 modules/catkin_ws/src/car/launch/fullstart.launch     |  1 +
 modules/catkin_ws/src/car/plugins/nodelet_plugins.xml | 10 ++++++++++
 .../catkin_ws/src/car/src/environment/environment.cpp | 11 ++++++++---
 5 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/modules/catkin_ws/src/car/CMakeLists.txt b/modules/catkin_ws/src/car/CMakeLists.txt
index 4bdfad45..5633fb5e 100644
--- a/modules/catkin_ws/src/car/CMakeLists.txt
+++ b/modules/catkin_ws/src/car/CMakeLists.txt
@@ -33,6 +33,7 @@ catkin_package(
   LIBRARIES main_node
   LIBRARIES environment
   LIBRARIES ultrasonic
+  LIBRARIES camera
   CATKIN_DEPENDS roscpp std_msgs nodelet rospy #message_runtime
 )
 
@@ -53,11 +54,16 @@ add_library(ultrasonic src/ultrasonic/ultrasonic.cpp)
 add_dependencies(ultrasonic ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
 target_link_libraries(ultrasonic ${catkin_LIBRARIES})
 
+add_library(camera src/camera/camera.cpp)
+add_dependencies(camera ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
+target_link_libraries(camera ${catkin_LIBRARIES})
+
 install(
   TARGETS
     main_node
     environment
     ultrasonic
+    camera
   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
diff --git a/modules/catkin_ws/src/car/include/environment/environment.h b/modules/catkin_ws/src/car/include/environment/environment.h
index 29d948e0..58e7ab68 100644
--- a/modules/catkin_ws/src/car/include/environment/environment.h
+++ b/modules/catkin_ws/src/car/include/environment/environment.h
@@ -3,7 +3,9 @@
 
 #include <nodelet/nodelet.h>
 #include <ros/ros.h>
+
 #include "car/ussDataMsg.h"
+#include "car/camDataMsg.h"
 
 namespace car
 {
@@ -27,6 +29,7 @@ namespace car
 
       
       void ussDataCallback(const ussDataMsg::ConstPtr& inMsg);
+      void camDataCallback(const camDataMsg::ConstPtr& inMsg);
 	};
 }
 #endif
diff --git a/modules/catkin_ws/src/car/launch/fullstart.launch b/modules/catkin_ws/src/car/launch/fullstart.launch
index ec74c6bc..a0971bf8 100644
--- a/modules/catkin_ws/src/car/launch/fullstart.launch
+++ b/modules/catkin_ws/src/car/launch/fullstart.launch
@@ -6,6 +6,7 @@
   <node pkg="nodelet" type="nodelet" name="nodelet_main_node" args="load car/main_node Master"/>
   <node pkg="nodelet" type="nodelet" name="nodelet_environment" args="load car/environment Master"/>
   <node pkg="nodelet" type="nodelet" name="nodelet_ultrasonic" args="load car/ultrasonic Master"/>
+  <node pkg="nodelet" type="nodelet" name="nodelet_camera" args="load car/camera Master"/>
 </launch>
 
 <!--
diff --git a/modules/catkin_ws/src/car/plugins/nodelet_plugins.xml b/modules/catkin_ws/src/car/plugins/nodelet_plugins.xml
index 0767fe03..38af8257 100644
--- a/modules/catkin_ws/src/car/plugins/nodelet_plugins.xml
+++ b/modules/catkin_ws/src/car/plugins/nodelet_plugins.xml
@@ -33,3 +33,13 @@
   </description>
   </class>
 </library>
+
+<library path="lib/libcamera">
+  <class name="car/camera"
+	 type="car::Camera"
+	 base_class_type="nodelet::Nodelet">
+  <description>
+    Missing
+  </description>
+  </class>
+</library>
diff --git a/modules/catkin_ws/src/car/src/environment/environment.cpp b/modules/catkin_ws/src/car/src/environment/environment.cpp
index 63934b43..b1b7e684 100644
--- a/modules/catkin_ws/src/car/src/environment/environment.cpp
+++ b/modules/catkin_ws/src/car/src/environment/environment.cpp
@@ -26,9 +26,7 @@ namespace car
 		NODELET_INFO("Environment::onInit -- START");
 	  environmentData = nh_.advertise<environmentDataMsg>("environmentData", 1);
 	  ussData = nh_.subscribe("ussData", 1, &Environment::ussDataCallback, this);
-
-
-    		// CODE GOES HERE
+	  camData = nh_.subscribe("camData", 1, &Environment::camDataCallback, this);
 		NODELET_INFO("Environment::onInit -- END");
 	}
 
@@ -44,4 +42,11 @@ namespace car
     
     environmentData.publish(outMsg);
   }
+
+  void Environment::camDataCallback(const camDataMsg::ConstPtr& inMsg)
+  {
+    std::cout << "Environment recived new cam data ( ).\n";
+  }
+  
+  
 }
-- 
GitLab