Mitchell Hatfield / Mbed 2 deprecated Component_Test_Interface

Dependencies:   BridgeDriver FrontPanelButtons MCP23017 SDFileSystem TextLCD mbed

Committer:
mehatfie
Date:
Thu Sep 18 23:38:11 2014 +0000
Revision:
2:3e7baa3e3fec
- Revamped whole system and now works without stalling or freezing mid program; - now Object Oriented Based in terms of Devices (inheritance of functions)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mehatfie 2:3e7baa3e3fec 1 ///*#include "mbed.h"
mehatfie 2:3e7baa3e3fec 2 //#include "LocalPinNames.h"
mehatfie 2:3e7baa3e3fec 3 //#include "TextLCD.h"
mehatfie 2:3e7baa3e3fec 4 //#include "BridgeDriver.h"
mehatfie 2:3e7baa3e3fec 5 //*/
mehatfie 2:3e7baa3e3fec 6 //#include "Device.hpp"
mehatfie 2:3e7baa3e3fec 7 ////#include <string>
mehatfie 2:3e7baa3e3fec 8 //
mehatfie 2:3e7baa3e3fec 9 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 10 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 11 ///*************************** <CLASS: Voltage_Driver> ****************************/
mehatfie 2:3e7baa3e3fec 12 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 13 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 14 //
mehatfie 2:3e7baa3e3fec 15 //class Voltage_Driver{
mehatfie 2:3e7baa3e3fec 16 //
mehatfie 2:3e7baa3e3fec 17 // public :
mehatfie 2:3e7baa3e3fec 18 // //uint8_t ch123; //Channel value this device is set to
mehatfie 2:3e7baa3e3fec 19 // int ch;
mehatfie 2:3e7baa3e3fec 20 // int test;
mehatfie 2:3e7baa3e3fec 21 //
mehatfie 2:3e7baa3e3fec 22 // int interpret();
mehatfie 2:3e7baa3e3fec 23 // int forceBrake();
mehatfie 2:3e7baa3e3fec 24 // //int forceFloat();
mehatfie 2:3e7baa3e3fec 25 // float drive();
mehatfie 2:3e7baa3e3fec 26 //
mehatfie 2:3e7baa3e3fec 27 // //Voltage_Driver();
mehatfie 2:3e7baa3e3fec 28 // void setChannel(int channel){
mehatfie 2:3e7baa3e3fec 29 // Voltage_Driver::ch = channel;
mehatfie 2:3e7baa3e3fec 30 // }
mehatfie 2:3e7baa3e3fec 31 //
mehatfie 2:3e7baa3e3fec 32 // int getChannel(){
mehatfie 2:3e7baa3e3fec 33 // return Voltage_Driver::ch;
mehatfie 2:3e7baa3e3fec 34 // }
mehatfie 2:3e7baa3e3fec 35 //};
mehatfie 2:3e7baa3e3fec 36 //
mehatfie 2:3e7baa3e3fec 37 ////Voltage_Driver::Voltage_Driver(void){
mehatfie 2:3e7baa3e3fec 38 ////}
mehatfie 2:3e7baa3e3fec 39 //
mehatfie 2:3e7baa3e3fec 40 ////A line consists of [ __(Local_Name)__ __(function)__ __(parameter1)__ __(parameter2)__ __(parameter3)__ ... and so on]
mehatfie 2:3e7baa3e3fec 41 //int Voltage_Driver::interpret(){
mehatfie 2:3e7baa3e3fec 42 // /*
mehatfie 2:3e7baa3e3fec 43 // lcd.cls(); //clear the display
mehatfie 2:3e7baa3e3fec 44 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 45 // lcd.printf("Test2 ");
mehatfie 2:3e7baa3e3fec 46 // lcd.setAddress(0,1);
mehatfie 2:3e7baa3e3fec 47 // lcd.printf("wrd1: %s", lineData.word[0]);
mehatfie 2:3e7baa3e3fec 48 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 49 // lcd.printf("wrd2: %s", lineData.word[1]);
mehatfie 2:3e7baa3e3fec 50 // wait(3);
mehatfie 2:3e7baa3e3fec 51 //*/
mehatfie 2:3e7baa3e3fec 52 //
mehatfie 2:3e7baa3e3fec 53 //
mehatfie 2:3e7baa3e3fec 54 // string firstWord = lineData.word[0]; //get the first word in the line
mehatfie 2:3e7baa3e3fec 55 ///*
mehatfie 2:3e7baa3e3fec 56 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 57 // lcd.printf("fW: %s", firstWord);
mehatfie 2:3e7baa3e3fec 58 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 59 // lcd.printf("ch: %d", ch);
mehatfie 2:3e7baa3e3fec 60 // wait(3);*/
mehatfie 2:3e7baa3e3fec 61 //
mehatfie 2:3e7baa3e3fec 62 // //Initialize the class and device
mehatfie 2:3e7baa3e3fec 63 // if (firstWord.compare("device") == 0){
mehatfie 2:3e7baa3e3fec 64 // //Order of Line: Command, Local_Name, VOLTAGE_DRIVER, Channel(1,2,3,4,5,6,7,8)
mehatfie 2:3e7baa3e3fec 65 //
mehatfie 2:3e7baa3e3fec 66 // test = 10;
mehatfie 2:3e7baa3e3fec 67 //
mehatfie 2:3e7baa3e3fec 68 // if (lineData.numWords != 4){
mehatfie 2:3e7baa3e3fec 69 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 70 // return 0;
mehatfie 2:3e7baa3e3fec 71 // }
mehatfie 2:3e7baa3e3fec 72 //
mehatfie 2:3e7baa3e3fec 73 // string channel = lineData.word[3]; //Parameter is a number
mehatfie 2:3e7baa3e3fec 74 // int channelValue = 0;
mehatfie 2:3e7baa3e3fec 75 // sscanf(channel.c_str(), "%d", &channelValue);
mehatfie 2:3e7baa3e3fec 76 //
mehatfie 2:3e7baa3e3fec 77 // //Channel Value between 1 to 8
mehatfie 2:3e7baa3e3fec 78 // if (channelValue >= 1 && channelValue <= 8){
mehatfie 2:3e7baa3e3fec 79 //
mehatfie 2:3e7baa3e3fec 80 // setChannel(channelValue);
mehatfie 2:3e7baa3e3fec 81 // //ch = channelValue;
mehatfie 2:3e7baa3e3fec 82 //
mehatfie 2:3e7baa3e3fec 83 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 84 // lcd.printf("fW: %s", firstWord);
mehatfie 2:3e7baa3e3fec 85 // //lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 86 // //lcd.printf("ch: %d", getChannel());
mehatfie 2:3e7baa3e3fec 87 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 88 // lcd.printf("test: %d", test);
mehatfie 2:3e7baa3e3fec 89 // //lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 90 // //lcd.printf("chString: %s", chString);
mehatfie 2:3e7baa3e3fec 91 // wait(2);
mehatfie 2:3e7baa3e3fec 92 //
mehatfie 2:3e7baa3e3fec 93 // switch (channelValue){
mehatfie 2:3e7baa3e3fec 94 // case 1:
mehatfie 2:3e7baa3e3fec 95 // case 2:
mehatfie 2:3e7baa3e3fec 96 // bridges.enablePwm(BridgeDriver::MOTOR_A, 0);
mehatfie 2:3e7baa3e3fec 97 // break;
mehatfie 2:3e7baa3e3fec 98 // case 3:
mehatfie 2:3e7baa3e3fec 99 // case 4:
mehatfie 2:3e7baa3e3fec 100 // bridges.enablePwm(BridgeDriver::MOTOR_B, 0);
mehatfie 2:3e7baa3e3fec 101 // break;
mehatfie 2:3e7baa3e3fec 102 // case 5:
mehatfie 2:3e7baa3e3fec 103 // case 6:
mehatfie 2:3e7baa3e3fec 104 // bridges.enablePwm(BridgeDriver::MOTOR_C, 0);
mehatfie 2:3e7baa3e3fec 105 // break;
mehatfie 2:3e7baa3e3fec 106 // case 7:
mehatfie 2:3e7baa3e3fec 107 // case 8:
mehatfie 2:3e7baa3e3fec 108 // bridges.enablePwm(BridgeDriver::MOTOR_D, 0);
mehatfie 2:3e7baa3e3fec 109 // break;
mehatfie 2:3e7baa3e3fec 110 // }
mehatfie 2:3e7baa3e3fec 111 // /* lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 112 // lcd.printf("AchannelVal: %d", channelValue);
mehatfie 2:3e7baa3e3fec 113 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 114 // lcd.printf("Ach: %d", ch);
mehatfie 2:3e7baa3e3fec 115 // wait(3);*/
mehatfie 2:3e7baa3e3fec 116 //
mehatfie 2:3e7baa3e3fec 117 // }
mehatfie 2:3e7baa3e3fec 118 // else{
mehatfie 2:3e7baa3e3fec 119 // //ERROR Out
mehatfie 2:3e7baa3e3fec 120 // //Unacceptable channel, or conversion function failed when converting string to int
mehatfie 2:3e7baa3e3fec 121 // }
mehatfie 2:3e7baa3e3fec 122 // }
mehatfie 2:3e7baa3e3fec 123 //
mehatfie 2:3e7baa3e3fec 124 // //if the first word is not "device" it means that it's trying to perform a function to a specific Motor
mehatfie 2:3e7baa3e3fec 125 // else{
mehatfie 2:3e7baa3e3fec 126 //
mehatfie 2:3e7baa3e3fec 127 //
mehatfie 2:3e7baa3e3fec 128 //
mehatfie 2:3e7baa3e3fec 129 // //Order of Line: Local_Name, Function_Name, Param1, Param2, Param3,.......
mehatfie 2:3e7baa3e3fec 130 // string localname = lineData.word[0]; //just for the sake of following the variable easily and understanding
mehatfie 2:3e7baa3e3fec 131 // string func = lineData.word[1];
mehatfie 2:3e7baa3e3fec 132 //
mehatfie 2:3e7baa3e3fec 133 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 134 // /*** <Func: forceBrake> ***/
mehatfie 2:3e7baa3e3fec 135 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 136 // if (func.compare("forceBrake") == 0){
mehatfie 2:3e7baa3e3fec 137 //
mehatfie 2:3e7baa3e3fec 138 // if (lineData.numWords != 3){
mehatfie 2:3e7baa3e3fec 139 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 140 // return 0;
mehatfie 2:3e7baa3e3fec 141 // }
mehatfie 2:3e7baa3e3fec 142 //
mehatfie 2:3e7baa3e3fec 143 // bridges.forceBrake(ch);
mehatfie 2:3e7baa3e3fec 144 // }
mehatfie 2:3e7baa3e3fec 145 //
mehatfie 2:3e7baa3e3fec 146 //
mehatfie 2:3e7baa3e3fec 147 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 148 // /*** <Func: drive> ***/
mehatfie 2:3e7baa3e3fec 149 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 150 // else if (func.compare("drive") == 0){
mehatfie 2:3e7baa3e3fec 151 // //Order of Line: Local_Name, drive
mehatfie 2:3e7baa3e3fec 152 //
mehatfie 2:3e7baa3e3fec 153 // lcd.setAddress(0,0);
mehatfie 2:3e7baa3e3fec 154 // lcd.printf("lclN: %s ", localname);
mehatfie 2:3e7baa3e3fec 155 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 156 // lcd.printf("func: %s ", func);
mehatfie 2:3e7baa3e3fec 157 // //lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 158 // //lcd.printf("3ch: %d ", getChannel());
mehatfie 2:3e7baa3e3fec 159 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 160 // lcd.printf("test: %d", test);
mehatfie 2:3e7baa3e3fec 161 // //lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 162 // //lcd.printf("chString: %s ", chString);
mehatfie 2:3e7baa3e3fec 163 // wait(3);
mehatfie 2:3e7baa3e3fec 164 //
mehatfie 2:3e7baa3e3fec 165 // if (lineData.numWords != 2){
mehatfie 2:3e7baa3e3fec 166 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 167 // return 0;
mehatfie 2:3e7baa3e3fec 168 // }
mehatfie 2:3e7baa3e3fec 169 // /*
mehatfie 2:3e7baa3e3fec 170 // int State = 2;
mehatfie 2:3e7baa3e3fec 171 // int channelValue = atoi(chString);
mehatfie 2:3e7baa3e3fec 172 // State = bridges.drive(channelValue, 1); //Turn channel on
mehatfie 2:3e7baa3e3fec 173 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 174 // lcd.printf("TEST ch: %d, State: %d", channelValue, State);
mehatfie 2:3e7baa3e3fec 175 // wait(3);*/
mehatfie 2:3e7baa3e3fec 176 //
mehatfie 2:3e7baa3e3fec 177 // }
mehatfie 2:3e7baa3e3fec 178 //
mehatfie 2:3e7baa3e3fec 179 //
mehatfie 2:3e7baa3e3fec 180 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 181 // /**** <Func: off> ****/
mehatfie 2:3e7baa3e3fec 182 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 183 // else if (func.compare("drive") == 0){
mehatfie 2:3e7baa3e3fec 184 // //Order of Line: Local_Name, drive, duration
mehatfie 2:3e7baa3e3fec 185 //
mehatfie 2:3e7baa3e3fec 186 // if (lineData.numWords != 2){
mehatfie 2:3e7baa3e3fec 187 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 188 // return 0;
mehatfie 2:3e7baa3e3fec 189 // }
mehatfie 2:3e7baa3e3fec 190 //
mehatfie 2:3e7baa3e3fec 191 // bridges.drive(getChannel(), 0); //Turn channel off
mehatfie 2:3e7baa3e3fec 192 // }
mehatfie 2:3e7baa3e3fec 193 //
mehatfie 2:3e7baa3e3fec 194 // else {
mehatfie 2:3e7baa3e3fec 195 // return 0;
mehatfie 2:3e7baa3e3fec 196 //
mehatfie 2:3e7baa3e3fec 197 // }
mehatfie 2:3e7baa3e3fec 198 // }
mehatfie 2:3e7baa3e3fec 199 // /*
mehatfie 2:3e7baa3e3fec 200 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 201 // lcd.printf("ENDch: %d ", getChannel());
mehatfie 2:3e7baa3e3fec 202 // wait(3);*/
mehatfie 2:3e7baa3e3fec 203 //
mehatfie 2:3e7baa3e3fec 204 // return 1;
mehatfie 2:3e7baa3e3fec 205 //}
mehatfie 2:3e7baa3e3fec 206 //
mehatfie 2:3e7baa3e3fec 207 //
mehatfie 2:3e7baa3e3fec 208 //
mehatfie 2:3e7baa3e3fec 209 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 210 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 211 ///******************************** <CLASS: Motor> ********************************/
mehatfie 2:3e7baa3e3fec 212 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 213 ///**********************************************************************************************************************************/
mehatfie 2:3e7baa3e3fec 214 //
mehatfie 2:3e7baa3e3fec 215 //class Motor{
mehatfie 2:3e7baa3e3fec 216 //
mehatfie 2:3e7baa3e3fec 217 // enum BridgeDriver::Motors motor;
mehatfie 2:3e7baa3e3fec 218 //
mehatfie 2:3e7baa3e3fec 219 // public :
mehatfie 2:3e7baa3e3fec 220 // int interpret();
mehatfie 2:3e7baa3e3fec 221 // void enableBrake();
mehatfie 2:3e7baa3e3fec 222 // int forceBrake();
mehatfie 2:3e7baa3e3fec 223 // //int forceFloat();
mehatfie 2:3e7baa3e3fec 224 // float drive();
mehatfie 2:3e7baa3e3fec 225 //
mehatfie 2:3e7baa3e3fec 226 //
mehatfie 2:3e7baa3e3fec 227 // void setMotor(BridgeDriver::Motors selectedMotor){
mehatfie 2:3e7baa3e3fec 228 // motor = selectedMotor;
mehatfie 2:3e7baa3e3fec 229 // }
mehatfie 2:3e7baa3e3fec 230 //
mehatfie 2:3e7baa3e3fec 231 // enum BridgeDriver::Motors getMotor(){
mehatfie 2:3e7baa3e3fec 232 // return motor;
mehatfie 2:3e7baa3e3fec 233 // }
mehatfie 2:3e7baa3e3fec 234 //
mehatfie 2:3e7baa3e3fec 235 //};
mehatfie 2:3e7baa3e3fec 236 //
mehatfie 2:3e7baa3e3fec 237 ////A line consists of [ __(Local_Name)__ __(function)__ __(parameter1)__ __(parameter2)__ __(parameter3)__ ... and so on]
mehatfie 2:3e7baa3e3fec 238 //int Motor::interpret(){
mehatfie 2:3e7baa3e3fec 239 // /*
mehatfie 2:3e7baa3e3fec 240 // lcd.cls(); //clear the display
mehatfie 2:3e7baa3e3fec 241 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 242 // lcd.printf("Test2 ");
mehatfie 2:3e7baa3e3fec 243 // lcd.setAddress(0,1);
mehatfie 2:3e7baa3e3fec 244 // lcd.printf("wrd1: %s", lineData.word[0]);
mehatfie 2:3e7baa3e3fec 245 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 246 // lcd.printf("wrd2: %s", lineData.word[1]);
mehatfie 2:3e7baa3e3fec 247 // wait(3);
mehatfie 2:3e7baa3e3fec 248 //*/
mehatfie 2:3e7baa3e3fec 249 // /*
mehatfie 2:3e7baa3e3fec 250 // lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 251 // lcd.printf("wrd1: %s", lineData.word[0]);
mehatfie 2:3e7baa3e3fec 252 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 253 // lcd.printf("TEST1 ");
mehatfie 2:3e7baa3e3fec 254 // wait(1);*/
mehatfie 2:3e7baa3e3fec 255 //
mehatfie 2:3e7baa3e3fec 256 // string firstWord = lineData.word[0]; //splits the str based on a space delimeter
mehatfie 2:3e7baa3e3fec 257 //
mehatfie 2:3e7baa3e3fec 258 // if (firstWord.compare("device") == 0){
mehatfie 2:3e7baa3e3fec 259 // //Order of Line: Command, Local_Name, VOLTAGE_DRIVER, Channel(1,2,3,4,5,6,7,8)
mehatfie 2:3e7baa3e3fec 260 //
mehatfie 2:3e7baa3e3fec 261 // if (lineData.numWords != 4){
mehatfie 2:3e7baa3e3fec 262 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 263 // return 0;
mehatfie 2:3e7baa3e3fec 264 // }
mehatfie 2:3e7baa3e3fec 265 //
mehatfie 2:3e7baa3e3fec 266 // string channel = lineData.word[3]; //Parameter is a single character, so dereference the point to the word
mehatfie 2:3e7baa3e3fec 267 //
mehatfie 2:3e7baa3e3fec 268 // if ((channel.compare("A") == 0) || (channel.compare("a") == 0))
mehatfie 2:3e7baa3e3fec 269 // setMotor(BridgeDriver::MOTOR_A);
mehatfie 2:3e7baa3e3fec 270 // else if ((channel.compare("B") == 0) || (channel.compare("b") == 0))
mehatfie 2:3e7baa3e3fec 271 // setMotor(BridgeDriver::MOTOR_B);
mehatfie 2:3e7baa3e3fec 272 // else if ((channel.compare("C") == 0) || (channel.compare("c") == 0))
mehatfie 2:3e7baa3e3fec 273 // setMotor(BridgeDriver::MOTOR_C);
mehatfie 2:3e7baa3e3fec 274 // else if ((channel.compare("D") == 0) || (channel.compare("d") == 0))
mehatfie 2:3e7baa3e3fec 275 // setMotor(BridgeDriver::MOTOR_D);
mehatfie 2:3e7baa3e3fec 276 // }
mehatfie 2:3e7baa3e3fec 277 //
mehatfie 2:3e7baa3e3fec 278 // //if the first word is not "device" it means that it's trying to perform a function to a specific Motor
mehatfie 2:3e7baa3e3fec 279 // else{
mehatfie 2:3e7baa3e3fec 280 // //Order of Line: Local_Name, Function_Name, Param1, Param2, Param3,.......
mehatfie 2:3e7baa3e3fec 281 // //char localname[15] = lineData.word[0]; //just for the sake of following the variable easily and understanding
mehatfie 2:3e7baa3e3fec 282 // string func = lineData.word[1];
mehatfie 2:3e7baa3e3fec 283 //
mehatfie 2:3e7baa3e3fec 284 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 285 // /*** <Func: enableBrake> ***/
mehatfie 2:3e7baa3e3fec 286 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 287 // if (func.compare("enableBrake") == 0){
mehatfie 2:3e7baa3e3fec 288 //
mehatfie 2:3e7baa3e3fec 289 // if (lineData.numWords != 4){
mehatfie 2:3e7baa3e3fec 290 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 291 // return 0;
mehatfie 2:3e7baa3e3fec 292 // }
mehatfie 2:3e7baa3e3fec 293 //
mehatfie 2:3e7baa3e3fec 294 // //Initialize and Convert Parameters
mehatfie 2:3e7baa3e3fec 295 // string enable = lineData.word[2];
mehatfie 2:3e7baa3e3fec 296 // int enableValue = 0;
mehatfie 2:3e7baa3e3fec 297 // sscanf(enable.c_str(), "%d", &enableValue);
mehatfie 2:3e7baa3e3fec 298 //
mehatfie 2:3e7baa3e3fec 299 // bridges.enableBraking(getMotor(), enableValue);
mehatfie 2:3e7baa3e3fec 300 // }
mehatfie 2:3e7baa3e3fec 301 //
mehatfie 2:3e7baa3e3fec 302 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 303 // /*** <Func: forceBrake> ***/
mehatfie 2:3e7baa3e3fec 304 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 305 // else if (func.compare("forceBrake") == 0){
mehatfie 2:3e7baa3e3fec 306 //
mehatfie 2:3e7baa3e3fec 307 // if (lineData.numWords != 3){
mehatfie 2:3e7baa3e3fec 308 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 309 // return 0;
mehatfie 2:3e7baa3e3fec 310 // }
mehatfie 2:3e7baa3e3fec 311 //
mehatfie 2:3e7baa3e3fec 312 // bridges.forceBrake(getMotor());
mehatfie 2:3e7baa3e3fec 313 // }
mehatfie 2:3e7baa3e3fec 314 //
mehatfie 2:3e7baa3e3fec 315 //
mehatfie 2:3e7baa3e3fec 316 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 317 // /*** <Func: drive> ***/
mehatfie 2:3e7baa3e3fec 318 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 319 // else if (func.compare("drive") == 0){
mehatfie 2:3e7baa3e3fec 320 //
mehatfie 2:3e7baa3e3fec 321 // /*lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 322 // lcd.printf("wrd2: %s", lineData.word[1]);
mehatfie 2:3e7baa3e3fec 323 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 324 // lcd.printf("TEST2 ");
mehatfie 2:3e7baa3e3fec 325 // wait(1);*/
mehatfie 2:3e7baa3e3fec 326 //
mehatfie 2:3e7baa3e3fec 327 // if (lineData.numWords != 4){
mehatfie 2:3e7baa3e3fec 328 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 329 // return 0;
mehatfie 2:3e7baa3e3fec 330 // }
mehatfie 2:3e7baa3e3fec 331 //
mehatfie 2:3e7baa3e3fec 332 // //Initialize Parameters
mehatfie 2:3e7baa3e3fec 333 // string speed = lineData.word[2];
mehatfie 2:3e7baa3e3fec 334 // string dir = lineData.word[3];
mehatfie 2:3e7baa3e3fec 335 //
mehatfie 2:3e7baa3e3fec 336 // //Initialize Convertion Variables if needed
mehatfie 2:3e7baa3e3fec 337 // float speedValue;
mehatfie 2:3e7baa3e3fec 338 // int dirValue = 0;
mehatfie 2:3e7baa3e3fec 339 //
mehatfie 2:3e7baa3e3fec 340 // //Convert string to usable values
mehatfie 2:3e7baa3e3fec 341 // //NOTE both atof and atoi functions return 0 if no valid conversion could be performed
mehatfie 2:3e7baa3e3fec 342 // sscanf(speed.c_str(), "%f", &speedValue);
mehatfie 2:3e7baa3e3fec 343 // speedValue = speedValue / 100;
mehatfie 2:3e7baa3e3fec 344 //
mehatfie 2:3e7baa3e3fec 345 // if (speedValue <= 0)
mehatfie 2:3e7baa3e3fec 346 // return 0; //Error Out because a value gives no functionality or is wrong
mehatfie 2:3e7baa3e3fec 347 //
mehatfie 2:3e7baa3e3fec 348 // if (dir.compare("CC") == 0 || dir.compare("cc") == 0)
mehatfie 2:3e7baa3e3fec 349 // dirValue = -1; //Turn Clockwise
mehatfie 2:3e7baa3e3fec 350 // else if (dir.compare("C") == 0 || dir.compare("c") == 0)
mehatfie 2:3e7baa3e3fec 351 // dirValue = 1; //Turn CounterClockwise
mehatfie 2:3e7baa3e3fec 352 // else
mehatfie 2:3e7baa3e3fec 353 // return 0; //Error Out since the parameter is incorrect
mehatfie 2:3e7baa3e3fec 354 //
mehatfie 2:3e7baa3e3fec 355 // bridges.drive(getMotor(), dirValue, speedValue); //Turn on the Motor
mehatfie 2:3e7baa3e3fec 356 //
mehatfie 2:3e7baa3e3fec 357 // }
mehatfie 2:3e7baa3e3fec 358 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 359 // /**** <Func: off> ****/
mehatfie 2:3e7baa3e3fec 360 // /******************************************************************************/
mehatfie 2:3e7baa3e3fec 361 // else if (func.compare("off") == 0){
mehatfie 2:3e7baa3e3fec 362 //
mehatfie 2:3e7baa3e3fec 363 // /*lcd.setAddress(0,2);
mehatfie 2:3e7baa3e3fec 364 // lcd.printf("wrd2: %s", lineData.word[1]);
mehatfie 2:3e7baa3e3fec 365 // lcd.setAddress(0,3);
mehatfie 2:3e7baa3e3fec 366 // lcd.printf("TEST2 ");
mehatfie 2:3e7baa3e3fec 367 // wait(1);*/
mehatfie 2:3e7baa3e3fec 368 //
mehatfie 2:3e7baa3e3fec 369 // if (lineData.numWords != 2){
mehatfie 2:3e7baa3e3fec 370 // //Error Check, incorrect number of parameter, error out
mehatfie 2:3e7baa3e3fec 371 // return 0;
mehatfie 2:3e7baa3e3fec 372 // }
mehatfie 2:3e7baa3e3fec 373 //
mehatfie 2:3e7baa3e3fec 374 // bridges.drive(getMotor(), 0, 0); //Turn off the Motor
mehatfie 2:3e7baa3e3fec 375 // }
mehatfie 2:3e7baa3e3fec 376 //
mehatfie 2:3e7baa3e3fec 377 // else {
mehatfie 2:3e7baa3e3fec 378 // return 0;
mehatfie 2:3e7baa3e3fec 379 //
mehatfie 2:3e7baa3e3fec 380 // }
mehatfie 2:3e7baa3e3fec 381 // }
mehatfie 2:3e7baa3e3fec 382 //
mehatfie 2:3e7baa3e3fec 383 // return 1;
mehatfie 2:3e7baa3e3fec 384 //}
mehatfie 2:3e7baa3e3fec 385 //
mehatfie 2:3e7baa3e3fec 386 //
mehatfie 2:3e7baa3e3fec 387 //
mehatfie 2:3e7baa3e3fec 388 //
mehatfie 2:3e7baa3e3fec 389 //
mehatfie 2:3e7baa3e3fec 390 //
mehatfie 2:3e7baa3e3fec 391 //
mehatfie 2:3e7baa3e3fec 392 //
mehatfie 2:3e7baa3e3fec 393 //
mehatfie 2:3e7baa3e3fec 394 //
mehatfie 2:3e7baa3e3fec 395 //
mehatfie 2:3e7baa3e3fec 396 //
mehatfie 2:3e7baa3e3fec 397 //
mehatfie 2:3e7baa3e3fec 398 //
mehatfie 2:3e7baa3e3fec 399 //
mehatfie 2:3e7baa3e3fec 400 //
mehatfie 2:3e7baa3e3fec 401 //
mehatfie 2:3e7baa3e3fec 402 //
mehatfie 2:3e7baa3e3fec 403 //
mehatfie 2:3e7baa3e3fec 404 //
mehatfie 2:3e7baa3e3fec 405 //
mehatfie 2:3e7baa3e3fec 406 //