ManualControl
Dependencies: TPixy-Interface
Fork of MbedOS_Robot by
Diff: ui.cpp
- Revision:
- 23:1839085ffdcf
- Parent:
- 22:c09acff62e6a
diff -r c09acff62e6a -r 1839085ffdcf ui.cpp --- a/ui.cpp Fri Mar 23 22:42:41 2018 +0000 +++ b/ui.cpp Thu Mar 29 22:33:52 2018 +0000 @@ -7,7 +7,7 @@ /******************************************************************************/ // filename: ui.cpp // file content description: -// * Functions to display and manage the user interface on the PC terminal. +// * Functions to display and manage the user interface on the PC terminal. /******************************************************************************/ #include "mbed.h" @@ -16,6 +16,9 @@ #include "CameraThread.h" #include "PiControlThread.h" +bool startRecording = false; +bool MC = true; + Serial bluetooth(p9,p10); // Define the bluetooth channel and IO pins Serial pc(USBTX, USBRX); // Pins (tx, rx) for PC serial channel @@ -30,7 +33,7 @@ bluetooth.printf("\r\n************************************"); bluetooth.printf("\r\n**** AUTONOMOUS FOLLOWING ROBOT ****"); bluetooth.printf("\r\n************************************"); - bluetooth.printf("\r\n-PRESS 'r' TO KILL ROBOT"); + bluetooth.printf("\r\n-PRESS 'r' TO reset"); } /****************************************************************************** @@ -41,57 +44,85 @@ { if (bluetooth.readable()) { x = bluetooth.getc(); + + // enter manual control and exit patrol mode + if(x == 'm') { + MC = true; + } + + // exit manual control and enter patrol mode + if(x == 'p') { + MC = false; + startRecording = false; + } + if(x == 'l'){ + startRecording = true; + } + // if input from console is the letter 'r' - if(x == 'r') { + if(x == 'r' && (MC)) { + // reset watchdog timer WatchdogReset(); setpointR = 0; setpointL = 0; - bluetooth.printf("\r\nWatchdog has been reset"); + MC = true; + startRecording = false; + memoryFull = false; + dpArray.i = 0; + + // reset array + for(int i = 0; i < dpArray.size; i++){ + dpArray.dpR[i] = 0; + dpArray.dpL[i] = 0; + } + + bluetooth.printf("\r\nSystem has been Reset"); + } - -/******************************ROBOT FWD RVS***********************************/ + + /******************************ROBOT FWD RVS***********************************/ // if w is pressed increase the speed // by incrementing u - else if(x == 'w') { + else if(x == 'w'&& (MC)) { mutexSetpoint.lock(); Setpoint = -40; mutexSetpoint.unlock(); - + } // if s is pressed decrease the speed // by decrementing u - else if(x == 's') { + else if(x == 's' && (MC)) { mutexSetpoint.lock(); Setpoint = 40; mutexSetpoint.unlock(); - + } -/******************************ROBOT STEERING**********************************/ - else if (x=='a') - { + /******************************ROBOT STEERING**********************************/ + else if (x=='a'&& (MC)) { mutexSetpoint.lock(); SteeringError = 80; mutexSetpoint.unlock(); - } - else if (x=='d') - { + } else if (x=='d'&& (MC)) { mutexSetpoint.lock(); SteeringError = -80; mutexSetpoint.unlock(); - } + } // error wrong input else { - bluetooth.printf("\r\nwrong input please enter \'w\' to increase the speed, \'s\' to reduce it or move in the opposite direction and \'r\' to reset the watchdog"); + //bluetooth.printf("\r\nwrong input please enter \'w\' to increase the speed, \'s\' to reduce it or move in the opposite direction and \'r\' to reset the watchdog"); } - } - else{ - // If no key is pressed stop the robot. + } else { + // If no key is pressed stop the robot. Setpoint = 0; SteeringError = 0; } + if(memoryFull){ + bluetooth.printf("\r\nmemory is full"); + } + }