コード例 #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
ファイル: ButtonHandler.cs プロジェクト: Sp00nyMan/TRTPO_Calc
        public override void Handle(object sender, object args)
        {
            Button button = (Button)args;

            if (button.Tag is Operation)
            {
                OnOperation?.Invoke(this, button.Tag);
            }
            else
            {
                switch (button.Tag.GetType().Name.ToLower())
                {
                case "string":
                    switch ((string)button.Tag)
                    {
                    case "digit":
                        OnDigit?.Invoke(this, button.Text);
                        break;

                    case "control":
                        OnControl?.Invoke(this, button.AccessibleName);
                        break;
                    }
                    break;
                }
            }
        }
コード例 #3
0
 public void RunPeaHeatOut(ref ScanParamters paramters, bool isX)
 {
     try
     {
         _iDummySweep.Speed    = (float)Parameter.PreHeat.Speed;
         _beamSetup.DummySweep = _iDummySweep;
         if (beamScanFactory != null)
         {
             _beamScan.X = _beamScan.Y = _beamScan.Focus = _beamScan.Astig1 = _beamScan.Astig2 = 32767;
             beamScanFactory.SetBeamScan(_beamScan);
             _beamSetup.Rate = (int)Parameter.Frequency;
             beamScanFactory.SetBeamSetup(_beamSetup);
             beamScanFactory.SetBeamState(_beamState);
         }
         if (isX)
         {
             beamScanFactory.CreatePreHeatLinesX(
                 (ushort)Parameter.PreHeat.Size
                 , (int)Parameter.PreHeat.LineOrder
                 , (float)Parameter.PreHeat.LineOffset
                 , (float)Parameter.PreHeat.Speed
                 , Parameter.Frequency
                 , paramters.scanCount
                 , paramters.scanVolt
                 , paramters.focusOffset
                 , true
                 );
         }
         else
         {
             beamScanFactory.CreatePreHeatLinesY(
                 (ushort)Parameter.PreHeat.Size
                 , (int)Parameter.PreHeat.LineOrder
                 , (float)Parameter.PreHeat.LineOffset
                 , (float)Parameter.PreHeat.Speed
                 , Parameter.Frequency
                 , paramters.scanCount
                 , paramters.scanVolt
                 , paramters.focusOffset
                 , true
                 );
         }
         if (_beamScan != null)
         {
             if (!_isBeamOn)
             {
                 BeamStart(SignalCardModeEnum.BufferedOut);
                 _isBeamOn = true;
             }
             OnPowerOn?.Invoke(null, null);
             OnOperation?.Invoke(isX ? "X向预热..." : "Y向预热...");
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #4
0
 /// <summary>
 /// Удаляет клиента.
 /// </summary>
 /// <param name="client">Клиент, который надо удалить.</param>
 /// <returns></returns>
 public bool RemoveClient(ClientBase client)
 {
     if (Clients.Remove(client))
     {
         OnOperation?.Invoke(this, new DepartmentEventArgs(DateTime.Now, $"Выполняется удаление клиента {client.Name}.", Name));
         return(true);
     }
     return(false);
 }
コード例 #5
0
ファイル: GUIUtils.cs プロジェクト: reynarzz/UTalk
        public static TextEditorInfo SmartTextArea(ref string text, OnOperation onOperationCallback, params GUILayoutOption[] options)
        {
            if (text == null)
            {
                text = "";
            }

            return(DoTextFieldOrSomething(ref text, true, GUI.skin.textArea, options, onOperationCallback));
        }
コード例 #6
0
ファイル: GUIUtils.cs プロジェクト: reynarzz/UTalk
        private static TextEditorInfo DoTextField(Rect position, int id, GUIContent content, bool multiline, int maxLength, GUIStyle style,
                                                  OnOperation onTextInClipboard)
        {
            //GUIUtility.CheckOnGUI(); //Checks If is called from OnGUI method, otherwise it will throw an error..

            if (maxLength >= 0 && content.text.Length > maxLength)
            {
                content.text = content.text.Substring(0, maxLength);
            }

            var textEditor = (SmartTextEditor)GUIUtility.GetStateObject(typeof(SmartTextEditor), id);

            textEditor.Clear();

            var charsAdded = 0;
            var pasted     = false;

            if (onTextInClipboard != null)
            {
                textEditor.OnCopy  += t => onTextInClipboard(TextOperation.Copy, t, textEditor.selectIndex, textEditor.cursorIndex);
                textEditor.OnCut   += t => onTextInClipboard(TextOperation.Cut, t, textEditor.selectIndex, textEditor.cursorIndex);
                textEditor.OnPaste += t => { pasted = true; charsAdded = t.Length; };
                //textEditor.OnPaste += t => onTextInClipboard(TextOperation.Paste, t, textEditor.selectIndex, textEditor.cursorIndex);
            }

            textEditor.text = content.text;
            textEditor.SaveBackup();
            textEditor.position  = position;
            textEditor.style     = style;
            textEditor.multiline = multiline;
            textEditor.controlID = id;
            textEditor.DetectFocusChange();

            var currentlyAdded = HandleTextFieldEventForDesktop(position, id, content, multiline, maxLength, style, textEditor);

            //This "if" avoids overriding charsAdded pasted value (if any)
            if (!pasted)
            {
                charsAdded = currentlyAdded;
            }

            textEditor.UpdateScrollOffsetIfNeeded(Event.current);

            //_text.Clear();
            //_text.Append(textEditor.text);

            ////Maintains the first char of the text white the start of the first word.
            //while (_text.Length > 0 && !_text[0].IsValidChar())
            //{
            //    _text.Remove(0, 1);
            //}

            //textEditor.text = _text.ToString();

            return(new TextEditorInfo(textEditor.text, textEditor.SelectedText, textEditor.selectIndex, _cursorIndex, charsAdded, charsAdded != 0, textEditor));
        }
コード例 #7
0
ファイル: KeyHandler.cs プロジェクト: Sp00nyMan/TRTPO_Calc
        public override void Handle(object sender, object args)
        {
            if (args == null)
            {
                throw new ArgumentNullException();
            }
            KeyPressEventArgs e = (KeyPressEventArgs)args;

            if (char.IsDigit(e.KeyChar) ||
                e.KeyChar == ',')
            {
                OnDigit?.Invoke(this, e.KeyChar);
            }
            else
            {
                switch (e.KeyChar)
                {
                case (char)Keys.Back:
                    OnControl?.Invoke(this, "backspace");
                    break;

                case (char)Keys.Escape:
                    OnControl?.Invoke(this, "clear");
                    break;

                case '+':
                    OnOperation?.Invoke(this, new Summation());
                    break;

                case '-':
                    OnOperation?.Invoke(this, new Subtraction());
                    break;

                case '*':
                    OnOperation?.Invoke(this, new Multiplication());
                    break;

                case '/':
                    OnOperation?.Invoke(this, new Division());
                    break;

                case (char)Keys.Return:
                case '=':
                    OnOperation?.Invoke(this, new Equals());
                    break;

                case '^':
                    OnOperation?.Invoke(this, new Power());
                    break;
                }
            }
        }
コード例 #8
0
ファイル: GUIUtils.cs プロジェクト: reynarzz/UTalk
        private static TextEditorInfo DoTextFieldOrSomething(ref string text, bool multiline, GUIStyle style, GUILayoutOption[] options,
                                                             OnOperation onTextInClipboard)
        {
            int controlID = GUIUtility.GetControlID(FocusType.Keyboard);

            //style = EditorStyles.helpBox;
            //style.fontSize = 12;

            _guiContent.text = text;
            style.richText   = true;
            style.wordWrap   = true;

            //gUIContent = ((GUIUtility.keyboardControl == controlID) ? _guiContent.text /*+ GUIUtility.compositionString*/ : te);
            var rect = GUILayoutUtility.GetRect(_guiContent, style, options);

            var textEditor = DoTextField(rect, controlID, _guiContent, multiline, -1, style, onTextInClipboard);

            text = textEditor.Text;

            return(textEditor);
        }
コード例 #9
0
 public void RunCADOut(uint count, DxfcadReader dxfcad)
 {
     try
     {
         _iDummySweep.Speed    = (float)Parameter.cadFilescanPara.Speed;
         _beamSetup.DummySweep = _iDummySweep;
         if (beamScanFactory != null)
         {
             _beamScan.X = _beamScan.Y = _beamScan.Focus = _beamScan.Astig1 = _beamScan.Astig2 = 32767;
             beamScanFactory.SetBeamScan(_beamScan);
             _beamSetup.Rate = (int)Parameter.Frequency;
             beamScanFactory.SetBeamSetup(_beamSetup);
             beamScanFactory.SetBeamState(_beamState);
         }
         double        speed         = Parameter.cadFilescanPara.Speed;
         double        focusOffs     = Parameter.cadFilescanPara.FocusOffset;
         double        beamVal       = Parameter.cadFilescanPara.BeamValue;
         DxfcadPackage dxfcadPackage = new DxfcadPackage(dxfcad);
         for (int i = 0; i < count; i++)
         {
             beamScanFactory.AddPackage(dxfcadPackage);
         }
         if (_beamScan != null)
         {
             if (!_isBeamOn)
             {
                 BeamStart(SignalCardModeEnum.BufferedOut);
                 _isBeamOn = true;
             }
             OnPowerOn?.Invoke(null, null);
             OnOperation?.Invoke("cad  扫描");
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #10
0
        public void StopBeamOut()
        {
            try
            {
                //if (rbCircle.Checked) {
                if (beamScanFactory != null)
                {
                    _beamScan.X     = 32767;
                    _beamScan.Y     = 32767;
                    _beamScan.Focus = 32767;

                    /* if (rbDirec.Checked)
                     * {
                     *   _beamScan.Focus = 32767;
                     * }*/
                    _beamScan.Astig1      = 32767;
                    _beamScan.Astig2      = 32767;
                    _beamScan.BeamCurrent = 32000; //32767;
                    beamScanFactory.Shutdown();
                    beamScanFactory.Reset();       //停止时候清空包里的数据
                    _isBeamOn    = false;
                    _isDirecStop = true;
                    OnPowerOff?.Invoke(null, null);
                    OnOperation?.Invoke("停止");
                    //BtnStop.Enabled = false;
                    //BtnPreHeat.Enabled = btnScan.Enabled = true;


                    //Parameter.ActualPreHeatCount = 0;
                }
            }
            catch (Exception ex)
            {
                // MessageBox.Show(ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
                // LogHelper.Error(ex.ToString());
            }
        }
コード例 #11
0
 public SheetNameWithSubdivide(
     string fileName,
     string sheetName,
     bool needSubdivide       = false,
     int cutPrefix            = 0,
     int cutPostfix           = 0,
     string keyColumnName     = "id",
     int?columnNamesRow       = null,
     int?dataStartRow         = null,
     string subdivideFilename = null,
     OnOperation onOperation  = OnOperation.From | OnOperation.To
     )
 {
     FileName          = new Wildcard(fileName);
     SheetName         = new Wildcard(sheetName);
     NeedSubdivide     = needSubdivide;
     CutPrefix         = cutPrefix;
     CutPostfix        = cutPostfix;
     KeyColumnName     = keyColumnName;
     ColumnNamesRow    = columnNamesRow;
     DataStartRow      = dataStartRow;
     SubdivideFilename = subdivideFilename;
     OnOperation       = onOperation;
 }
コード例 #12
0
 public void DummySweep(float speed)
 {
     this._iDummySweep.Speed = speed;
     _beamSetup.DummySweep   = _iDummySweep;
     if (beamScanFactory != null)
     {
         _beamScan.X = _beamScan.Y = _beamScan.Focus = _beamScan.Astig1 = _beamScan.Astig2 = 32767;
         beamScanFactory.SetBeamScan(_beamScan);
         _beamSetup.Rate = (int)Parameter.Frequency;
         beamScanFactory.SetBeamSetup(_beamSetup);
         beamScanFactory.SetBeamState(_beamState);
     }
     if (_beamScan != null)
     {
         ///*************暂时去掉
         if (!_isBeamOn)
         {
             BeamStart(SignalCardModeEnum.BufferedOut);
             _isBeamOn = true;
         }
         OnPowerOn?.Invoke(null, null);
         OnOperation?.Invoke("空扫...");
     }
 }
コード例 #13
0
 public bool Contains(string fileName, string sheetName, OnOperation onOperation)
 {
     return(Find(fileName, sheetName, onOperation) != null);
 }
コード例 #14
0
 public SheetNameWithSubdivide Find(string fileName, string sheetName, OnOperation onOperation)
 {
     return(Find(sheetNameWithSubdivide => sheetNameWithSubdivide.IsMatch(fileName, sheetName, onOperation)));
 }
コード例 #15
0
        public void Parse(string subdivideStr, string fileName, string sheetName, bool needSubdivide, int cutPrefix, int cutPostfix, string keyColumnName, int?columnNamesRow, int?dataStartRow, OnOperation oonOperation)
        {
            var subdivide = SheetNameWithSubdivide.FromMixed(subdivideStr);

            Assert.True(subdivide.FileName.IsMatch(fileName));
            Assert.True(subdivide.SheetName.IsMatch(sheetName));
            Assert.Equal(subdivide.NeedSubdivide, needSubdivide);
            Assert.Equal(subdivide.CutPrefix, cutPrefix);
            Assert.Equal(subdivide.CutPostfix, cutPostfix);
            Assert.Equal(subdivide.KeyColumnName, keyColumnName);
            Assert.Equal(subdivide.ColumnNamesRow, columnNamesRow);
            Assert.Equal(subdivide.DataStartRow, dataStartRow);
            Assert.Equal(subdivide.OnOperation, oonOperation);
        }
コード例 #16
0
 public bool IsMatch(string fileName, string sheetName, OnOperation onOperation)
 {
     return(FileName.IsMatch(fileName) && SheetName.IsMatch(sheetName) && OnOperation.HasFlag(onOperation));
 }
コード例 #17
0
 /// <summary>
 /// Добавляет клиента.
 /// </summary>
 /// <param name="client"></param>
 public void AddClient(ClientBase client)
 {
     Clients.Add(client);
     OnOperation?.Invoke(this, new DepartmentEventArgs(DateTime.Now, $"Выполняется добавление клиента {client.Name}.", Name));
 }
コード例 #18
0
        public SheetNameWithSubdivide subdivide(string fileName, string sheetName, OnOperation onOperation)
        {
            var subdivideRule = SubdivideRules.Find(fileName, sheetName, onOperation);

            return(subdivideRule ?? new SheetNameWithSubdivide(fileName, sheetName));
        }
コード例 #19
0
 // onOperationはFrom | Toだと正しく動作しない
 public bool IsUseSheet(string fileName, string excelSheetName, string yamlTableName, OnOperation onOperation)
 {
     if (IgnoreSheetNames.Contains(fileName, yamlTableName, onOperation))
     {
         return(false);
     }
     if (OnlySheetNames.Count != 0 && !OnlySheetNames.Contains(fileName, yamlTableName, onOperation))
     {
         return(false);
     }
     if (onOperation.HasFlag(OnOperation.From))
     {
         // TODO: primaryでない的なnoticeを出したほうが良い
         if (!PrimarySheetNames.IsUseSheet(fileName, yamlTableName))
         {
             return(false);
         }
         // エイリアス設定先のシートはfrom時変換されない
         if (excelToYamlAlias.Contains(fileName, excelSheetName))
         {
             return(false);
         }
     }
     return(true);
 }