Component Test's Software to work with "Universal Controller Box" - Software is an interpreter or "compiler" for programs to be done with a .txt file and read off of the SD Card

Dependencies:   BridgeDriver FrontPanelButtons MCP23017 SDFileSystem TextLCD mbed

Committer:
mehatfie
Date:
Fri Sep 19 00:46:26 2014 +0000
Revision:
3:078e9a1e8be3
Parent:
2:3e7baa3e3fec
Child:
4:86d0d04cc055
- Working properly for Motor, Voltage_Driver, and looping; - successful looping and program completion; - organizing for more readable and understandable code is starting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mehatfie 2:3e7baa3e3fec 1 #include "Initialization.hpp"
mehatfie 2:3e7baa3e3fec 2 #include "Motor.hpp"
mehatfie 2:3e7baa3e3fec 3 #include "VoltageDriver.hpp"
mehatfie 2:3e7baa3e3fec 4
mehatfie 3:078e9a1e8be3 5
mehatfie 3:078e9a1e8be3 6
mehatfie 3:078e9a1e8be3 7 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 8 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 9 /************************** <MUST MODIFY> *************************/
mehatfie 3:078e9a1e8be3 10 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 11 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 12
mehatfie 3:078e9a1e8be3 13 // ADD YOUR DEVICE NAME THE \\EXACT SAME WAY\\ AS THE ENUM NAME YOU DECLARED IN THE.hpp
mehatfie 3:078e9a1e8be3 14 // Must Declare names in reverse order for some reason...., it's the way they're indexed I believe
mehatfie 3:078e9a1e8be3 15 const string DeviceNames[] = {"VOLTAGE_DRIVER", "MOTOR"};
mehatfie 3:078e9a1e8be3 16
mehatfie 3:078e9a1e8be3 17 // ADD YOUR DEVICE TO THE LIST BELOW, CALLING YOUR DEVICE CLASS AS SHOWN
mehatfie 3:078e9a1e8be3 18 Device* Device::newDevice(int deviceFound, string _name, Line lineData){
mehatfie 3:078e9a1e8be3 19
mehatfie 3:078e9a1e8be3 20 switch (Device_Map[deviceFound]){
mehatfie 3:078e9a1e8be3 21 case MOTOR: return new Motor(lineData); break;
mehatfie 3:078e9a1e8be3 22 case VOLTAGE_DRIVER: return new VoltageDriver(lineData); break;
mehatfie 3:078e9a1e8be3 23
mehatfie 3:078e9a1e8be3 24 //********** ADD NEXT DEVICE ABOVE **************//
mehatfie 3:078e9a1e8be3 25 default: break;
mehatfie 3:078e9a1e8be3 26 }
mehatfie 3:078e9a1e8be3 27 }
mehatfie 3:078e9a1e8be3 28
mehatfie 3:078e9a1e8be3 29 /************************** <MUST MODIFY> *************************/
mehatfie 3:078e9a1e8be3 30 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 31 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 32
mehatfie 3:078e9a1e8be3 33
mehatfie 3:078e9a1e8be3 34
mehatfie 3:078e9a1e8be3 35 /******************************************************************************/
mehatfie 3:078e9a1e8be3 36 /*** <Global Initializations> ***/
mehatfie 3:078e9a1e8be3 37 /******************************************************************************/
mehatfie 3:078e9a1e8be3 38
mehatfie 2:3e7baa3e3fec 39 //Initializations
mehatfie 2:3e7baa3e3fec 40 Timer timer; // general purpose timer
mehatfie 2:3e7baa3e3fec 41 I2C i2c( P0_10, P0_11 ); // I2C bus (SDA, SCL)
mehatfie 2:3e7baa3e3fec 42 BridgeDriver bridges(&i2c, 1); // Bridge
mehatfie 2:3e7baa3e3fec 43 TextLCD_I2C lcd( &i2c, MCP23008_SA0, TextLCD::LCD20x4 ); // LCD
mehatfie 2:3e7baa3e3fec 44 SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // the pinout on the mbed LPC1768
mehatfie 2:3e7baa3e3fec 45
mehatfie 2:3e7baa3e3fec 46 DigitalIn killSw(KILL);
mehatfie 2:3e7baa3e3fec 47
mehatfie 2:3e7baa3e3fec 48 const int MAX_LINE_LENGTH = 100;
mehatfie 2:3e7baa3e3fec 49
mehatfie 2:3e7baa3e3fec 50
mehatfie 3:078e9a1e8be3 51 /******************************************************************************/
mehatfie 3:078e9a1e8be3 52 /*** <Function Initializations> ***/
mehatfie 3:078e9a1e8be3 53 /******************************************************************************/
mehatfie 2:3e7baa3e3fec 54
mehatfie 2:3e7baa3e3fec 55 void fullInit() {
mehatfie 2:3e7baa3e3fec 56
mehatfie 2:3e7baa3e3fec 57 killSw.mode(PullUp);
mehatfie 2:3e7baa3e3fec 58 initLCD();
mehatfie 2:3e7baa3e3fec 59 }
mehatfie 2:3e7baa3e3fec 60
mehatfie 2:3e7baa3e3fec 61 void initLCD(void) {
mehatfie 2:3e7baa3e3fec 62
mehatfie 2:3e7baa3e3fec 63 i2c.frequency(1000000);
mehatfie 2:3e7baa3e3fec 64 lcd.setBacklight(TextLCD::LightOn);
mehatfie 2:3e7baa3e3fec 65 wait(.6);
mehatfie 2:3e7baa3e3fec 66 lcd.cls(); //clear the display
mehatfie 2:3e7baa3e3fec 67 lcd.setAddress(0,0);
mehatfie 2:3e7baa3e3fec 68 lcd.printf("LCD Initialized");
mehatfie 2:3e7baa3e3fec 69 }
mehatfie 2:3e7baa3e3fec 70
mehatfie 3:078e9a1e8be3 71
mehatfie 3:078e9a1e8be3 72 /******************************************************************************/
mehatfie 3:078e9a1e8be3 73 /*** <Parent Device Class Initializations> ***/
mehatfie 3:078e9a1e8be3 74 /******************************************************************************/
mehatfie 3:078e9a1e8be3 75
mehatfie 3:078e9a1e8be3 76 int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]);
mehatfie 3:078e9a1e8be3 77 int currNumDevices = 0;
mehatfie 3:078e9a1e8be3 78
mehatfie 3:078e9a1e8be3 79 vector<Device*> devices;