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@5:e36e0538a903, 2014-09-23 (annotated)
- Committer:
- mehatfie
- Date:
- Tue Sep 23 18:24:19 2014 +0000
- Revision:
- 5:e36e0538a903
- Parent:
- 4:86d0d04cc055
- Child:
- 6:d1594fd2ec5a
- Conditional Command working successfully; --- Also working with loop command; - Each major command (interpret, loop, condition), must have a unique ending return value
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 | 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; |