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:
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?

UserRevisionLine numberNew 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