using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using WIDESEA_Comm; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS { public class GetDate { /// /// 获取车轮数据 /// public static List GetWheelDate(PLCClient client) { List wheelDBItems = new List(); PropertyInfo[] propertyInfos = typeof(WheelDBItem).GetProperties(); var groups = client.itemGroups.OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList(); foreach (var key in groups) { WheelDBItem StackerDBItem = new WheelDBItem(); foreach (var propertyInfo in propertyInfos) { if (propertyInfo.Name == "StackerNo") { StackerDBItem.StackerNo = key.Key; } else { DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name); if (group != null) { var readData = DBExtension.Read(group, client); switch (propertyInfo.Name) { case "R_wheel_SN": StackerDBItem.R_wheel_SN = readData.ToString(); break; case "R_wheel_type": StackerDBItem.R_wheel_type = Convert.ToInt16(readData); break; case "R_part_status": StackerDBItem.R_part_status = Convert.ToByte(readData); break; case "R_part_process": StackerDBItem.R_part_process = Convert.ToByte(readData); break; } } } } wheelDBItems.Add(StackerDBItem); } return wheelDBItems; } } }