Front panel for the edm hardware controller. Everything is just stuffed in there. No particularly clever structure. This class just hands everything straight off to the controller. It has a few thread safe wrappers so that remote calls can safely manipulate the front panel.
Inheritance: System.Windows.Forms.Form
コード例 #1
0
ファイル: Controller.cs プロジェクト: jadevlin/EDMSuite
        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");
            CreateDigitalTask("I2PropSwitch");
            CreateDigitalTask("I2IntSwitch");
            CreateDigitalTask("eSwitching");
            CreateDigitalTask("patternTTL");

            // 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");
            i2BiasOutputTask = CreateAnalogOutputTask("I2LockBias");

            // 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");
            groundedInputTask = CreateAnalogInputTask("ground");
            piMonitorTask = CreateAnalogInputTask("piMonitor");
            //northLeakageInputTask = CreateAnalogInputTask("northLeakage");
            //southLeakageInputTask = CreateAnalogInputTask("southLeakage");
            //diodeRefCavInputTask = CreateAnalogInputTask("diodeLaserRefCavity");
            diodeCurrentMonInputTask = CreateAnalogInputTask("diodeLaserCurrent");
            i2ErrorSignalInputTask = CreateAnalogInputTask("iodine");

            // make the control window
            window = new ControlWindow();
            window.controller = this;

            Application.Run(window);
        }
コード例 #2
0
ファイル: Controller.cs プロジェクト: akaushik1/EDMSuite
        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);
        }