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.hpp@2:3e7baa3e3fec, 2014-09-18 (annotated)
- Committer:
- mehatfie
- Date:
- Thu Sep 18 23:38:11 2014 +0000
- Revision:
- 2:3e7baa3e3fec
- Parent:
- 1:5731f31f96be
- Child:
- 3:078e9a1e8be3
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
mehatfie | 0:22618cf06f45 | 1 | #ifndef INITIALIZATION_HPP |
mehatfie | 0:22618cf06f45 | 2 | #define INITIALIZATION_HPP |
mehatfie | 0:22618cf06f45 | 3 | |
mehatfie | 0:22618cf06f45 | 4 | #include "mbed.h" |
mehatfie | 0:22618cf06f45 | 5 | #include "LocalPinNames.h" |
mehatfie | 0:22618cf06f45 | 6 | #include "BridgeDriver.h" |
mehatfie | 0:22618cf06f45 | 7 | #include "FrontPanelButtons.h" |
mehatfie | 0:22618cf06f45 | 8 | #include "TextLCD.h" |
mehatfie | 0:22618cf06f45 | 9 | #include "SDFileSystem.h" |
mehatfie | 2:3e7baa3e3fec | 10 | #include <string> |
mehatfie | 2:3e7baa3e3fec | 11 | #include <vector> |
mehatfie | 0:22618cf06f45 | 12 | |
mehatfie | 0:22618cf06f45 | 13 | //Initializations |
mehatfie | 2:3e7baa3e3fec | 14 | extern Timer timer; // general purpose timer |
mehatfie | 2:3e7baa3e3fec | 15 | extern I2C i2c; // I2C bus (SDA, SCL) |
mehatfie | 2:3e7baa3e3fec | 16 | extern BridgeDriver bridges; // Bridge |
mehatfie | 2:3e7baa3e3fec | 17 | extern TextLCD_I2C lcd; // LCD |
mehatfie | 2:3e7baa3e3fec | 18 | extern SDFileSystem sd; // the pinout on the mbed LPC1768 |
mehatfie | 0:22618cf06f45 | 19 | |
mehatfie | 2:3e7baa3e3fec | 20 | extern DigitalIn killSw; |
mehatfie | 2:3e7baa3e3fec | 21 | |
mehatfie | 2:3e7baa3e3fec | 22 | extern const int MAX_LINE_LENGTH; |
mehatfie | 2:3e7baa3e3fec | 23 | |
mehatfie | 2:3e7baa3e3fec | 24 | void fullInit(); |
mehatfie | 0:22618cf06f45 | 25 | |
mehatfie | 2:3e7baa3e3fec | 26 | void initLCD(void); |
mehatfie | 0:22618cf06f45 | 27 | |
mehatfie | 0:22618cf06f45 | 28 | |
mehatfie | 0:22618cf06f45 | 29 | struct Line{ |
mehatfie | 0:22618cf06f45 | 30 | |
mehatfie | 2:3e7baa3e3fec | 31 | //string fullLine; //full line, starting from the beginning |
mehatfie | 0:22618cf06f45 | 32 | int lineNumber; //current line number in the program txt file that is running |
mehatfie | 2:3e7baa3e3fec | 33 | //vector<string> word; |
mehatfie | 2:3e7baa3e3fec | 34 | string word[15]; //array of words from the line of text, assuming no more than 15 words will be in any given line |
mehatfie | 0:22618cf06f45 | 35 | //in this initialization there are 15 string (pointers) of size MAX_LINE_LENGTH each |
mehatfie | 0:22618cf06f45 | 36 | int numWords; //Number of words in the given line |
mehatfie | 1:5731f31f96be | 37 | int lineAddress; |
mehatfie | 0:22618cf06f45 | 38 | }; |
mehatfie | 0:22618cf06f45 | 39 | |
mehatfie | 2:3e7baa3e3fec | 40 | // |
mehatfie | 0:22618cf06f45 | 41 | extern struct Line lineData; |
mehatfie | 0:22618cf06f45 | 42 | |
mehatfie | 2:3e7baa3e3fec | 43 | |
mehatfie | 2:3e7baa3e3fec | 44 | |
mehatfie | 2:3e7baa3e3fec | 45 | |
mehatfie | 2:3e7baa3e3fec | 46 | enum DeviceType{MOTOR, VOLTAGE_DRIVER}; |
mehatfie | 2:3e7baa3e3fec | 47 | static const enum DeviceType Device_Map[] = {MOTOR, VOLTAGE_DRIVER}; |
mehatfie | 2:3e7baa3e3fec | 48 | extern const char *DeviceNames[]; |
mehatfie | 2:3e7baa3e3fec | 49 | extern int numDevices; |
mehatfie | 2:3e7baa3e3fec | 50 | extern int currNumDevices; |
mehatfie | 2:3e7baa3e3fec | 51 | |
mehatfie | 2:3e7baa3e3fec | 52 | |
mehatfie | 2:3e7baa3e3fec | 53 | class Device{ |
mehatfie | 2:3e7baa3e3fec | 54 | |
mehatfie | 2:3e7baa3e3fec | 55 | public: |
mehatfie | 2:3e7baa3e3fec | 56 | string name; |
mehatfie | 2:3e7baa3e3fec | 57 | enum DeviceType type; |
mehatfie | 2:3e7baa3e3fec | 58 | static Device* newDevice(int, string, Line); |
mehatfie | 2:3e7baa3e3fec | 59 | //void setName(string); |
mehatfie | 2:3e7baa3e3fec | 60 | //void setType(DeviceType); |
mehatfie | 2:3e7baa3e3fec | 61 | virtual int interpret(Line&) = 0; |
mehatfie | 2:3e7baa3e3fec | 62 | /*{ |
mehatfie | 2:3e7baa3e3fec | 63 | lcd.setAddress(0,3); |
mehatfie | 2:3e7baa3e3fec | 64 | lcd.printf("CHECK Device "); |
mehatfie | 2:3e7baa3e3fec | 65 | wait(2); |
mehatfie | 2:3e7baa3e3fec | 66 | return 0; |
mehatfie | 2:3e7baa3e3fec | 67 | }*/ |
mehatfie | 2:3e7baa3e3fec | 68 | }; |
mehatfie | 2:3e7baa3e3fec | 69 | |
mehatfie | 2:3e7baa3e3fec | 70 | extern vector<Device*> devices; //Initialize array of devices, initially assume 15 devices will be used (will expand as needed) |
mehatfie | 2:3e7baa3e3fec | 71 | //extern Device devices[]; |
mehatfie | 2:3e7baa3e3fec | 72 | |
mehatfie | 2:3e7baa3e3fec | 73 | void addDevice(int, Line); |
mehatfie | 2:3e7baa3e3fec | 74 | |
mehatfie | 0:22618cf06f45 | 75 | #endif |