From 6caa156ba8be9728b4cb67c7c7be326b0316f773 Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期四, 09 七月 2020 17:22:44 +0800 Subject: [PATCH] 板卡+数据库保存+excel导出 --- src/Bro.Device.GTSCard/GTSCardConfig.cs | 606 ------------------------------------------------------ 1 files changed, 7 insertions(+), 599 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardConfig.cs b/src/Bro.Device.GTSCard/GTSCardConfig.cs index 0cd70d6..ddb8287 100644 --- a/src/Bro.Device.GTSCard/GTSCardConfig.cs +++ b/src/Bro.Device.GTSCard/GTSCardConfig.cs @@ -1,17 +1,7 @@ 锘縰sing Bro.Common.Base; using Bro.Common.Helper; using Bro.Common.Interface; -using Bro.Common.Model; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.Configuration; -using System.Drawing.Design; -using System.Linq; -using System.Threading; -using static Bro.Common.Helper.EnumHelper; +using Bro.UI.Device.Winform; namespace Bro.Device.GTSCard { @@ -19,600 +9,18 @@ [Device("GTSCard", "鍥洪珮鏉垮崱", EnumHelper.DeviceAttributeType.OperationConfig)] public class GTSCardOperationConfig : MotionCardOperationConfigBase { - //[Category("鏉垮崱杩愬姩閰嶇疆")] - //[DisplayName("杩愬姩閰嶇疆闆嗗悎")] - //[Description("MovingOps锛氳繍鍔ㄩ厤缃泦鍚�")] - //[TypeConverter(typeof(CollectionCountConvert))] - //[Editor(typeof(ComplexCollectionEditor<MovingOption>), typeof(UITypeEditor))] - //public ObservableCollection<MovingOption> MovingOps { get; set; } = new ObservableCollection<MovingOption>(); - - //public string GetDisplayText() - //{ - // return MovingOps.Count() == 0 ? "--" : string.Join(";", MovingOps.Select(m => m.GetDisplayText())); - //} } [Device("GTSCard", "鍥洪珮鏉垮崱", EnumHelper.DeviceAttributeType.InitialConfig)] public class GTSCardInitialConfig : MotionCardInitialConfigBase { - //[Category("鏉垮崱閰嶇疆")] - //[DisplayName("鍗″彿")] - //[Description("CardNum锛氬崱鍙�")] - //public int CardNum { get; set; } - - //[Category("鏉垮崱閰嶇疆")] - //[DisplayName("鍒濆閰嶇疆鏂囦欢璺緞")] - //[Description("InitialConfigFilePath锛氬垵濮嬮厤缃枃浠惰矾寰�")] - //[Editor(typeof(FileDialogEditor), typeof(UITypeEditor))] - //public string InitialConfigFilePath { get; set; } - - //[Category("杞撮厤缃�")] - //[DisplayName("杞存暟閲�")] - //[Description("AxisNum锛氳酱鏁伴噺")] - //public int AxisNum { get; set; } = 2; - - //[Category("杞撮厤缃�")] - //[DisplayName("杞撮厤缃俊鎭泦鍚�")] - //[Description("AxisSettings锛氳酱閰嶇疆淇℃伅闆嗗悎")] - //[TypeConverter(typeof(CollectionCountConvert))] - //[Editor(typeof(ComplexCollectionEditor<AxisSetting>), typeof(UITypeEditor))] - //public List<AxisSetting> AxisSettings { get; set; } = new List<AxisSetting>(); - - //[Category("杞撮厤缃�")] - //[DisplayName("杞撮�熷害姣旂巼")] - //[Description("AxisVelocityRatio锛氳酱閫熷害姣旂巼")] - //public double AxisVelocityRatio { get; set; } = 1; - - //[Category("寤舵椂閰嶇疆")] - //[DisplayName("鍔ㄤ綔瀹屾垚鍚庡欢杩�")] - //[Description("ActionAfterDelay锛氬姩浣滃畬鎴愬悗寤惰繜")] - //public int ActionAfterDelay { get; set; } = 100; - - //[Category("璀︽姤閰嶇疆")] - //[Description("WarningSetCollection锛氳鎶ラ厤缃垪琛�")] - //[DisplayName("璀︽姤閰嶇疆")] - //[TypeConverter(typeof(CollectionCountConvert))] - //[Editor(typeof(WarningSetsEditor), typeof(UITypeEditor))] - //public List<IWarningSet> WarningSetCollection { get; set; } = new List<IWarningSet>(); - - //#region IMonitorConfig - //[Category("鐩戝惉璁剧疆")] - //[Description("MonitorSetCollection锛氱洃鍚搷浣滈厤缃泦鍚�")] - //[DisplayName("鐩戝惉閰嶇疆")] - //[TypeConverter(typeof(CollectionCountConvert))] - //[Editor(typeof(ComplexCollectionEditor<MotionCardMonitorSet>), typeof(UITypeEditor))] - //public List<IMonitorSet> MonitorSetCollection { get; set; } = new List<IMonitorSet>(); - - //[Category("鐩戝惉璁剧疆")] - //[Description("true锛氬惎鍔ㄧ洃鍚� false锛氬叧闂洃鍚�")] - //[DisplayName("鐩戝惉鍚敤")] - //public bool IsEnableMonitor { get; set; } = true; - - //[Category("鐩戝惉璁剧疆")] - //[Description("鎵弿闂撮殧鏃堕棿锛屽崟浣嶏細ms")] - //[DisplayName("鎵弿闂撮殧")] - //public int MonitorInterval { get; set; } = 10; - - //[Category("鐩戝惉璁剧疆")] - //[Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")] - //[DisplayName("鐩戝惉瓒呮椂")] - //public int MonitorTimeout { get; set; } = 500; - - //[Category("浜嬩欢鍦板潃璁剧疆")] - //[Description("浜嬩欢寮�濮嬪湴鍧�锛孭LC鐨勫疄闄呭瘎瀛樺櫒鍦板潃銆傚崄杩涘埗锛屼笉鍖呭惈鍔熻兘鐮併��")] - //[DisplayName("鐩戝惉寮�濮嬪湴鍧�")] - //public int EventStartAddress { get; set; } = 8000; - - ////[Category("浜嬩欢鍦板潃璁剧疆")] - ////[Description("浜嬩欢鍦板潃闀垮害锛屾渶澶ч暱搴�128")] - ////[DisplayName("鐩戝惉闀垮害")] - ////public int EventLength { get; set; } = 120; - - //public List<IMonitorSet> GetAllMonitorSet() - //{ - // WarningSetCollection.ForEach(m => m.Source = this.Name); - - // MonitorSetCollection.ForEach(m => m.SourceDevice = this.Id); - // return MonitorSetCollection; - //} - //#endregion - - //#region IMotion Related - //[Category("杩愬姩閰嶇疆")] - //[Description("杩愬姩杞寸姸鎬侀泦鍚�")] - //[DisplayName("杩愬姩杞寸姸鎬侀泦鍚�")] - //[TypeConverter(typeof(CollectionCountConvert))] - //[Editor(typeof(ComplexCollectionEditor<PLCMotionDefinition_State>), typeof(UITypeEditor))] - //public List<PLCMotionDefinition_State> MotionStateCollection { get; set; } = new List<PLCMotionDefinition_State>(); - //#endregion + } - ///// <summary> - ///// 杞撮厤缃� - ///// </summary> - //public class AxisSetting : IComplexDisplay - //{ - // [Category("杞撮厤缃�")] - // [DisplayName("杞村彿绱㈠紩")] - // [Description("AxisIndex锛氳酱鍙风储寮�")] - // public int AxisIndex { get; set; } - - // [Category("杞撮厤缃�")] - // [DisplayName("杞村悕绉�")] - // [Description("AxisName锛氳酱鍚嶇О")] - // public string AxisName { get; set; } - - // [Category("杞撮厤缃�")] - // [DisplayName("杞存槸鍚﹀惎鐢�")] - // [Description("IsAxisEnabled锛氳酱鏄惁鍚敤")] - // public bool IsAxisEnabled { get; set; } = false; - - // [Category("鎹㈢畻閰嶇疆")] - // [DisplayName("鑴夊啿鏁版崲绠楁瘮渚�")] - // [Description("鑴夊啿鏁板拰鍏朵粬璁¢噺鍗曚綅鐨勬崲绠楁瘮渚嬶紝渚嬪璁剧疆涓�1000锛岃〃绀�1000涓剦鍐茬瓑浜�1uint")] - // public int PulseRatio { get; set; } = 1; - - // [Category("閫熷害閰嶇疆")] - // [DisplayName("榛樿閫熷害鍙傛暟")] - // [Description("VelocityPara锛氶粯璁ら�熷害鍙傛暟")] - // [TypeConverter(typeof(ComplexObjectConvert))] - // [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))] - // public VelocityPara VelocityPara { get; set; } = new VelocityPara(); - - // [Category("鍥炲師鐐硅缃�")] - // [DisplayName("鍥炲師鐐规ā寮�")] - // [Description("HomeMode锛氬洖鍘熺偣妯″紡銆�0锛氫竴鑸ā寮� 1锛氭瀬闄愰檺浣嶆ā寮� 2锛氬閮ㄨЕ鍙戞ā寮�")] - // public int HomeMode { get; set; } = 0; - - // [Category("鍥炲師鐐硅缃�")] - // [DisplayName("鍥炲師鐐规柟鍚�")] - // [Description("IsHomePositive锛氬洖鍘熺偣鏂瑰悜銆� true锛氭鏂瑰悜寮�濮� false锛氳礋鏂瑰悜寮�濮�")] - // public bool IsHomePositive { get; set; } = true; - - // [Category("鍥炲師鐐硅缃�")] - // [DisplayName("鏄惁鑷姩鍥炲師鐐�")] - // [Description("IsAutoGoHome锛氭槸鍚﹁嚜鍔ㄥ洖鍘熺偣銆� true锛氭槸 false锛氬惁")] - // public bool IsAutoGoHome { get; set; } = false; - - // [Category("瓒呮椂璁剧疆")] - // [DisplayName("鍥炲師鐐硅秴鏃�")] - // [Description("TimeOutHome锛氬洖鍘熺偣瓒呮椂锛屽崟浣嶆绉�")] - // public int TimeOutHome { get; set; } = 30000; - - // [Category("瓒呮椂璁剧疆")] - // [DisplayName("杩愬姩瓒呮椂")] - // [Description("TimeOutMove锛氳繍鍔ㄨ秴鏃讹紝鍗曚綅姣")] - // public int TimeOutMove { get; set; } = 10000; - - // [Category("寮�闂幆璁剧疆")] - // [DisplayName("鏄惁浣跨敤Cmmd鍥為")] - // [Description("IsUseCmmdPosition锛氭槸鍚︿娇鐢–mmd鍥為")] - // public bool IsUseCmmdPosition { get; set; } = false; - - // [Category("寮�闂幆璁剧疆")] - // [DisplayName("鏄惁浣跨敤鏉垮崱鍙嶉鍋滄淇″彿")] - // [Description("IsUseMDNStopSignal锛氭槸鍚︿娇鐢ㄦ澘鍗″弽棣堝仠姝俊鍙�")] - // public bool IsUseMDNStopSignal { get; set; } = false; - - // [Category("寮�闂幆璁剧疆")] - // [DisplayName("鏄惁鍚敤鎶ヨ")] - // [Description("IsUseWarning锛氭槸鍚﹀惎鐢ㄦ姤璀�")] - // public bool IsUseWarning { get; set; } = false; - - // [Category("鏆傚仠閰嶇疆")] - // [DisplayName("鏄惁鍚敤绔嬪嵆鏆傚仠")] - // [Description("IsImmediatePause锛氭槸鍚﹀惎鐢ㄧ珛鍗虫殏鍋�")] - // public bool IsImmediatePause { get; set; } = false; - - // [Category("鏆傚仠閰嶇疆")] - // [DisplayName("杞翠綅缃浜庡尯闂村唴鏃堕�傜敤鐨勬殏鍋滄搷浣�")] - // [Description("ImmediatePauseSections锛氬綋杞翠綅缃浜庡尯闂村唴鏃堕�傜敤鐨勬殏鍋滄搷浣�")] - // [TypeConverter(typeof(CollectionCountConvert))] - // [Editor(typeof(ComplexCollectionEditor<Section>), typeof(UITypeEditor))] - // public List<Section> ImmediatePauseSections { get; set; } = new List<Section>(); - - // public string GetDisplayText() - // { - // return AxisIndex + "-" + AxisName + "-" + (IsAxisEnabled ? "鍚敤" : "绂佺敤"); - // } - //} - - ///// <summary> - ///// 浣嶇疆瀵硅薄 - ///// </summary> - //public class Section : IComplexDisplay - //{ - // [Category("鏆傚仠鍖洪棿")] - // [DisplayName("璧峰浣嶇疆")] - // [Description("StartPosition锛氳捣濮嬩綅缃�")] - // public int StartPosition { get; set; } - - // [Category("鏆傚仠鍖洪棿")] - // [DisplayName("缁撴潫浣嶇疆")] - // [Description("EndPosition锛氱粨鏉熶綅缃�")] - // public int EndPosition { get; set; } - - // public string GetDisplayText() - // { - // return $"{StartPosition}--{EndPosition}"; - // } - //} - - ///// <summary> - ///// 閫熷害鍙傛暟瀵硅薄 - ///// </summary> - //public class VelocityPara - //{ - // [Category("閫熷害閰嶇疆")] - // [DisplayName("閫熷害")] - // [Description("Velocity锛氶�熷害,涓�0鏃惰〃绀轰笉淇敼褰撳墠璁剧疆")] - // public double Velocity { get; set; } = 0; - - // [Category("閫熷害閰嶇疆")] - // [DisplayName("鍔犻�熷害")] - // [Description("Acc锛氬姞閫熷害,涓�0鏃惰〃绀轰笉淇敼褰撳墠璁剧疆")] - // public double Acc { get; set; } = 1; - - // [Category("閫熷害閰嶇疆")] - // [DisplayName("鍑忛�熷害")] - // [Description("鍑忛�熷害,涓�0鏃惰〃绀轰笉淇敼褰撳墠璁剧疆")] - // public double Dec { get; set; } = 1; - //} - - ///// <summary> - ///// 鍥炲師鐐瑰弬鏁板璞� - ///// </summary> - //public class GoHomePara - //{ - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍥炲師鐐规柟寮�")] - // [Description("HomeMode锛氬洖鍘熺偣鏂瑰紡 锛圚OME_MODE_LIMIT = 10; HOME_MODE_LIMIT_HOME = 11; HOME_MODE_LIMIT_INDEX = 12; HOME_MODE_LIMIT_HOME_INDEX = 13;HOME_MODE_HOME = 20;HOME_MODE_HOME_INDEX = 22;HOME_MODE_INDEX = 30;")] - // public short HomeMode { get; set; } = 11; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍥炲師鐐规柟鍚�")] - // [Description("HomeDir锛�1 姝e悜锛�-1 璐熷悜")] - // public short HomeDir { get; set; } = 1; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍥炲師鐐规柟鍚�")] - // [Description("HomeDir锛�1 姝e悜锛�-1 璐熷悜")] - // public short Edge { get; set; } = 0; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍥炲師鐐规渶浣庨�熷害")] - // [Description("LowVelocity锛氶�熷害,涓�0鏃惰〃绀轰笉淇敼褰撳墠璁剧疆")] - // public double LowVelocity { get; set; } = 50; - - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍥炲師鐐规渶楂橀�熷害")] - // [Description("HighVelocity锛氶�熷害,涓�0鏃惰〃绀轰笉淇敼褰撳墠璁剧疆")] - // public double HighVelocity { get; set; } = 50; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鎼滄悳璺濈")] - // [Description("SearchHomeDistance锛氭悳鎼滆窛绂�")] - // public int SearchHomeDistance { get; set; } = 9999999; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("鍋忕Щ璺濈")] - // [Description("HomeOffset锛氬亸绉昏窛绂�")] - // public int HomeOffset { get; set; } = 0; - - // [Category("鍥炲師鐐瑰弬鏁�")] - // [DisplayName("璺宠繃姝ラ暱")] - // [Description("EscapeStep锛氳烦杩囨闀�")] - // public int EscapeStep { get; set; } = 1000; - - //} - - ///// <summary> - ///// 杩愬姩瀵硅薄 - ///// </summary> - //public class MovingOption : INotifyPropertyChanged, IComplexDisplay - //{ - // private int axisIndex = 0; - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("杩愬姩杞寸储寮�")] - // [Description("AxisIndex锛氳繍鍔ㄨ酱绱㈠紩")] - // [TypeConverter(typeof(AxisIndexConvert))] - // public int AxisIndex - // { - // get => axisIndex; - // set - // { - // if (axisIndex != value) - // { - // axisIndex = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AxisIndex")); - // } - // axisIndex = value; - // } - // } - - // private MotorMoveMode moveMode = MotorMoveMode.Normal; - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("杩愬姩妯″紡")] - // [Description("MoveMode锛氳繍鍔ㄦā寮�")] - // public MotorMoveMode MoveMode - // { - // get => moveMode; - // set - // { - // if (moveMode != value) - // { - // moveMode = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MoveMode")); - // } - - // moveMode = value; - // } - // } - - // private bool isAbsolute = true; - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("鏄惁缁濆杩愬姩")] - // [Description("IsAbsolute锛氭槸鍚︾粷瀵硅繍鍔�")] - // public bool IsAbsolute - // { - // get => isAbsolute; - // set - // { - // if (isAbsolute != value) - // { - // isAbsolute = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsAbsolute")); - // } - - // isAbsolute = value; - // } - // } - - // private int destination = 0; - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("鐩殑鍦�")] - // [Description("Destination锛氱洰鐨勫湴")] - // public int Destination - // { - // get => destination; - // set - // { - // if (destination != value) - // { - // destination = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Destination")); - // } - - // destination = value; - // } - // } - - // private VelocityPara velocityPara = new VelocityPara(); - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("閫熷害鍙傛暟")] - // [Description("VelocityPara锛氶�熷害鍙傛暟")] - // [TypeConverter(typeof(ComplexObjectConvert))] - // [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))] - // public VelocityPara VelocityPara - // { - // get => velocityPara; - // set - // { - // velocityPara = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VelocityPara")); - // } - // } - - // private GoHomePara goHomePara = new GoHomePara(); - // [Category("杩愬姩閰嶇疆")] - // [DisplayName("鍥炲師鐐瑰弬鏁�")] - // [Description("GoHomePara锛氶�熷害鍙傛暟")] - // [TypeConverter(typeof(ComplexObjectConvert))] - // [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))] - // public GoHomePara GoHomePara - // { - // get => goHomePara; - // set - // { - // goHomePara = value; - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("GoHomePara")); - // } - // } - - // internal List<AxisSetting> _axisSettingList = new List<AxisSetting>(); - // public void SetAxisSetting(List<AxisSetting> settings) - // { - // if (settings != null) - // _axisSettingList = settings; - // } - - // public string GetDisplayText() - // { - // string axisName = AxisIndex.ToString(); - // var axisSet = _axisSettingList.FirstOrDefault(a => a.AxisIndex == AxisIndex); - // if (axisSet != null) - // { - // axisName += ("-" + axisSet.AxisName); - // } - // return axisName + "," + MoveMode.ToString() + "," + (IsAbsolute ? "Abs" : "Rel") + "," + Destination; - // } - // public event PropertyChangedEventHandler PropertyChanged; - //} - - //public class AxisIndexConvert : TypeConverter - //{ - // Dictionary<int, string> _indexNameDict = new Dictionary<int, string>(); - - // public override bool GetStandardValuesSupported(ITypeDescriptorContext context) - // { - // return true; - // } - - // public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) - // { - // MovingOption mo = context.Instance as MovingOption; - - // _indexNameDict = mo._axisSettingList.ToDictionary(a => a.AxisIndex, a => a.AxisIndex + "-" + a.AxisName); - - // return new StandardValuesCollection(_indexNameDict.Keys); - // } - - // public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - // { - // if (sourceType == typeof(string)) - // { - // return true; - // } - // return base.CanConvertFrom(context, sourceType); - // } - - // public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object v) - // { - // if (v is string) - // { - // foreach (var indexName in _indexNameDict) - // { - // if (indexName.Value == v.ToString()) - // { - // return indexName.Key; - // } - // } - // return Convert.ToInt32(v); - // } - // return base.ConvertFrom(context, culture, v); - // } - - // public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object v, Type destinationType) - // { - // if (destinationType == typeof(string)) - // { - // if (_indexNameDict.ContainsKey(Convert.ToInt32(v))) - // { - // return _indexNameDict[Convert.ToInt32(v)]; - // } - // } - // return base.ConvertTo(context, culture, v, destinationType); - // } - - // public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) - // { - // return false; - // } - //} - - //public class AxisConflictSet : IComplexDisplay - //{ - // [Category("1.杞村啿绐佹潯浠�")] - // [Description("杞村啿绐佹潯浠讹紝婊¤冻鍏ㄩ儴鏉′欢鏃惰酱杩愬姩闇�瑕佹鏌ュ啿绐�")] - // [TypeConverter(typeof(CollectionCountConvert))] - // [Editor(typeof(ComplexCollectionEditor<AxisLimit>), typeof(UITypeEditor))] - // public List<AxisLimit> AxisOptions { get; set; } = new List<AxisLimit>(); - - // [Category("1.杞村啿绐佹潯浠�")] - // [Description("IO鍐茬獊鏉′欢锛屾弧瓒冲叏閮ㄦ潯浠舵椂杞磋繍鍔ㄩ渶瑕佹鏌ュ啿绐�")] - // [TypeConverter(typeof(CollectionCountConvert))] - // [Editor(typeof(ComplexCollectionEditor<IOLimit>), typeof(UITypeEditor))] - // public List<IOLimit> IOOptions { get; set; } = new List<IOLimit>(); - - // [Category("2.杞村啿绐侀檺鍒�")] - // [Description("杞村啿绐侀檺鍒讹紝杞磋繍鍔ㄥ厑璁稿尯闂�")] - // [TypeConverter(typeof(CollectionCountConvert))] - // [Editor(typeof(ComplexCollectionEditor<AxisLimit>), typeof(UITypeEditor))] - // public List<AxisLimit> AxisLimits { get; set; } = new List<AxisLimit>(); - - // [Category("2.杞村啿绐侀檺鍒�")] - // [Description("IO鍏佽鏉′欢锛屽厑璁歌緭鍑虹殑IO")] - // [TypeConverter(typeof(CollectionCountConvert))] - // [Editor(typeof(ComplexCollectionEditor<IOLimit>), typeof(UITypeEditor))] - // public List<IOLimit> IOOutputs { get; set; } = new List<IOLimit>(); - - // [Category("3.杞村啿绐佸惎鐢�")] - // [Description("true锛氬惎鐢ㄨ酱鍐茬獊闄愬埗 false锛氫笉鍚敤杞村啿绐侀檺鍒�")] - // public bool IsEnabled { get; set; } = true; - - // public string GetDisplayText() - // { - // string optionStr = "Options:" + String.Join(";", AxisOptions.Select(a => a.GetDisplayText())); - // string limitStr = "Limits:" + String.Join(";", AxisLimits.Select(a => a.GetDisplayText())); - - // return optionStr + "|" + limitStr; - // } - //} - - //public class AxisLimit : IComplexDisplay - //{ - // [Category("1.杞村彿")] - // [Description("1.杞村彿")] - // public int AxisIndex { get; set; } - - // [Category("2.杞存渶灏忛檺鍒�")] - // [Description("2.杞存渶灏忛檺鍒�")] - // public int LimitMin { get; set; } - - // [Category("3.杞存渶澶ч檺鍒�")] - // [Description("3.杞存渶澶ч檺鍒�")] - // public int LimitMax { get; set; } - - // private int currentPosition = 0; - // [Browsable(false)] - // [JsonIgnore] - // public int CurrentPosition - // { - // get => currentPosition; - // set - // { - // if (currentPosition != value) - // { - // if (value >= LimitMin && value <= LimitMax) - // { - // IsInLimit = true; - // } - // else - // { - // IsInLimit = false; - // } - // } - - // currentPosition = value; - // } - // } - - // [Browsable(false)] - // [JsonIgnore] - // public bool IsInLimit { get; set; } - - // public string GetDisplayText() - // { - // return String.Format("Index:{0},{1}->{2}", AxisIndex, LimitMin, LimitMax); - // } - //} - - //public class IOLimit : IComplexDisplay - //{ - // [Category("1.IO闄愬埗")] - // [Description("IO绱㈠紩")] - // public int IOIndex { get; set; } - - // [Category("1.IO闄愬埗")] - // [Description("IO闄愬埗鍊笺�傝緭鍏ュ垽鏂椂璇ュ�间綔涓哄惎鐢ㄥ垽鏂�硷紝杈撳嚭鍒ゆ柇鏃惰鍊间綔涓哄厑璁歌緭鍑哄��")] - // public bool IOSignal { get; set; } - - // public string GetDisplayText() - // { - // return IOIndex + "--" + IOSignal.ToString(); - // } - //} - - //public class AxisMovingStay - //{ - // public int Position { get; set; } - - // public int Velocity { get; set; } - - // public AutoResetEvent MoveHandle { get; set; } = new AutoResetEvent(false); - - // public AutoResetEvent MoveSendHandle { get; set; } = new AutoResetEvent(false); - //} + [Device("GTSCard", "鍥洪珮鏉垮崱", EnumHelper.DeviceAttributeType.RunCtrl)] + public class GTSCardRunCtrl : CtrlMotionCardRunBase + { + public GTSCardRunCtrl(IDevice device) : base(device) { } + } } -- Gitblit v1.8.0