From b83a01eec16b236d099dcea3e7a5051c8cae9c6c Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期五, 03 七月 2020 10:48:37 +0800
Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071
---
src/Bro.Device.GTSCard/GTSCardDriver.cs | 6
src/Bro.Common.Model/Helper/PropertyConvertHelper.cs | 96 +++++++++++++++++++++++
src/Bro.M071.Process/M071Process.cs | 16 ++-
src/Bro.Common.Model/Model/IOItem.cs | 11 ++
src/Bro.Common.Model/Helper/EnumHelper.cs | 54 ++++---------
5 files changed, 134 insertions(+), 49 deletions(-)
diff --git a/src/Bro.Common.Model/Helper/EnumHelper.cs b/src/Bro.Common.Model/Helper/EnumHelper.cs
index a264b4a..52c5349 100644
--- a/src/Bro.Common.Model/Helper/EnumHelper.cs
+++ b/src/Bro.Common.Model/Helper/EnumHelper.cs
@@ -523,44 +523,26 @@
}
/// <summary>
- /// IO瀹氫箟绫诲瀷
+ /// IO棰勫畾涔夌被鍨� 涓昏閽堝杈撳嚭
/// </summary>
- public enum IODefine
+ public enum IOPrestatement
{
- Nothing,
- InputStartLeft,
- InputStartRight,
- InputCurtainLeft,
- InputCurtainRight,
- InputSafeDoor,
- InputEmergency,
- InputReset,
- InputScrew1,
- InputScrew2,
- InputSuckLeft,
- InputSuckRight,
- InputSuckXYZ,
- InputCylinderLeftLimitFront,
- InputCylinderLeftLimitBack,
- InputCylinderRightLimitFront,
- InputCylinderRightLimitBack,
+ [Description("鑷畾涔�")]
+ Customized = 0,
+ [Description("鎸囩ず鐏�-榛�")]
+ Light_Yellow = 1,
+ [Description("鎸囩ず鐏�-绾�")]
+ Light_Green = 2,
+ [Description("鎸囩ず鐏�-缁�")]
+ Light_Red = 3,
+ [Description("铚傞福鍣�")]
+ Beep = 4,
+ [Description("鐓ф槑鐏�")]
+ Light = 5,
- OutputYellow,
- OutputGreen,
- OutputRed,
- OutputBeep,
- OutputLight,
- OutputMotorPower,
- OutputInitOK,
- OutputZLock,
- OutputLeftCylinder,
- OutputRightCylinder,
- OutputLeftSuck,
- OutputRightSuck,
- OutputScrewBlow,
- OutputCamera,
- OutputScrewSuck,
+ [Description("鎬ュ仠")]
+ EmergencyStop = 99,
}
/// <summary>
@@ -590,9 +572,9 @@
public enum IOType
{
[Description("INPUT")]
- In = 0,
+ INPUT = 0,
[Description("OUTPUT")]
- Out = 1
+ OUTPUT = 1
}
/// <summary>
diff --git a/src/Bro.Common.Model/Helper/PropertyConvertHelper.cs b/src/Bro.Common.Model/Helper/PropertyConvertHelper.cs
index 3117d1e..b802a92 100644
--- a/src/Bro.Common.Model/Helper/PropertyConvertHelper.cs
+++ b/src/Bro.Common.Model/Helper/PropertyConvertHelper.cs
@@ -392,6 +392,100 @@
return true;
}
}
+
+ public class EnumDescriptionConverter<T> : TypeConverter where T : Enum
+ {
+ Dictionary<T, string> itemDict = new Dictionary<T, string>();
+ public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
+ {
+ typeof(T).GetEnumNames().ToList().ForEach(e =>
+ {
+ T temp = (T)Enum.Parse(typeof(T), e);
+ itemDict[temp] = temp.GetEnumDescription();
+ });
+
+ return new StandardValuesCollection(itemDict.Keys);
+ }
+ public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
+ {
+ return true;
+ }
+
+ public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
+ {
+ return true;
+ }
+
+ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
+ {
+ if (sourceType == typeof(String))
+ return true;
+
+ return base.CanConvertFrom(context, sourceType);
+ }
+
+ public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
+ {
+ return base.CanConvertTo(context, destinationType);
+ }
+
+ public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues)
+ {
+ return base.CreateInstance(context, propertyValues);
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="context"></param>
+ /// <param name="culture"></param>
+ /// <param name="value">string</param>
+ /// <returns></returns>
+ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
+ {
+ try
+ {
+ foreach (string e in typeof(T).GetEnumNames().ToList())
+ {
+ T temp = (T)Enum.Parse(typeof(T), e);
+
+ if (temp.GetEnumDescription() == value.ToString())
+ return temp;
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+
+ return base.ConvertFrom(context, culture, value);
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="context"></param>
+ /// <param name="culture"></param>
+ /// <param name="value">IOItem</param>
+ /// <param name="destinationType"></param>
+ /// <returns></returns>
+ public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
+ {
+ if (value is T temp)
+ {
+ //foreach (KeyValuePair<T, string> pair in itemDict)
+ //{
+ // if (Convert.ToInt32(pair.Key) == Convert.ToInt32(temp))
+ // {
+ // return pair.Value;
+ // }
+ //}
+
+ return temp.GetEnumDescription();
+ }
+
+ return base.ConvertTo(context, culture, value, destinationType);
+ }
+ }
#endregion
#region UITypeEditor
@@ -923,7 +1017,7 @@
return base.EditValue(context, provider, value);
}
- }
+ }
#endregion
}
diff --git a/src/Bro.Common.Model/Model/IOItem.cs b/src/Bro.Common.Model/Model/IOItem.cs
index 4b59a7c..147880e 100644
--- a/src/Bro.Common.Model/Model/IOItem.cs
+++ b/src/Bro.Common.Model/Model/IOItem.cs
@@ -42,7 +42,7 @@
return false;
}
- public string GetDisplayText()
+ public virtual string GetDisplayText()
{
return $"{IOType.GetEnumDescription()}-{IONum}-{Value}";
}
@@ -56,6 +56,11 @@
public class IODefinition : IOItem
{
[Category("IO閰嶇疆")]
+ [Description("IO棰勫畾涔�")]
+ [TypeConverter(typeof(EnumDescriptionConverter<IOPrestatement>))]
+ public IOPrestatement IOPreStatement { get; set; } = IOPrestatement.Customized;
+
+ [Category("IO閰嶇疆")]
[Description("IO鐢ㄩ�旀弿杩�")]
public string IODesc { get; set; }
@@ -67,9 +72,9 @@
[JsonIgnore]
public override int Value { get; set; }
- public new string GetDisplayText()
+ public override string GetDisplayText()
{
- return $"{IODesc} {IOType.GetEnumDescription()} {IONum}";
+ return $"{(IOPreStatement == IOPrestatement.Customized ? IODesc : IOPreStatement.GetEnumDescription())} {IOType.GetEnumDescription()} {IONum}";
}
}
diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index c0da369..2cb1a6d 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -710,13 +710,13 @@
{
IONum = index,
Value = (inValue & (1 << index)) == 0 ? 1 : 0,
- IOType = IOType.In
+ IOType = IOType.INPUT
};
IOItem outItem = new IOItem()
{
IONum = index,
Value = (outValue & (1 << index)) == 0 ? 1 : 0,
- IOType = IOType.Out
+ IOType = IOType.OUTPUT
};
result.Add(inItem);
result.Add(outItem);
@@ -787,7 +787,7 @@
foreach (var replyIOData in monitorSet.ReplyIODatas)
{
//鍐欏叆IO杈撳嚭
- if (replyIOData.IOType == IOType.Out)
+ if (replyIOData.IOType == IOType.OUTPUT)
{
GTSCardAPI.GT_SetDoBit((short)IConfig.CardNum, GTSCardAPI.MC_GPI, (short)replyIOData.IONum, (short)replyIOData.Value);
}
diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index a6a58a3..68b79c6 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -42,6 +42,16 @@
InitialSetting();
base.Open();
+
+ CheckMachineState();
+ }
+
+ /// <summary>
+ /// 妫�鏌ヨ澶囩姸鎬�
+ /// </summary>
+ private void CheckMachineState()
+ {
+ throw new NotImplementedException();
}
private void InitialSetting()
@@ -163,12 +173,6 @@
{
throw new ProcessException("鏈緭鍏ヤ骇鍝佹潯鐮侊紝璇峰嬁寮�濮嬫祴閲�");
}
-
- //妫�鏌ヤ骇鍝佹斁缃甇K
-
- //姘旂几鎺ㄥ姩鍘嬫澘绉诲姩鍒颁骇鍝佷笂鏂�
-
- //鍘嬫澘鍘嬬揣浜у搧
OnMeasureStart?.BeginInvoke(null, null);
--
Gitblit v1.8.0