|
@@ -68,46 +68,64 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
//}
|
|
|
|
|
|
- //try
|
|
|
- //{
|
|
|
- // var datas = DataCollectionSysyem.AllDatas;
|
|
|
- // if (Device.Code.StartsWith("SRM"))
|
|
|
- // {
|
|
|
- // if (!datas.ContainsKey(Device.Code))
|
|
|
- // datas[Device.Code] = new SRMData { Code = Device.Code };
|
|
|
- // }
|
|
|
- // else if (Device.Code.StartsWith("RGV"))
|
|
|
- // {
|
|
|
- // if (!datas.ContainsKey(Device.Code))
|
|
|
- // datas[Device.Code] = new RGVData { Code = Device.Code };
|
|
|
- // }
|
|
|
- // else if (Device.Code == "Robot")
|
|
|
- // {
|
|
|
- // if (!datas.ContainsKey(Device.Code))
|
|
|
- // datas[Device.Code] = new RobotData { Code = Device.Code };
|
|
|
- // }
|
|
|
- // else if (Device.Code.Length == 4)
|
|
|
- // {
|
|
|
- // if (!datas.ContainsKey(Device.Code))
|
|
|
- // datas[Device.Code] = new StationData { Code = Device.Code };
|
|
|
- // }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var datas = DataCollectionSysyem.AllDatas;
|
|
|
+ if (Device.Code.StartsWith("SRM"))
|
|
|
+ {
|
|
|
+ if (!datas.ContainsKey(Device.Code))
|
|
|
+ datas[Device.Code] = new SRMData { Code = Device.Code };
|
|
|
+ }
|
|
|
+ else if (Device.Code.StartsWith("RGV"))
|
|
|
+ {
|
|
|
+ if (!datas.ContainsKey(Device.Code))
|
|
|
+ datas[Device.Code] = new RGVData { Code = Device.Code };
|
|
|
+ }
|
|
|
+ else if (Device.Code == "Robot")
|
|
|
+ {
|
|
|
+ if (!datas.ContainsKey(Device.Code))
|
|
|
+ datas[Device.Code] = new RobotData { Code = Device.Code };
|
|
|
+ }
|
|
|
+ else if (Device.Code.Length == 4)
|
|
|
+ {
|
|
|
+ if (!datas.ContainsKey(Device.Code))
|
|
|
+ datas[Device.Code] = new StationData { Code = Device.Code };
|
|
|
+ }
|
|
|
|
|
|
- // if (!datas.TryGetValue(Device.Code, out var data)) return;
|
|
|
- // data.Frame = DateTime.Now;
|
|
|
- // var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolType);
|
|
|
- // if (p == null)
|
|
|
- // {
|
|
|
- // Console.WriteLine("类型" + data.GetType().Name + "不包含类型为" + ProtocolType.Name + "的属性");
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // p.SetValue(data, Items);
|
|
|
- // }
|
|
|
- //}
|
|
|
- //catch (Exception ex)
|
|
|
- //{
|
|
|
- // Console.WriteLine(ex.Message);
|
|
|
- //}
|
|
|
+ if (!datas.TryGetValue(Device.Code, out var data)) return;
|
|
|
+ data.Frame = DateTime.Now;
|
|
|
+ var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolDataType);
|
|
|
+ if (p == null)
|
|
|
+ {
|
|
|
+ Console.WriteLine("类型" + data.GetType().Name + "不包含类型为" + ProtocolType.Name + "的属性");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ p.SetValue(data, GenA(ProtocolDataType, Items));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Console.WriteLine(ex.Message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public object GenA(Type type, Dictionary<string, PlcItem> items)
|
|
|
+ {
|
|
|
+ var a = Activator.CreateInstance(type);
|
|
|
+ foreach (var ty in type.GetProperties())
|
|
|
+ {
|
|
|
+ foreach (var item in items)
|
|
|
+ {
|
|
|
+ if (ty.Name == item.Key)
|
|
|
+ {
|
|
|
+ ty.SetValue(a, item.Value.Value);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return a;
|
|
|
}
|
|
|
|
|
|
private object Copy(object obj, Type type)
|