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
Diff: Initialization.cpp
- Revision:
- 11:bc9cd2869f95
- Parent:
- 9:5a0c4c6e39c7
- Child:
- 12:2e3e86714243
--- a/Initialization.cpp Wed Sep 24 22:54:36 2014 +0000
+++ b/Initialization.cpp Wed Oct 01 18:11:38 2014 +0000
@@ -2,6 +2,7 @@
#include "Motor.hpp"
#include "VoltageDriver.hpp"
#include "PinIN.hpp"
+#include "TimerDevice.hpp"
/**********************************************************************************************************************************/
@@ -12,7 +13,7 @@
// ADD YOUR DEVICE NAME THE \\EXACT SAME WAY\\ AS THE ENUM NAME YOU DECLARED IN THE.hpp
// Must Declare names in reverse order for some reason...., it's the way they're indexed I believe
-const string DeviceNames[] = {"MOTOR", "VOLTAGE_DRIVER", "PIN_IN"};
+const string DeviceNames[] = {"MOTOR", "VOLTAGE_DRIVER", "PIN_IN", "TIMER_DEVICE", "CAN_DEVICE"};
// ADD YOUR DEVICE TO THE LIST BELOW, CALLING YOUR DEVICE CLASS AS SHOWN
Device* Device::newDevice(int deviceFound, string _name, LineData lineData){
@@ -21,6 +22,7 @@
case MOTOR: return new Motor(lineData); break;
case VOLTAGE_DRIVER: return new VoltageDriver(lineData); break;
case PIN_IN: return new PinIN(lineData); break;
+ case TIMER_DEVICE: return new TimerDevice(lineData); break;
//********** ADD NEXT DEVICE ABOVE **************//
default: break;
@@ -46,8 +48,15 @@
DigitalIn killSw(KILL);
+//Ticker errorWatcher;
+
const int MAX_LINE_LENGTH = 100;
int DummyMode = 0; // run through the code without performing actions
+FILE *selectedFile;
+int errorFLAG = 0;
+
+vector<GoToLabel> GoToLabels; //Initialize vector of struct for GoTo Labels
+CycleWatch cycleWatch;
/******************************************************************************/
/*** <Function Initializations> ***/
@@ -57,6 +66,10 @@
killSw.mode(PullUp);
initLCD();
+
+ //Initialize the Error Watcher Interrupt / Ticker
+ //errorWatcher.attach(&ErrorMonitor, 0.5);
+
}
void initLCD(void) {
@@ -87,4 +100,48 @@
int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]);
int currNumDevices = 0;
-vector<Device*> devices; //create a vector to hold all of the devices
\ No newline at end of file
+vector<Device*> devices; //create a vector to hold all of the devices
+
+
+/******************************************************************************/
+/*** <Error Monitor Initializations> ***/
+/******************************************************************************/
+
+//vector<ErrorCondition> errorMonitors; //Initialize vector of errors to monitor
+//ErrorCondition errorMonitors[15];
+//int numErrorMonitors = 0;
+/*
+//Monitors the conditions to watch for erroring, and pauses system if any of the conditions turn out to be true
+void ErrorMonitor(){
+
+ int i = 0, error = -1, numError = 0;
+ for(i = 0; i < errorMonitors.size(); i++){
+ int checkCondition = 0;
+ checkCondition = interpretCommand(errorMonitors[i].errorToWatch);
+
+ //if Condition is true, that means the error occurred
+ if (checkCondition == 1){
+ numError++;
+
+ //if the error has a Fix / Reset command, do it
+ if (errorMonitors[i].hasFix){
+ int returnValue;
+ interpretCommand(errorMonitors[i].errorFix); //Fix / Reset the error based on how the user justified to do so
+ }
+
+ error = i; //Record index of error, will display only one error, but error will be last error that was true in the list
+ }
+ }
+
+ if (numError){
+ char errorMsg[100] = "Error Occurred!!! Item: ";
+ strcat(errorMsg, errorMonitors[error].errorToWatch.word[0].c_str()); //Send the first word of the error condition to help find out what the error was
+ ErrorOut(errorMsg, numError);
+ errorFLAG = 1; //set error flag equal to 1 if error occurred
+ }
+ else
+ errorFLAG = 0; //set error flag equal to 0 if no errors occurred
+
+}
+*/
+