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

Revision:
2:3e7baa3e3fec
Parent:
1:5731f31f96be
Child:
3:078e9a1e8be3
--- a/Initialization.hpp	Tue Sep 16 18:27:41 2014 +0000
+++ b/Initialization.hpp	Thu Sep 18 23:38:11 2014 +0000
@@ -7,48 +7,69 @@
 #include "FrontPanelButtons.h"
 #include "TextLCD.h"
 #include "SDFileSystem.h"
+#include <string>
+#include <vector>
 
 //Initializations
-Timer timer;    // general purpose timer
-I2C i2c( P0_10, P0_11 ); // I2C bus (SDA, SCL)
-BridgeDriver bridges(&i2c, 1); // Bridge
-TextLCD_I2C lcd( &i2c, MCP23008_SA0, TextLCD::LCD20x4 ); // LCD
-SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // the pinout on the mbed LPC1768
-
-DigitalIn killSw(KILL);
-
-extern const int MAX_LINE_LENGTH = 100;
-
-void initLCD(void);
+extern Timer timer;    // general purpose timer
+extern I2C i2c; // I2C bus (SDA, SCL)
+extern BridgeDriver bridges; // Bridge
+extern TextLCD_I2C lcd; // LCD
+extern SDFileSystem sd; // the pinout on the mbed LPC1768
 
-void fullInit() {
-    
-    killSw.mode(PullUp);
-    initLCD();     
-}
+extern DigitalIn killSw;
+
+extern const int MAX_LINE_LENGTH;
+
+void fullInit();
  
-void initLCD(void) {
-    
-    i2c.frequency(1000000);
-    lcd.setBacklight(TextLCD::LightOn);
-    wait(.6);
-    lcd.cls(); //clear the display
-    lcd.setAddress(0,0);
-    lcd.printf("LCD Initialized");
-}
+void initLCD(void);
 
 
 struct Line{
     
-    char *fullLine;                     //full line, starting from the beginning
-    char *currPartLine;                 //current line, meaning that it only knows whatever has not been used in the line
+    //string fullLine;     //full line, starting from the beginning
     int lineNumber;                     //current line number in the program txt file that is running
-    char word[15][MAX_LINE_LENGTH];     //array of words from the line of text, assuming no more than 15 words will be in any given line
+    //vector<string> word;
+    string word[15];     //array of words from the line of text, assuming no more than 15 words will be in any given line
                                         //in this initialization there are 15 string (pointers) of size MAX_LINE_LENGTH each
     int numWords;                       //Number of words in the given line
     int lineAddress;
 };
 
+//
 extern struct Line lineData;
 
+
+
+
+enum  DeviceType{MOTOR, VOLTAGE_DRIVER}; 
+static const enum DeviceType Device_Map[] = {MOTOR, VOLTAGE_DRIVER}; 
+extern const char *DeviceNames[];
+extern int numDevices;
+extern int currNumDevices;
+
+
+class Device{
+    
+    public:
+        string name;
+        enum DeviceType type;
+        static Device* newDevice(int, string, Line);
+        //void setName(string);
+        //void setType(DeviceType);
+        virtual int interpret(Line&) = 0;
+        /*{
+            lcd.setAddress(0,3);
+            lcd.printf("CHECK Device   ");
+            wait(2);
+            return 0;
+        }*/
+};
+
+extern vector<Device*> devices; //Initialize array of devices, initially assume 15 devices will be used (will expand as needed)
+//extern Device devices[];
+
+void addDevice(int, Line);
+
 #endif
\ No newline at end of file