public void Start() { // make the digital tasks //CreateDigitalTask("notEOnOff"); //CreateDigitalTask("eOnOff"); CreateDigitalTask("ePol"); CreateDigitalTask("notEPol"); CreateDigitalTask("eBleed"); CreateDigitalTask("rfSwitch"); CreateDigitalTask("fmSelect"); CreateDigitalTask("attenuatorSelect"); CreateDigitalTask("scramblerEnable"); CreateDigitalTask("b"); CreateDigitalTask("notDB"); CreateDigitalTask("piFlip"); CreateDigitalTask("piFlipEnable"); CreateDigitalTask("notPIFlipEnable"); CreateDigitalTask("pumpShutter"); CreateDigitalTask("probeShutter"); CreateDigitalTask("argonShutter"); CreateDigitalTask("targetStepper"); CreateDigitalTask("rfCountSwBit1"); CreateDigitalTask("rfCountSwBit2"); CreateDigitalTask("fibreAmpEnable"); CreateDigitalTask("ttlSwitch"); // digitial input tasks CreateDigitalInputTask("fibreAmpMasterErr"); CreateDigitalInputTask("fibreAmpSeedErr"); CreateDigitalInputTask("fibreAmpBackFeflectErr"); CreateDigitalInputTask("fibreAmpTempErr"); CreateDigitalInputTask("fibreAmpPowerSupplyErr"); // initialise the current leakage monitors northLeakageMonitor.Initialize(); southLeakageMonitor.Initialize(); // initialise the polarisers probePolCont.InitPolariserControl(); pumpPolCont.InitPolariserControl(); // analog outputs bBoxAnalogOutputTask = CreateAnalogOutputTask("b"); //steppingBBiasAnalogOutputTask = CreateAnalogOutputTask("steppingBBias"); flPZTVAnalogOutputTask = CreateAnalogOutputTask("flPZT"); pumpAOMAnalogOutputTask = CreateAnalogOutputTask("pumpAOM"); rf1AttenuatorOutputTask = CreateAnalogOutputTask("rf1Attenuator"); rf2AttenuatorOutputTask = CreateAnalogOutputTask("rf2Attenuator"); rf1FMOutputTask = CreateAnalogOutputTask("rf1FM"); rf2FMOutputTask = CreateAnalogOutputTask("rf2FM"); cPlusOutputTask = CreateAnalogOutputTask("cPlus"); cMinusOutputTask = CreateAnalogOutputTask("cMinus"); phaseScramblerVoltageOutputTask = CreateAnalogOutputTask("phaseScramblerVoltage"); flPZT2OutputTask = CreateAnalogOutputTask("flPZT2"); flPZT2TempOutputTask = CreateAnalogOutputTask("flPZT2Temp"); flPZT2CurOutputTask = CreateAnalogOutputTask("flPZT2Cur"); fibreAmpOutputTask = CreateAnalogOutputTask("fibreAmpPwr"); //flAOMAnalogOutputTask = CreateAnalogOutputTask("fibreAOM"); // analog inputs probeMonitorInputTask = CreateAnalogInputTask("probePD", 0, 5); pumpMonitorInputTask = CreateAnalogInputTask("pumpPD", 0, 5); cPlusMonitorInputTask = CreateAnalogInputTask("cPlusMonitor"); cMinusMonitorInputTask = CreateAnalogInputTask("cMinusMonitor"); //rfPowerMonitorInputTask = CreateAnalogInputTask("rfPower"); miniFlux1MonitorInputTask = CreateAnalogInputTask("miniFlux1"); miniFlux2MonitorInputTask = CreateAnalogInputTask("miniFlux2"); miniFlux3MonitorInputTask = CreateAnalogInputTask("miniFlux3"); piMonitorTask = CreateAnalogInputTask("piMonitor"); //northLeakageInputTask = CreateAnalogInputTask("northLeakage"); //southLeakageInputTask = CreateAnalogInputTask("southLeakage"); //diodeRefCavInputTask = CreateAnalogInputTask("diodeLaserRefCavity"); diodeCurrentMonInputTask = CreateAnalogInputTask("diodeLaserCurrent"); // make the control window window = new ControlWindow(); window.controller = this; // initialise the motor controllers - this needs to be done // after the window is made because the ActiveX object needs // to live in the window. motorController1 = window.motorController1; motorController1.StartCtrl(); motorController2 = window.motorController2; motorController2.StartCtrl(); // set the velocity and acceleration to maximum. motorController1.SetVelParams(0, 0, 10, 14); motorController2.SetVelParams(0, 0, 10, 14); Application.Run(window); }