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 01:54:00 2014 +0000
Revision:
4:86d0d04cc055
Parent:
3:078e9a1e8be3
Child:
5:e36e0538a903
- fixed bug where "deviceFound" was not matching correct value; "if (lineData.word[2].compare(DeviceNames[i]) == 0)"... forgot the "== 0"; ; - Added Device PinIN, works as expected for current "wait" function

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 4:86d0d04cc055 4 #include "PinIN.hpp"
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 4:86d0d04cc055 15 const string DeviceNames[] = {"MOTOR", "VOLTAGE_DRIVER", "PIN_IN"};
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 4:86d0d04cc055 23 case PIN_IN: return new PinIN(lineData); break;
mehatfie 3:078e9a1e8be3 24
mehatfie 3:078e9a1e8be3 25 //********** ADD NEXT DEVICE ABOVE **************//
mehatfie 3:078e9a1e8be3 26 default: break;
mehatfie 3:078e9a1e8be3 27 }
mehatfie 3:078e9a1e8be3 28 }
mehatfie 3:078e9a1e8be3 29
mehatfie 3:078e9a1e8be3 30 /************************** <MUST MODIFY> *************************/
mehatfie 3:078e9a1e8be3 31 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 32 /**********************************************************************************************************************************/
mehatfie 3:078e9a1e8be3 33
mehatfie 3:078e9a1e8be3 34
mehatfie 3:078e9a1e8be3 35
mehatfie 3:078e9a1e8be3 36 /******************************************************************************/
mehatfie 3:078e9a1e8be3 37 /*** <Global Initializations> ***/
mehatfie 3:078e9a1e8be3 38 /******************************************************************************/
mehatfie 3:078e9a1e8be3 39
mehatfie 2:3e7baa3e3fec 40 //Initializations
mehatfie 2:3e7baa3e3fec 41 Timer timer; // general purpose timer
mehatfie 2:3e7baa3e3fec 42 I2C i2c( P0_10, P0_11 ); // I2C bus (SDA, SCL)
mehatfie 2:3e7baa3e3fec 43 BridgeDriver bridges(&i2c, 1); // Bridge
mehatfie 2:3e7baa3e3fec 44 TextLCD_I2C lcd( &i2c, MCP23008_SA0, TextLCD::LCD20x4 ); // LCD
mehatfie 2:3e7baa3e3fec 45 SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // the pinout on the mbed LPC1768
mehatfie 2:3e7baa3e3fec 46
mehatfie 2:3e7baa3e3fec 47 DigitalIn killSw(KILL);
mehatfie 2:3e7baa3e3fec 48
mehatfie 2:3e7baa3e3fec 49 const int MAX_LINE_LENGTH = 100;
mehatfie 2:3e7baa3e3fec 50
mehatfie 2:3e7baa3e3fec 51
mehatfie 3:078e9a1e8be3 52 /******************************************************************************/
mehatfie 3:078e9a1e8be3 53 /*** <Function Initializations> ***/
mehatfie 3:078e9a1e8be3 54 /******************************************************************************/
mehatfie 2:3e7baa3e3fec 55
mehatfie 2:3e7baa3e3fec 56 void fullInit() {
mehatfie 2:3e7baa3e3fec 57
mehatfie 2:3e7baa3e3fec 58 killSw.mode(PullUp);
mehatfie 2:3e7baa3e3fec 59 initLCD();
mehatfie 2:3e7baa3e3fec 60 }
mehatfie 2:3e7baa3e3fec 61
mehatfie 2:3e7baa3e3fec 62 void initLCD(void) {
mehatfie 2:3e7baa3e3fec 63
mehatfie 2:3e7baa3e3fec 64 i2c.frequency(1000000);
mehatfie 2:3e7baa3e3fec 65 lcd.setBacklight(TextLCD::LightOn);
mehatfie 2:3e7baa3e3fec 66 wait(.6);
mehatfie 2:3e7baa3e3fec 67 lcd.cls(); //clear the display
mehatfie 2:3e7baa3e3fec 68 lcd.setAddress(0,0);
mehatfie 2:3e7baa3e3fec 69 lcd.printf("LCD Initialized");
mehatfie 2:3e7baa3e3fec 70 }
mehatfie 2:3e7baa3e3fec 71
mehatfie 3:078e9a1e8be3 72
mehatfie 3:078e9a1e8be3 73 /******************************************************************************/
mehatfie 3:078e9a1e8be3 74 /*** <Parent Device Class Initializations> ***/
mehatfie 3:078e9a1e8be3 75 /******************************************************************************/
mehatfie 3:078e9a1e8be3 76
mehatfie 3:078e9a1e8be3 77 int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]);
mehatfie 3:078e9a1e8be3 78 int currNumDevices = 0;
mehatfie 3:078e9a1e8be3 79
mehatfie 3:078e9a1e8be3 80 vector<Device*> devices;