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
- Committer:
- mehatfie
- Date:
- 2014-09-19
- Revision:
- 3:078e9a1e8be3
- Parent:
- 2:3e7baa3e3fec
- Child:
- 4:86d0d04cc055
File content as of revision 3:078e9a1e8be3:
#include "Initialization.hpp"
#include "Motor.hpp"
#include "VoltageDriver.hpp"
/**********************************************************************************************************************************/
/**********************************************************************************************************************************/
/************************** <MUST MODIFY> *************************/
/**********************************************************************************************************************************/
/**********************************************************************************************************************************/
// 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[] = {"VOLTAGE_DRIVER", "MOTOR"};
// ADD YOUR DEVICE TO THE LIST BELOW, CALLING YOUR DEVICE CLASS AS SHOWN
Device* Device::newDevice(int deviceFound, string _name, Line lineData){
switch (Device_Map[deviceFound]){
case MOTOR: return new Motor(lineData); break;
case VOLTAGE_DRIVER: return new VoltageDriver(lineData); break;
//********** ADD NEXT DEVICE ABOVE **************//
default: break;
}
}
/************************** <MUST MODIFY> *************************/
/**********************************************************************************************************************************/
/**********************************************************************************************************************************/
/******************************************************************************/
/*** <Global Initializations> ***/
/******************************************************************************/
//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);
const int MAX_LINE_LENGTH = 100;
/******************************************************************************/
/*** <Function Initializations> ***/
/******************************************************************************/
void fullInit() {
killSw.mode(PullUp);
initLCD();
}
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");
}
/******************************************************************************/
/*** <Parent Device Class Initializations> ***/
/******************************************************************************/
int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]);
int currNumDevices = 0;
vector<Device*> devices;