示例#1
0
        public void RunSingleOut(bool bUseCalibrate, IBeamScan beamScan, ushort focusADD)
        {
            if (_beamScan != null)
            {
                _beamScan.X           = beamScan.X;
                _beamScan.Y           = beamScan.Y;
                _beamScan.BeamCurrent = beamScan.BeamCurrent;
                if (bUseCalibrate)
                {
                    _beamScan.Astig1 = (ushort)StaticTool.CaculateLinerVal(beamScan.X, beamScan.Y, true);
                    _beamScan.Astig2 = (ushort)StaticTool.CaculateLinerVal(beamScan.X, beamScan.Y, false);
                    _beamScan.Focus  = (ushort)(StaticTool.CaculateFocus((uint)StaticTool.GetRadius(beamScan.X, beamScan.Y)) + focusADD);
                }
                else
                {
                    _beamScan.Astig1 = beamScan.Astig1;
                    _beamScan.Astig2 = beamScan.Astig2;
                    _beamScan.Focus  = beamScan.Focus;
                }
                BeamStart(SignalCardModeEnum.SingleOut);
                OnPowerOn?.Invoke(null, null);
                OnOperation?.Invoke("直流下束...");

                _isDirecStop = false;
            }
        }
示例#2
0
        private BeamScanSingleton(IBeamSetup beamSetup, IBeamScan beamScan, IBeamState beamState)
        {
            _beamScan   = beamScan;           //
            _beamSetup  = beamSetup;          //
            _beamState  = beamState;          //
            _pdao32Card = new PowerDaq32AO(); //

            SignalCardStartArgs _cardArgs = new SignalCardStartArgs(SignalCardModeEnum.BufferedOut, 40000, 8, 500000, 8, 100);

            this.m_PackageManager.OnPackageCompleted += new PackageOfficeEvent(this.OnPackageManagerCompleted);
        }
示例#3
0
 public void SetBeamScan(IBeamScan beamScan)
 {
     try {
         if (beamScan != null)
         {
             this._beamScan = beamScan;
             return;
         }
     }
     catch (Exception) {
         throw new Exception("beamScan is null");
     }
 }
示例#4
0
 public static BeamScanSingleton GetInstance(IBeamSetup beamSetup, IBeamScan beamScan, IBeamState beamState)
 {
     if (_instance == null)
     {
         lock (_lock) {
             if (_instance == null)
             {
                 _instance = new BeamScanSingleton(beamSetup, beamScan, beamState);
             }
         }
     }
     return(_instance);
 }
示例#5
0
        public EBMBeamScan()
        {
            _iDummySweep               = new BeamSetupDummySweep();
            _beamScan                  = new SanxinBeamScan();  //
            _beamSetup                 = new BeamSetup();       //
            _beamState                 = new SanxinBeamState(); //
            _iDummySweep.Speed         = 100000;
            _beamSetup.NumberOfFrames  = 8;
            _beamSetup.Rate            = 40000;
            _beamSetup.ReadTimeout     = 2000;
            _beamSetup.WriteTimeout    = 2000;
            _beamSetup.BufferFrameSize = 8000;
            _beamSetup.DummySweep      = _iDummySweep;

            beamScanFactory = BeamScanSingleton.GetInstance(_beamSetup, _beamScan, _beamState);
        }
示例#6
0
 public SanXinBeam(IBeamScan _Scan, IBeamState _State, IBeamSetup _Setup)
 {
     Scan  = _Scan;
     State = _State;
     Setup = _Setup;
 }