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
Initialization.cpp@9:5a0c4c6e39c7, 2014-09-24 (annotated)
- Committer:
- mehatfie
- Date:
- Wed Sep 24 22:23:00 2014 +0000
- Revision:
- 9:5a0c4c6e39c7
- Parent:
- 6:d1594fd2ec5a
- Child:
- 11:bc9cd2869f95
- System error checking and syntax checking should be completed; --- Compiled code still functions correctly; --- All error checking has not been checked that they indeed error out / not error out and function as planned
Who changed what in which revision?
| User | Revision | Line number | New 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 | 5:e36e0538a903 | 18 | Device* Device::newDevice(int deviceFound, string _name, LineData 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 | 6:d1594fd2ec5a | 50 | int DummyMode = 0; // run through the code without performing actions |
| 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 | 9:5a0c4c6e39c7 | 69 | lcd.printf("Initializing..."); |
| mehatfie | 2:3e7baa3e3fec | 70 | } |
| mehatfie | 2:3e7baa3e3fec | 71 | |
| mehatfie | 9:5a0c4c6e39c7 | 72 | void ErrorOut(string message, int lineNumber){ |
| mehatfie | 9:5a0c4c6e39c7 | 73 | |
| mehatfie | 9:5a0c4c6e39c7 | 74 | lcd.cls(); //clear the display |
| mehatfie | 9:5a0c4c6e39c7 | 75 | |
| mehatfie | 9:5a0c4c6e39c7 | 76 | lcd.setAddress(0,0); |
| mehatfie | 9:5a0c4c6e39c7 | 77 | lcd.printf("Error: %s", message); |
| mehatfie | 9:5a0c4c6e39c7 | 78 | |
| mehatfie | 9:5a0c4c6e39c7 | 79 | lcd.setAddress(0,3); |
| mehatfie | 9:5a0c4c6e39c7 | 80 | lcd.printf("Line Number: %d", lineNumber); |
| mehatfie | 9:5a0c4c6e39c7 | 81 | } |
| mehatfie | 3:078e9a1e8be3 | 82 | |
| mehatfie | 3:078e9a1e8be3 | 83 | /******************************************************************************/ |
| mehatfie | 3:078e9a1e8be3 | 84 | /*** <Parent Device Class Initializations> ***/ |
| mehatfie | 3:078e9a1e8be3 | 85 | /******************************************************************************/ |
| mehatfie | 3:078e9a1e8be3 | 86 | |
| mehatfie | 3:078e9a1e8be3 | 87 | int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]); |
| mehatfie | 3:078e9a1e8be3 | 88 | int currNumDevices = 0; |
| mehatfie | 3:078e9a1e8be3 | 89 | |
| mehatfie | 9:5a0c4c6e39c7 | 90 | vector<Device*> devices; //create a vector to hold all of the devices |