Changes to Application & Tasks regarding new API developments
Signed-off-by: Mustafa Ozcelikors <mozcelikors@gmail.com>
diff --git a/rover/include/roverapp.h b/rover/include/roverapp.h
index 69221d7..07e8f44 100644
--- a/rover/include/roverapp.h
+++ b/rover/include/roverapp.h
@@ -32,6 +32,9 @@
#include "interfaces.h"
#include <roverapi/rover_api.hpp>
+#include <roverapi/rover_driving.hpp>
+#include <roverapi/rover_display.hpp>
+#include <roverapi/rover_utils.hpp>
//Use the following when cross compiling with Eclipse CDT SDK
//#define CROSS_COMPILE_ECLIPSE 1
@@ -45,7 +48,10 @@
//Using rover namespace from Rover API
using namespace rover;
-extern RoverBase r;
+extern RoverBase r_base;
+extern RoverDriving r_driving;
+extern RoverDisplay my_display;
+extern RoverUtils r_utils;
extern pthread_t oled_thread;
diff --git a/rover/src/roverapp.cpp b/rover/src/roverapp.cpp
index ef8c0bf..47e5741 100644
--- a/rover/src/roverapp.cpp
+++ b/rover/src/roverapp.cpp
@@ -60,7 +60,10 @@
using namespace rover;
//Create global RoverBase object from Rover API
-RoverBase r;
+RoverBase r_base;
+RoverDriving r_driving;
+RoverDisplay my_display;
+RoverUtils r_utils;
/* Threads */
pthread_t ultrasonic_grove_thread;
@@ -228,14 +231,15 @@
int main()
{
- //Initialize all rover components
- r.initialize();
+ r_driving = RoverDriving();
+ r_base = RoverBase();
+ my_display = RoverDisplay();
+ r_utils = RoverUtils();
- //Set-up hono instance attributes and register 4711 device to Hono
- r.inRoverCloud().setHono("idial.institute", 8080, "DEFAULT_TENANT");
-
- r.inRoverCloud().setRegistrationPort(28080);
- r.inRoverCloud().registerDevice("4711");
+ //Initialize some of the rover components
+ r_base.initialize();
+ r_driving.initialize();
+ my_display.initialize();
/* Add signals to exit threads properly */
signal(SIGINT, exitHandler);
@@ -255,7 +259,7 @@
infrared_shared[3] = 0.0;
bearing_shared = 0.0;
driving_mode = MANUAL;
- speed_shared = r.inRoverDriving().HIGHEST_SPEED;
+ speed_shared = HIGHEST_SPEED;
buzzer_status_shared = 0;
shutdown_hook_shared = 0;
running_flag = 1;
@@ -489,6 +493,7 @@
//What main thread does should come here..
// ...
+
delayMicroseconds(1* SECONDS_TO_MICROSECONDS);
}
pthread_exit(NULL);
diff --git a/rover/src/tasks/adaptive_cruise_control_task.cpp b/rover/src/tasks/adaptive_cruise_control_task.cpp
index 79234cb..1896c8e 100644
--- a/rover/src/tasks/adaptive_cruise_control_task.cpp
+++ b/rover/src/tasks/adaptive_cruise_control_task.cpp
@@ -18,6 +18,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_driving.hpp>
void *Adaptive_Cruise_Control_Task(void * arg)
{
@@ -26,6 +27,9 @@
acc_task_tmr.setDeadline(0.1);
acc_task_tmr.setPeriod(0.1);
+ RoverDriving r_driving = RoverDriving();
+ r_driving.initialize();
+
while (1)
{
acc_task_tmr.recordStartTime();
@@ -43,32 +47,32 @@
{
// go back if distance ok
if (distance_sr04_back_shared < CRITICAL_DISTANCE)
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
else
{
- r.inRoverDriving().setSpeed(r.inRoverDriving().LOWEST_SPEED);
- r.inRoverDriving().goBackward();
+ r_driving.setSpeed(LOWEST_SPEED);
+ r_driving.goBackward();
}
}
// front distance between correct and critical
else if (distance_sr04_front_shared < CORRECT_DISTANCE && distance_sr04_front_shared >= CRITICAL_DISTANCE)
{
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
}
// front distance between safe and correct
else if (distance_sr04_front_shared < SAFE_DISTANCE && distance_sr04_front_shared >= CORRECT_DISTANCE)
{
- r.inRoverDriving().setSpeed(r.inRoverDriving().LOWEST_SPEED);
- r.inRoverDriving().goForward();
+ r_driving.setSpeed(LOWEST_SPEED);
+ r_driving.goForward();
}
// distance > safe
else if (distance_sr04_front_shared >= SAFE_DISTANCE)
{
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().goForward();
+ r_driving.setSpeed(speed_shared);
+ r_driving.goForward();
}
diff --git a/rover/src/tasks/compass_sensor_task.cpp b/rover/src/tasks/compass_sensor_task.cpp
index f9d455d..538523d 100644
--- a/rover/src/tasks/compass_sensor_task.cpp
+++ b/rover/src/tasks/compass_sensor_task.cpp
@@ -29,6 +29,8 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_hmc5883l.hpp>
+#include <roverapi/rover_qmc5883l.hpp>
int EndCalibrationMode (void)
{
@@ -47,6 +49,9 @@
compass_task_tmr.setDeadline(0.1);
compass_task_tmr.setPeriod(0.1);
+ RoverHMC5883L r_hmc5883l = RoverHMC5883L();
+ r_hmc5883l.initialize();
+
while (1) {
compass_task_tmr.recordStartTime();
compass_task_tmr.calculatePreviousSlackTime();
@@ -59,14 +64,14 @@
{
printf("Starting compass calibration for 5 seconds. Please rotate me 360 degrees.\n");
EndCalibrationMode();
- r.inRoverSensors().calibrateBearingSensor();
+ //r.inRoverSensors().calibrateBearingSensor();
//Calibration state..
//At the end of calibration to go to the end of calibration mode call EndCalibrationMode()
}
//Asynchronous end to calibration mode --> Call EndCalibrationMode()
pthread_mutex_lock(&compass_lock);
- bearing_shared = r.inRoverSensors().readBearingHMC5883L();
+ bearing_shared = r_hmc5883l.read();
pthread_mutex_unlock(&compass_lock);
diff --git a/rover/src/tasks/cpu_logger_task.cpp b/rover/src/tasks/cpu_logger_task.cpp
index ef7a82d..30cf7ec 100644
--- a/rover/src/tasks/cpu_logger_task.cpp
+++ b/rover/src/tasks/cpu_logger_task.cpp
@@ -29,6 +29,8 @@
#include <roverapp.h>
+#include <roverapi/rover_utils.hpp>
+
void Cpu_Logger_Task_Terminator (int dummy)
{
running_flag = 0;
@@ -47,6 +49,8 @@
signal(SIGTERM, Cpu_Logger_Task_Terminator);
signal(SIGKILL, Cpu_Logger_Task_Terminator);
+ RoverUtils r_utils = RoverUtils();
+
float *util;
while (running_flag)
@@ -56,7 +60,7 @@
//Task content starts here -----------------------------------------------
- util = r.inRoverUtils().getCoreUtilization();
+ util = r_utils.getCoreUtilization();
pthread_mutex_lock(&cpu_util_shared_lock);
cpu_util_shared[0] = util[0];
cpu_util_shared[1] = util[1];
diff --git a/rover/src/tasks/display_sensors_task.cpp b/rover/src/tasks/display_sensors_task.cpp
index f35469e..25e8f82 100644
--- a/rover/src/tasks/display_sensors_task.cpp
+++ b/rover/src/tasks/display_sensors_task.cpp
@@ -29,14 +29,18 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_gy521.hpp>
void *DisplaySensors_Task (void * arg)
{
timing display_sensors_task_tmr;
display_sensors_task_tmr.setTaskID("Display-Sensors");
- display_sensors_task_tmr.setDeadline(5.0);
- display_sensors_task_tmr.setPeriod(5.0);
+ display_sensors_task_tmr.setDeadline(3.0);
+ display_sensors_task_tmr.setPeriod(3.0);
+
+ RoverGY521 r_accel = RoverGY521();
+ r_accel.initialize();
while (1)
{
@@ -64,6 +68,10 @@
printf("Bearing: %f\n", bearing_shared);
+ printf("Accelerometer acceleration:\t%d\t\t%d\t\t%d\n", r_accel.getAccelX(), r_accel.getAccelY(), r_accel.getAccelZ());
+ printf("Accelerometer angles:\t\t%f\t%f\t%f\n", r_accel.getAngleX(), r_accel.getAngleY(), r_accel.getAngleZ());
+
+
//Task content ends here -------------------------------------------------
display_sensors_task_tmr.recordEndTime();
display_sensors_task_tmr.calculateExecutionTime();
diff --git a/rover/src/tasks/external_gpio_task.cpp b/rover/src/tasks/external_gpio_task.cpp
index 87ce723..7469e0f 100644
--- a/rover/src/tasks/external_gpio_task.cpp
+++ b/rover/src/tasks/external_gpio_task.cpp
@@ -23,6 +23,9 @@
#include <roverapp.h>
+#include <roverapi/rover_buzzer.hpp>
+#include <roverapi/rover_button.hpp>
+
/* Checks global variable buzzer_status */
/* 1-> ON 0-> OFF */
void buzzerHandler (void)
@@ -52,33 +55,41 @@
void buttonHandler (void)
{
#ifndef DEBUG_WO_RSL
- if (r.inRoverGpio().readShutdownButton() == LOW)
+ RoverButton user_b = RoverButton (USER_BUTTON);
+ RoverButton shutdown_b = RoverButton (SHUTDOWN_BUTTON);
+ RoverBuzzer buzzer = RoverBuzzer();
+
+ user_b.initialize();
+ shutdown_b.initialize();
+ buzzer.initialize();
+
+ if (shutdown_b.readButton() == shutdown_b.LO)
{
- r.shutdown();
+ r_base.shutdown();
}
- if (r.inRoverGpio().readUserButton() == LOW)
+ if (user_b.readButton() == user_b.LO)
{
display_use_elsewhere_shared = 1;
- r.sleep(500);
+ r_base.sleep(500);
//r.inRoverDisplay().initialize();
- r.inRoverDisplay().clearDisplay();
- r.inRoverDisplay().setTextSize(2);
- r.inRoverDisplay().setTextColor(WHITE);
+ my_display.clearDisplay();
+ my_display.setTextSize(2);
+ my_display.setTextColor(WHITE);
- r.inRoverDisplay().setCursor(10,5);
- r.inRoverDisplay().print("User");
- r.inRoverDisplay().setCursor(20,25);
- r.inRoverDisplay().print("Button");
- r.inRoverDisplay().setCursor(30,45);
- r.inRoverDisplay().print("Pressed");
+ my_display.setCursor(10,5);
+ my_display.print("User");
+ my_display.setCursor(20,25);
+ my_display.print("Button");
+ my_display.setCursor(30,45);
+ my_display.print("Pressed");
- r.inRoverDisplay().display();
+ my_display.display();
- r.inRoverGpio().shutdownTone();
+ buzzer.shutdownTone();
- r.sleep(1000);
+ r_base.sleep(1000);
display_use_elsewhere_shared = 0;
}
#endif
diff --git a/rover/src/tasks/hono_interaction_task.cpp b/rover/src/tasks/hono_interaction_task.cpp
index be9651c..569c8e7 100644
--- a/rover/src/tasks/hono_interaction_task.cpp
+++ b/rover/src/tasks/hono_interaction_task.cpp
@@ -23,6 +23,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_cloud.hpp>
void *Hono_Interaction_Task(void * arg)
{
@@ -31,6 +32,14 @@
hono_task_tmr.setDeadline(2);
hono_task_tmr.setPeriod(2);
+ //Set-up hono instance attributes and register 4711 device to Hono
+ RoverCloud r_cloud = RoverCloud();
+
+ r_cloud.setHono("idial.institute", 8080, "DEFAULT_TENANT");
+
+ r_cloud.setRegistrationPort(28080);
+ r_cloud.registerDevice("4711");
+
while (1)
{
hono_task_tmr.recordStartTime();
@@ -40,17 +49,17 @@
// Send everything to Hono every second in this task using the following functions
// TODO: This can be done with one curl command, probably a better way.
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverFront", distance_sr04_front_shared);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverFrontLeft",infrared_shared[3]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverFrontRight", infrared_shared[2]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverRear", distance_sr04_back_shared);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverRearLeft", infrared_shared[1]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverRearRight", infrared_shared[0]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverBearing", bearing_shared);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu1", cpu_util_shared[0]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu2", cpu_util_shared[1]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu3", cpu_util_shared[2]);
- r.inRoverCloud().sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu4", cpu_util_shared[3]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverFront", distance_sr04_front_shared);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverFrontLeft",infrared_shared[3]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverFrontRight", infrared_shared[2]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverRear", distance_sr04_back_shared);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverRearLeft", infrared_shared[1]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverRearRight", infrared_shared[0]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverBearing", bearing_shared);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu1", cpu_util_shared[0]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu2", cpu_util_shared[1]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu3", cpu_util_shared[2]);
+ r_cloud.sendTelemetry("4711","sensor1","hono-secret","roverUtilCpu4", cpu_util_shared[3]);
//Task content ends here -------------------------------------------------
diff --git a/rover/src/tasks/infrared_distance_task.cpp b/rover/src/tasks/infrared_distance_task.cpp
index 6ca82c7..01c2b98 100644
--- a/rover/src/tasks/infrared_distance_task.cpp
+++ b/rover/src/tasks/infrared_distance_task.cpp
@@ -31,6 +31,8 @@
#include <roverapp.h>
+#include <roverapi/rover_infraredsensor.hpp>
+
void *InfraredDistance_Task (void * arg)
{
timing infrared_distance_task_tmr;
@@ -39,7 +41,15 @@
infrared_distance_task_tmr.setDeadline(0.5);
infrared_distance_task_tmr.setPeriod(0.5);
- int chan;
+ RoverInfraredSensor r_infrared0 = RoverInfraredSensor(ROVER_REAR_RIGHT);
+ RoverInfraredSensor r_infrared1 = RoverInfraredSensor(ROVER_REAR_LEFT);
+ RoverInfraredSensor r_infrared2 = RoverInfraredSensor(ROVER_FRONT_RIGHT);
+ RoverInfraredSensor r_infrared3 = RoverInfraredSensor(ROVER_FRONT_LEFT);
+
+ r_infrared0.initialize();
+ r_infrared1.initialize();
+ r_infrared2.initialize();
+ r_infrared3.initialize();
while (1)
{
@@ -49,10 +59,10 @@
//Task content starts here -----------------------------------------------
//Setting argument in pthread - whenever you R/W access to temperature_shared, you have to do the same.
pthread_mutex_lock(&infrared_lock);
- for (chan = 0; chan <= 3; chan ++)
- {
- infrared_shared[chan] = r.inRoverSensors().readInfraredSensor(chan);
- }
+ infrared_shared[0] = r_infrared0.read();
+ infrared_shared[1] = r_infrared1.read();
+ infrared_shared[2] = r_infrared2.read();
+ infrared_shared[3] = r_infrared3.read();
pthread_mutex_unlock(&infrared_lock);
//Task content ends here -------------------------------------------------
diff --git a/rover/src/tasks/motordriver_task.cpp b/rover/src/tasks/motordriver_task.cpp
index 6e6af7c..4704a2b 100644
--- a/rover/src/tasks/motordriver_task.cpp
+++ b/rover/src/tasks/motordriver_task.cpp
@@ -35,7 +35,7 @@
{
if (driving_mode == ACC || driving_mode == PARKING_LEFT || driving_mode == PARKING_RIGHT || driving_mode == BOOTH1 || driving_mode == BOOTH2)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
pthread_mutex_lock(&driving_mode_lock);
driving_mode = MANUAL;
pthread_mutex_unlock(&driving_mode_lock);
@@ -46,7 +46,7 @@
{
if (driving_mode == ACC || driving_mode == PARKING_LEFT || driving_mode == PARKING_RIGHT || driving_mode == BOOTH1 || driving_mode == BOOTH2)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = MANUAL;
@@ -60,7 +60,7 @@
{
if (driving_mode == ACC || driving_mode == MANUAL || driving_mode == BOOTH1 || driving_mode == BOOTH2)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = PARKING_RIGHT;
@@ -74,7 +74,7 @@
{
if (driving_mode == ACC || driving_mode == MANUAL || driving_mode == BOOTH1 || driving_mode == BOOTH2)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = PARKING_LEFT;
@@ -88,7 +88,7 @@
{
if (driving_mode == PARKING_LEFT || driving_mode == PARKING_RIGHT || driving_mode == MANUAL || driving_mode == BOOTH1 || driving_mode == BOOTH2 )
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = ACC;
@@ -102,7 +102,7 @@
{
if (driving_mode == PARKING_LEFT || driving_mode == PARKING_RIGHT || driving_mode == MANUAL || driving_mode == BOOTH2 || driving_mode == ACC)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = BOOTH1;
@@ -116,7 +116,7 @@
{
if (driving_mode == PARKING_LEFT || driving_mode == PARKING_RIGHT || driving_mode == MANUAL || driving_mode == BOOTH1 || driving_mode == ACC)
{
- r.inRoverDriving().stopRover(); //Stop the rover first.
+ r_driving.stopRover(); //Stop the rover first.
}
pthread_mutex_lock(&driving_mode_lock);
driving_mode = BOOTH2;
@@ -162,50 +162,50 @@
break;
case 'W':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().goForward();
+ r_driving.setSpeed(speed_shared);
+ r_driving.goForward();
break;
case 'D':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnBackwardRight();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnBackwardRight();
break;
case 'S':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().goBackward();
+ r_driving.setSpeed(speed_shared);
+ r_driving.goBackward();
break;
case 'A':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnBackwardLeft();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnBackwardLeft();
break;
case 'Q':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnForwardLeft();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnForwardLeft();
break;
case 'E':
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnForwardRight();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnForwardRight();
break;
case 'K': //turn right on spot
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnRight();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnRight();
break;
case 'J': //turn left on spot
ExitAutomaticModes();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().turnLeft();
+ r_driving.setSpeed(speed_shared);
+ r_driving.turnLeft();
break;
case 'U':
//Calibration mode
break;
case 'R':
//Shutdown hook from web server
- r.shutdown();
+ r_base.shutdown();
break;
case 'M':
//ACC mode set
@@ -224,7 +224,7 @@
BoothMode2Set();
break;
case 'F':
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
break;
}
//Task content ends here -------------------------------------------------
diff --git a/rover/src/tasks/oled_task.cpp b/rover/src/tasks/oled_task.cpp
index 4f0d6ef..0faf9bc 100644
--- a/rover/src/tasks/oled_task.cpp
+++ b/rover/src/tasks/oled_task.cpp
@@ -62,7 +62,6 @@
int counter_500ms = 0;
- RoverDisplay my_display = r.inRoverDisplay();
while (1)
{
@@ -115,7 +114,7 @@
my_display.setTextSize(3);
my_display.setTextColor(WHITE);
- if (r.inRoverUtils().getWlanStatus() == 1)
+ if (r_utils.getWlanStatus() == 1)
{
my_display.setCursor(50,32);
my_display.print("ON");
@@ -144,7 +143,7 @@
my_display.setTextSize(3);
my_display.setTextColor(WHITE);
- if (r.inRoverUtils().getEthernetStatus() == 1)
+ if (r_utils.getEthernetStatus() == 1)
{
my_display.setCursor(50,32);
my_display.print("ON");
@@ -173,7 +172,7 @@
my_display.setTextSize(3);
my_display.setTextColor(WHITE);
- if (r.inRoverUtils().getInternetStatus() == 1)
+ if (r_utils.getInternetStatus() == 1)
{
my_display.setCursor(50,32);
my_display.print("ON");
@@ -202,7 +201,7 @@
my_display.setTextSize(3);
my_display.setTextColor(WHITE);
- if (r.inRoverUtils().getBluetoothStatus() == 1)
+ if (r_utils.getBluetoothStatus() == 1)
{
my_display.setCursor(50,32);
my_display.print("ON");
@@ -231,7 +230,7 @@
my_display.setTextSize(3);
my_display.setTextColor(WHITE);
- if (r.inRoverUtils().getHonoCloudStatus("idial.institute",8080,"DEFAULT_TENANT", "4711","sensor1","hono-secret") == 1)
+ if (r_utils.getHonoCloudStatus("idial.institute",8080,"DEFAULT_TENANT", "4711","sensor1","hono-secret") == 1)
{
my_display.setCursor(50,32);
my_display.print("ON");
@@ -259,7 +258,7 @@
else
{
// Proper shutdown function, including showing message in the OLED display
- r.shutdown();
+ r_base.shutdown();
}
/* If the display is not in use somewhere else asynchronously */
diff --git a/rover/src/tasks/parking_task.cpp b/rover/src/tasks/parking_task.cpp
index b4b90ec..ccc355e 100644
--- a/rover/src/tasks/parking_task.cpp
+++ b/rover/src/tasks/parking_task.cpp
@@ -29,7 +29,7 @@
int StopParking (void)
{
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
pthread_mutex_lock(&driving_mode_lock);
driving_mode = MANUAL;
pthread_mutex_unlock(&driving_mode_lock);
@@ -55,8 +55,8 @@
{
//printf ("PARKING STARTED\n");
bearing_begin = bearing_shared;
- r.inRoverDriving().setSpeed(speed_shared-50);
- r.inRoverDriving().turnLeft();
+ r_driving.setSpeed(speed_shared-50);
+ r_driving.turnLeft();
/**
* The following bearing based parking does currently not work due to very unreliable bearing values
*/
@@ -74,19 +74,19 @@
delay(3000);
- r.inRoverDriving().stopRover();
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().goForward();
+ r_driving.stopRover();
+ r_driving.setSpeed(speed_shared);
+ r_driving.goForward();
delay(2000);
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
//bearing_begin = bearing_shared;
- r.inRoverDriving().setSpeed(speed_shared-50);
- r.inRoverDriving().turnRight();
+ r_driving.setSpeed(speed_shared-50);
+ r_driving.turnRight();
//while(((int)bearing_begin+(int)bearing_shared) % 360 <80);
delay(3000);
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
StopParking();
//printf ("PARKING ENDED \n");
}
@@ -94,21 +94,21 @@
{
//printf ("PARKING STARTED\n");
bearing_begin = bearing_shared;
- r.inRoverDriving().setSpeed(speed_shared-50);
- r.inRoverDriving().turnRight();
+ r_driving.setSpeed(speed_shared-50);
+ r_driving.turnRight();
//while(((int)bearing_begin+(int)bearing_shared) % 360 <85);
delay(3000);
- r.inRoverDriving().setSpeed(speed_shared);
- r.inRoverDriving().goForward();
+ r_driving.setSpeed(speed_shared);
+ r_driving.goForward();
delay(2000);
bearing_begin = bearing_shared;
- r.inRoverDriving().setSpeed(speed_shared-50);
- r.inRoverDriving().turnLeft();
+ r_driving.setSpeed(speed_shared-50);
+ r_driving.turnLeft();
delay(3000);
- r.inRoverDriving().stopRover();
+ r_driving.stopRover();
StopParking();
//printf ("PARKING ENDED\n");
}
diff --git a/rover/src/tasks/temperature_task.cpp b/rover/src/tasks/temperature_task.cpp
index 1063535..7fd9548 100644
--- a/rover/src/tasks/temperature_task.cpp
+++ b/rover/src/tasks/temperature_task.cpp
@@ -29,6 +29,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_dht22.hpp>
void *Temperature_Task(void *arg)
{
@@ -40,6 +41,9 @@
float temperature, humidity;
+ RoverDHT22 r_dht22 = RoverDHT22();
+ r_dht22.initialize();
+
while (1)
{
temperature_task_tmr.recordStartTime();
@@ -47,8 +51,8 @@
//Task content starts here -----------------------------------------------
- temperature = r.inRoverSensors().readTemperature();
- humidity = r.inRoverSensors().readHumidity();
+ temperature = r_dht22.readTemperature();
+ humidity = r_dht22.readHumidity();
pthread_mutex_lock(&temperature_lock);
temperature_shared = temperature;
diff --git a/rover/src/tasks/ultrasonic_sensor_grove_task.cpp b/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
index f97f4be..0af01ab 100644
--- a/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_grove_task.cpp
@@ -33,6 +33,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_grooveultrasonic.hpp>
void *Ultrasonic_Sensor_Grove_Task(void *unused)
{
@@ -42,6 +43,9 @@
ultrasonic_grove_task_tmr.setDeadline(0.5);
ultrasonic_grove_task_tmr.setPeriod(0.5);
+ RoverGrooveUltrasonic r_groove = RoverGrooveUltrasonic(ROVER_REAR);
+ r_groove.initialize();
+
while (1)
{
ultrasonic_grove_task_tmr.recordStartTime();
@@ -52,7 +56,7 @@
distance_grove_shared = getCM_GrooveUltrasonicRanger();
pthread_mutex_unlock(&distance_grove_lock);*/
pthread_mutex_lock(&distance_sr04_back_lock);
- distance_sr04_back_shared = r.inRoverSensors().readGrooveUltrasonicSensor(r.inRoverSensors().ROVER_REAR);
+ distance_sr04_back_shared = (int) r_groove.read();
pthread_mutex_unlock(&distance_sr04_back_lock);
//printf("Distance: %dcm\n", getCM_GrooveUltrasonicRanger());
//Task content ends here -------------------------------------------------
diff --git a/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp b/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
index 12ef99b..3ad129f 100644
--- a/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_sr04_back_task.cpp
@@ -52,6 +52,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_hcsr04.hpp>
void *Ultrasonic_Sensor_SR04_Back_Task (void *unused)
{
@@ -61,6 +62,9 @@
ultrasonic_sr04_back_task_tmr.setDeadline(0.1);
ultrasonic_sr04_back_task_tmr.setPeriod(0.1);
+ RoverHCSR04 r_ultrasonicrear = RoverHCSR04(ROVER_REAR);
+ r_ultrasonicrear.initialize();
+
while (1)
{
ultrasonic_sr04_back_task_tmr.recordStartTime();
@@ -68,7 +72,7 @@
//Task content starts here -----------------------------------------------
pthread_mutex_lock(&distance_sr04_back_lock);
- distance_sr04_back_shared = r.inRoverSensors().readHCSR04UltrasonicSensor(r.inRoverSensors().ROVER_REAR);
+ distance_sr04_back_shared = r_ultrasonicrear.read();
pthread_mutex_unlock(&distance_sr04_back_lock);
//Task content ends here -------------------------------------------------
diff --git a/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp b/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
index 7329ce5..7a255cb 100644
--- a/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
+++ b/rover/src/tasks/ultrasonic_sensor_sr04_front_task.cpp
@@ -52,6 +52,7 @@
#include <pthread.h>
#include <roverapp.h>
+#include <roverapi/rover_hcsr04.hpp>
void *Ultrasonic_Sensor_SR04_Front_Task(void *unused)
{
@@ -61,6 +62,9 @@
ultrasonic_sr04_front_task_tmr.setDeadline(0.1);
ultrasonic_sr04_front_task_tmr.setPeriod(0.1);
+ RoverHCSR04 r_ultrasonicfront = RoverHCSR04 (ROVER_FRONT);
+ r_ultrasonicfront.initialize();
+
while (1)
{
ultrasonic_sr04_front_task_tmr.recordStartTime();
@@ -68,7 +72,7 @@
//Task content starts here -----------------------------------------------
pthread_mutex_lock(&distance_sr04_front_lock);
- distance_sr04_front_shared = r.inRoverSensors().readHCSR04UltrasonicSensor(r.inRoverSensors().ROVER_FRONT);
+ distance_sr04_front_shared = r_ultrasonicfront.read();
pthread_mutex_unlock(&distance_sr04_front_lock);
//Task content ends here -------------------------------------------------