public void Start()
{
// make the digital analogTasks. The function "CreateDigitalTask" is defined later
//e.g CreateDigitalTask("notEOnOff");
// CreateDigitalTask("eOnOff");
//This is to keep track of the various things which the HC controls.
analogTasks = new Dictionary<string, Task>();
stateRecord = new hardwareState();
stateRecord.analogs = new Dictionary<string, double>();
stateRecord.digitals = new Dictionary<string, bool>();
tstage = new Parker404XR("ASRL1::INSTR", profilesPath + "TranslationStageInitFile.txt");
CreateDigitalTask("aom0enable");
CreateDigitalTask("aom1enable");
CreateDigitalTask("aom2enable");
CreateDigitalTask("aom3enable");
CreateDigitalTask("shutterenable");
// make the analog output analogTasks. The function "CreateAnalogOutputTask" is defined later
//e.g. bBoxAnalogOutputTask = CreateAnalogOutputTask("b");
// steppingBBiasAnalogOutputTask = CreateAnalogOutputTask("steppingBBias");
CreateAnalogOutputTask("aom0amplitude");
CreateAnalogOutputTask("aom0frequency");
CreateAnalogOutputTask("aom1amplitude");
CreateAnalogOutputTask("aom1frequency");
CreateAnalogOutputTask("aom2amplitude");
CreateAnalogOutputTask("aom2frequency");
CreateAnalogOutputTask("aom3amplitude");
CreateAnalogOutputTask("aom3frequency");
CreateAnalogOutputTask("coil0current");
CreateAnalogOutputTask("coil1current");
CreateAnalogInputTask("laserLockErrorSignal", -10, 10);
CreateAnalogInputTask("chamber1Pressure");
CreateAnalogInputTask("chamber2Pressure");
// make the control controlWindow
controlWindow = new ControlWindow();
controlWindow.controller = this;
HCState = SHCUIControlState.OFF;
Application.Run(controlWindow);
}