ROVER - Modularization - changes to task contents and locations

Signed-off-by: Mustafa Ozcelikors <mozcelikors@gmail.com>
diff --git a/rover/src/tasks/adaptive_cruise_control_task.cpp b/rover/src/tasks/adaptive_cruise_control_task.cpp
index 440a713..5e0403d 100644
--- a/rover/src/tasks/adaptive_cruise_control_task.cpp
+++ b/rover/src/tasks/adaptive_cruise_control_task.cpp
@@ -9,19 +9,19 @@
  *     FH-Dortmund - initial API and implementation
  *******************************************************************************/
 
-#include "adaptive_cruise_control_task.h"
+#include <tasks/adaptive_cruise_control_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
+#include <roverapp.h>
 #include <softPwm.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
 
 void *Adaptive_Cruise_Control_Task(void * arg)
 {
diff --git a/rover/src/tasks/bluetooth_task.cpp b/rover/src/tasks/bluetooth_task.cpp
index 222251e..a4542a9 100644
--- a/rover/src/tasks/bluetooth_task.cpp
+++ b/rover/src/tasks/bluetooth_task.cpp
@@ -52,23 +52,23 @@
  *
  */
 
-#include "bluetooth_task.h"
+#include <tasks/bluetooth_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
+#include <roverapp.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
 
 #include <sys/socket.h>
-#include "../drivers/bluetooth_drivers/bluetooth.h"
+#include <bluetooth/bluetooth.h>
 /* Important Note: RFCOMM socket type is supported by Android API, so we chose to use it */
-#include "../drivers/bluetooth_drivers/rfcomm.h"
+#include <bluetooth/rfcomm.h>
 
 
 void *Bluetooth_Task (void * arg)
diff --git a/rover/src/tasks/compass_sensor_task.cpp b/rover/src/tasks/compass_sensor_task.cpp
index 0c52fd9..59aa154 100644
--- a/rover/src/tasks/compass_sensor_task.cpp
+++ b/rover/src/tasks/compass_sensor_task.cpp
@@ -19,23 +19,23 @@
  *    22.03.2017 - initial revision
  *
  */
-#include "compass_sensor_task.h"
+#include <tasks/compass_sensor_task.h>
 #include <stdint.h>
 #include <ctime>
 #include <wiringPi.h>
 #include <wiringPiI2C.h>
 #include <unistd.h>
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
-#include "../timing/timing.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 #include <math.h>
 
 #include <fstream>
 #include <iostream>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 #define HMC588L_ADDRESS 0x1E
 #define CALIBRATION_DURATION 10000 //compass calibration has a duration of 5 seconds
diff --git a/rover/src/tasks/cpu_logger_task.cpp b/rover/src/tasks/cpu_logger_task.cpp
index a54f1ea..acdb6e6 100644
--- a/rover/src/tasks/cpu_logger_task.cpp
+++ b/rover/src/tasks/cpu_logger_task.cpp
@@ -6,7 +6,10 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Description:
- *    CPU Utilization Logger Task for Rover / Raspberry Pi
+ *    CPU Utilization Logger Task for Rover / Raspberry Pi - uses external python script
+ *
+ * Note:
+ *    read_core_usage.py must be installed to /opt/read_core_usage.py
  *
  * Authors:
  *    M. Ozcelikors,            R.Hottger
@@ -14,82 +17,89 @@
  *
  */
 
-#include "cpu_logger_task.h"
+#include <tasks/cpu_logger_task.h>
 #include <string.h>
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
+#include <roverapp.h>
 #include <softPwm.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+
+/* Signal header */
+#include <signal.h>
+
+/* Reads a certain file which returns core usage and exits with EX_OK or EX_SOFTWARE */
+float* retrieveCoreUtilization (void)
+{
+	FILE *fp;
+	char buffer[128];
+	float util[5];
+	size_t bytes_read;
+
+	/* Execute the command */
+	fp = popen("python /opt/read_core_usage.py ","r");
+
+	/* Read to buffer */
+	bytes_read = fread(buffer, 1, sizeof(buffer), fp);
+
+	if (bytes_read == 0 || bytes_read == sizeof(buffer))
+		perror("Can't read from /opt/read_core_usage.py");
+
+	buffer[bytes_read] = '\0';
+
+	//printf("buf:%s\n",buffer);
+
+	/* Parse */
+	sscanf(buffer,"[%f, %f, %f, %f]",&util[0], &util[1], &util[2], &util[3]);
+
+	/* Return */
+	return util;
+}
+
+void Cpu_Logger_Task_Terminator (int dummy)
+{
+	running_flag = 0;
+}
 
 void *Cpu_Logger_Task(void * arg)
 {
-	FILE* fileptr;
-	char buf[20];
-	int core_num = 0;
-	double roverUtilCpu[4];
 
 	timing cpu_logger_task_tmr;
 	cpu_logger_task_tmr.setTaskID("CpuTsk");
-	cpu_logger_task_tmr.setDeadline(1);
-	cpu_logger_task_tmr.setPeriod(1);
+	cpu_logger_task_tmr.setDeadline(3);
+	cpu_logger_task_tmr.setPeriod(3);
 
 	CollectThreadName("Cpu_Logger_Task");
 
+	/* Add termination signal handler to properly close fd */
+	signal(SIGINT, Cpu_Logger_Task_Terminator);
+	signal(SIGTERM, Cpu_Logger_Task_Terminator);
+	signal(SIGKILL, Cpu_Logger_Task_Terminator);
 
-	while (1)
+	float *util;
+
+	while (running_flag)
 	{
 		cpu_logger_task_tmr.recordStartTime();
 		cpu_logger_task_tmr.calculatePreviousSlackTime();
 
 		//Task content starts here -----------------------------------------------
 
-		core_num = 0;
-
-		// Read from file
-		fileptr = fopen ("/var/www/html/core_usage_rpi.inc", "r");
-		if (!fileptr)
-		{
-			fprintf(stderr, "Unable to read from file");
-			abort(); //Dump the core
-		}
-		else
-		{
-			// Get the data
-			fgets(buf, 20, fileptr);
-#ifdef DEBUG_CPU_LOGGER
-			printf("buf=%s\n", buf);
-#endif
-			// Parse the read file to get core usage information, Splitting operation with tokens
-			char *token = strtok(buf, ",");
-
-			while (token != NULL && core_num<=4)
-			{
-#ifdef DEBUG_CPU_LOGGER
-				printf("token=%s\n", token);
-#endif
-				sscanf(token, "%lf", &roverUtilCpu[core_num]);
-				token = strtok(NULL, ",");
-				core_num++;
-			}
-
-#ifdef DEBUG_CPU_LOGGER
-			printf("CPU_Util=%f %f %f %f\n",roverUtilCpu[0],roverUtilCpu[1],roverUtilCpu[2],roverUtilCpu[3]);
-#endif
-			// Write it to a shared variable for further usage in the application
-			pthread_mutex_lock(&cpu_util_shared_lock);
-				for (int i = 0; i < 4; i++)
-					cpu_util_shared[i] = roverUtilCpu[i];
-			pthread_mutex_unlock(&cpu_util_shared_lock);
-
-		}
-
+		util = retrieveCoreUtilization();
+		pthread_mutex_lock(&cpu_util_shared_lock);
+			cpu_util_shared[0] = util[0];
+			cpu_util_shared[1] = util[1];
+			cpu_util_shared[2] = util[2];
+			cpu_util_shared[3] = util[3];
+		pthread_mutex_unlock(&cpu_util_shared_lock);
+		//To debug:
+		//printf ("%f %f %f %f",cpu_util_shared[0],cpu_util_shared[1],cpu_util_shared[2],cpu_util_shared[3]);
 
 		//Task content ends here -------------------------------------------------
 
diff --git a/rover/src/tasks/display_sensors_task.cpp b/rover/src/tasks/display_sensors_task.cpp
index e04c206..1a9708b 100644
--- a/rover/src/tasks/display_sensors_task.cpp
+++ b/rover/src/tasks/display_sensors_task.cpp
@@ -20,18 +20,18 @@
  *
  */
 
-#include "display_sensors_task.h"
+#include <tasks/display_sensors_task.h>
 
 #include <wiringPi.h>
 #include <unistd.h>
 #include <ctime>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void *DisplaySensors_Task (void * arg)
 {
diff --git a/rover/src/tasks/external_gpio_task.cpp b/rover/src/tasks/external_gpio_task.cpp
index 0cf929c..bf7f38e 100644
--- a/rover/src/tasks/external_gpio_task.cpp
+++ b/rover/src/tasks/external_gpio_task.cpp
@@ -13,19 +13,19 @@
  *
 */
 
-#include "external_gpio_task.h"
+#include <tasks/external_gpio_task.h>
 
 #include <ctime>
 #include <wiringPi.h>
 #include <softTone.h>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void setupBuzzer (void)
 {
diff --git a/rover/src/tasks/hono_interaction_task.cpp b/rover/src/tasks/hono_interaction_task.cpp
index 09201a1..0ce59ad 100644
--- a/rover/src/tasks/hono_interaction_task.cpp
+++ b/rover/src/tasks/hono_interaction_task.cpp
@@ -14,21 +14,21 @@
  *
  */
 
-#include "hono_interaction_task.h"
+#include <tasks/hono_interaction_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
 #include <softPwm.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
-#include "../hono_interaction/hono_interaction.h"
+#include <libraries/hono_interaction/hono_interaction.h>
 
 void *Hono_Interaction_Task(void * arg)
 {
diff --git a/rover/src/tasks/infrared_distance_task.cpp b/rover/src/tasks/infrared_distance_task.cpp
index 1f44370..4e5d5e5 100644
--- a/rover/src/tasks/infrared_distance_task.cpp
+++ b/rover/src/tasks/infrared_distance_task.cpp
@@ -21,19 +21,19 @@
  *
  */
 
-#include "infrared_distance_task.h"
+#include <tasks/infrared_distance_task.h>
 
 #include <ctime>
 #include <wiringPi.h>
 #include <unistd.h>
-#include "../api/basic_psys_rover.h"
-#include "../timing/timing.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 #include <mcp3004.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void setupInfraredSensors()
 {
diff --git a/rover/src/tasks/keycommand_task.cpp b/rover/src/tasks/keycommand_task.cpp
index 94c2ed6..fe5c870 100644
--- a/rover/src/tasks/keycommand_task.cpp
+++ b/rover/src/tasks/keycommand_task.cpp
@@ -20,19 +20,19 @@
  *
  */
 
-#include "keycommand_task.h"
+#include <tasks/keycommand_task.h>
 
 #include <ctime>
 #include <stdlib.h>
 #include <wiringPi.h>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void *KeyCommandInput_Task(void * arg)
 {
diff --git a/rover/src/tasks/motordriver_task.cpp b/rover/src/tasks/motordriver_task.cpp
index 4db7c2b..0699def 100644
--- a/rover/src/tasks/motordriver_task.cpp
+++ b/rover/src/tasks/motordriver_task.cpp
@@ -21,21 +21,20 @@
  *
  */
 
-#include "motordriver_task.h"
+#include <tasks/motordriver_task.h>
+#include <tasks/oled_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
+#include <roverapp.h>
 #include <softPwm.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-
-#include "oled_task.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
 
 void ExitAutomaticModes(void)
 {
@@ -58,7 +57,7 @@
 		driving_mode = MANUAL;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -72,7 +71,7 @@
 		driving_mode = PARKING_RIGHT;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -86,7 +85,7 @@
 		driving_mode = PARKING_LEFT;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -100,7 +99,7 @@
 		driving_mode = ACC;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -114,7 +113,7 @@
 		driving_mode = BOOTH1;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -128,7 +127,7 @@
 		driving_mode = BOOTH2;
 	pthread_mutex_unlock(&driving_mode_lock);
 	pthread_mutex_lock(&keycommand_lock);
-		keycommand_shared = 'f';
+		keycommand_shared = 'F';
 	pthread_mutex_unlock(&keycommand_lock);
 }
 
@@ -163,71 +162,71 @@
 
 		switch (local_command)
 		{
-			case 'g':
+			case 'G':
 				running = 0;
 				break;
-			case 'p':
+			case 'P':
 				ParkingLeftModeSet();
 				break;
-			case 'o':
+			case 'O':
 				ParkingRightModeSet();
 				break;
-			case 'w':
+			case 'W':
 				ExitAutomaticModes();
 				go(FORWARD, speed_shared);
 				break;
-			case 'd':
+			case 'D':
 				ExitAutomaticModes();
 				turn(BACKWARD, LEFT, speed_shared);
 				break;
-			case 's':
+			case 'S':
 				ExitAutomaticModes();
 				go(BACKWARD, speed_shared);
 				break;
-			case 'a':
+			case 'A':
 				ExitAutomaticModes();
 				turn(BACKWARD, RIGHT, speed_shared);
 				break;
-			case 'q':
+			case 'Q':
 				ExitAutomaticModes();
 				turn(FORWARD, RIGHT, speed_shared);
 				break;
-			case 'e':
+			case 'E':
 				ExitAutomaticModes();
 				turn(FORWARD, LEFT, speed_shared);
 				break;
-			case 'k':  //turn right on spot
+			case 'K':  //turn right on spot
 				ExitAutomaticModes();
 				turnOnSpot(FORWARD, RIGHT, speed_shared);
 				break;
-			case 'j': //turn left on spot
+			case 'J': //turn left on spot
 				ExitAutomaticModes();
 				turnOnSpot(FORWARD, LEFT, speed_shared);
 				break;
-			case 'u':
+			case 'U':
 				//Calibration mode
 				break;
-			case 'r':
+			case 'R':
 				//Shutdown hook from web server
 				shutdownOSwithDisplay();
 				break;
-			case 'm':
+			case 'M':
 				//ACC mode set
 				ACCModeSet();
 				break;
-			case 'x':
+			case 'X':
 				//Manual mode set
 				ManualModeSet();
 				break;
-			case 'l':
+			case 'L':
 				//Booth mode (Demo 1) set
 				BoothMode1Set();
 				break;
-			case 'n':
+			case 'N':
 				//Booth mode (Demo 2) set
 				BoothMode2Set();
 				break;
-			case 'f':
+			case 'F':
 				stop();
 				break;
 		}
diff --git a/rover/src/tasks/oled_task.cpp b/rover/src/tasks/oled_task.cpp
index 94aaa0b..4aa4307 100644
--- a/rover/src/tasks/oled_task.cpp
+++ b/rover/src/tasks/oled_task.cpp
@@ -39,28 +39,28 @@
  *		    Download bcm2835.c and bcm2835.h from: https://github.com/hallard/ArduiPi_SSD1306
  */
 
-#include "oled_task.h"
+#include <tasks/oled_task.h>
+#include <tasks/external_gpio_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
-#include "external_gpio_task.h"
+#include <roverapp.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
 
-#include "../drivers/oled_drivers/ArduiPi_SSD1306.h"
-#include "../drivers/oled_drivers/Adafruit_GFX.h"
-#include "../drivers/oled_drivers/Adafruit_SSD1306.h"
+#include <drivers/oled_drivers/ArduiPi_SSD1306.h>
+#include <drivers/oled_drivers/Adafruit_GFX.h>
+#include <drivers/oled_drivers/Adafruit_SSD1306.h>
 
 /* APPSTACLE Project logo */
 #include "../drivers/oled_drivers/appstacle_logo.c"
 
-#include "../status_library/status_library.h"
+#include <libraries/status_library/status_library.h>
 
 Adafruit_SSD1306 display;
 
diff --git a/rover/src/tasks/parking_task.cpp b/rover/src/tasks/parking_task.cpp
index ffb9b5c..87eb56f 100644
--- a/rover/src/tasks/parking_task.cpp
+++ b/rover/src/tasks/parking_task.cpp
@@ -17,20 +17,20 @@
  *
  */
 
-#include "parking_task.h"
+#include <tasks/parking_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
+#include <roverapp.h>
 #include <softPwm.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../tasks/motordriver_task.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <tasks/motordriver_task.h>
 
 int StopParking (void)
 {
diff --git a/rover/src/tasks/record_timing_task.cpp b/rover/src/tasks/record_timing_task.cpp
index 6eed3f2..58da7f9 100644
--- a/rover/src/tasks/record_timing_task.cpp
+++ b/rover/src/tasks/record_timing_task.cpp
@@ -19,18 +19,18 @@
  *
  */
 
-#include "record_timing_task.h"
+#include <tasks/record_timing_task.h>
 
 #include <wiringPi.h>
 #include <unistd.h>
 #include <ctime>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 
 void PrintTimingInfo(timing_interface ifc)
@@ -82,14 +82,18 @@
 		PrintTimingInfo(ultrasonic_grove_task_ti);
 		PrintTimingInfo(ultrasonic_sr04_front_task_ti);
 		PrintTimingInfo(ultrasonic_sr04_back_task_ti);
-		PrintTimingInfo(webserver_motordrive_task_ti);
 		PrintTimingInfo(record_timing_task_ti);
 		PrintTimingInfo(acc_task_ti);
-		PrintTimingInfo(record_sensor_data_task_ti);
 		PrintTimingInfo(parking_task_ti);
 		PrintTimingInfo(compass_task_ti);
 		PrintTimingInfo(oled_task_ti);
 		PrintTimingInfo(srf02_task_ti);
+		PrintTimingInfo(bluetooth_task_ti);
+		PrintTimingInfo(extgpio_task_ti);
+		PrintTimingInfo(booth_task_ti);
+		PrintTimingInfo(imgproc_task_ti);
+		PrintTimingInfo(socket_client_task_ti);
+		PrintTimingInfo(socket_server_task_ti);
 		printf("-------------------------------------------------\n");*/
 		//Task content ends here -------------------------------------------------
 
diff --git a/rover/src/tasks/rover_test_task.cpp b/rover/src/tasks/rover_test_task.cpp
index a9ccb3a..9f0ff87 100644
--- a/rover/src/tasks/rover_test_task.cpp
+++ b/rover/src/tasks/rover_test_task.cpp
@@ -8,7 +8,7 @@
  * Contributors:
  *     FH-Dortmund - initial API and implementation
  *******************************************************************************/
-#include "rover_test_task.h"
+#include <tasks/rover_test_task.h>
 
 void say(char *text){
    char buffer[1024];
diff --git a/rover/src/tasks/srf02_task.cpp b/rover/src/tasks/srf02_task.cpp
index 7b3865c..e97b064 100644
--- a/rover/src/tasks/srf02_task.cpp
+++ b/rover/src/tasks/srf02_task.cpp
@@ -13,20 +13,20 @@
  *
  */
 
-#include "srf02_task.h"
+#include <tasks/srf02_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
-#include "../RaspberryTest.h"
 
-#include "../pthread_monitoring/collect_thread_name.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
-#include <linux/i2c-dev.h> //!! Check if this header WORKS!!
+#include <linux/i2c-dev.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>
diff --git a/rover/src/tasks/temperature_task.cpp b/rover/src/tasks/temperature_task.cpp
index c2518e6..f474700 100644
--- a/rover/src/tasks/temperature_task.cpp
+++ b/rover/src/tasks/temperature_task.cpp
@@ -20,19 +20,19 @@
  *
 */
 
-#include "temperature_task.h"
+#include <tasks/temperature_task.h>
 
 #include <ctime>
 #include <wiringPi.h>
 #include <wiringPiI2C.h>
 #include <unistd.h>
-#include "../timing/timing.h"
-#include "../api/basic_psys_rover.h"
-#include "../interfaces.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../RaspberryTest.h"
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void readDHT22SensorData()
 {
diff --git a/rover/src/tasks/ultrasonic_sensor_grove_task.cpp b/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
index 718cfc6..b14a441 100644
--- a/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
@@ -23,15 +23,19 @@
  *
  */
 
-#include "ultrasonic_sensor_grove_task.h"
+#include <tasks/ultrasonic_sensor_grove_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../timing/timing.h"
-#include "../RaspberryTest.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
+#include <pthread.h>
+
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void setup_GrooveUltrasonicRanger() {
 	//wiringPiSetup();   //Since this can only be used once in a program, we do it in main and comment this.
diff --git a/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp b/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
index 5777a6f..1828f89 100644
--- a/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
@@ -42,15 +42,19 @@
 // __________|
 
 
-#include "ultrasonic_sensor_sr04_back_task.h"
+#include <tasks/ultrasonic_sensor_sr04_back_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../timing/timing.h"
-#include "../RaspberryTest.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
+#include <pthread.h>
+
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void setup_HCSR04UltrasonicBack() {
     //wiringPiSetup();
diff --git a/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp b/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
index 9f9c913..2140944 100644
--- a/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
@@ -42,15 +42,19 @@
 // __________|
 
 
-#include "ultrasonic_sensor_sr04_front_task.h"
+#include <tasks/ultrasonic_sensor_sr04_front_task.h>
 
 #include <wiringPi.h>
 #include <ctime>
 #include <pthread.h>
 
-#include "../pthread_monitoring/collect_thread_name.h"
-#include "../timing/timing.h"
-#include "../RaspberryTest.h"
+#include <libraries/timing/timing.h>
+#include <api/basic_psys_rover.h>
+#include <interfaces.h>
+#include <pthread.h>
+
+#include <libraries/pthread_monitoring/collect_thread_name.h>
+#include <roverapp.h>
 
 void setup_HCSR04UltrasonicFront() {
     //wiringPiSetup();