using ServiceCenter.SqlSugars; using WCS.Core; using WCS.Entity.Protocol; using WCS.Entity.Protocol.BCR; using WCS.Entity.Protocol.DataStructure; using WCS.Entity.Protocol.Protocol.DataStructure; using WCS.Entity.Protocol.RGV; using WCS.Entity.Protocol.Robot; using WCS.Entity.Protocol.SRM; using WCS.Entity.Protocol.Station; using WCS.Entity.Protocol.Truss; using WCS.WorkEngineering.Systems; namespace WCS.WorkEngineering { public class ProtocolProxy : ProtocolProxyBase { public static DeviceDataPack DataPack { get; set; } = new DeviceDataPack(); public ProtocolProxy(Device dev, ProtocolInfo info, Type protocolType, World world) : base(dev, info, protocolType, world) { } protected override void DataChanged() { //if (Device.Code == "RGV1" && Info.DBInfo.No == 520) //{ // var a = Items; // //var dev=Device.Protocol(ProtocolType) // var b = a; //} //try //{ // var datas = DataCollectionSysyem.AllDatas; // if (Device.Code.All(char.IsNumber)) // { // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new StationData { Code = Device.Code }; // } // else if (Device.Code.Contains("SRM")) // { // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new SRMData { Code = Device.Code }; // } // else if (Device.Code.Contains("Truss")) // { // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new TrussData() { Code = Device.Code }; // } // else if (Device.Code.Contains("Robot")) // { // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new RobotData() { Code = Device.Code }; // } // else if (Device.Code.Contains("RGV")) // { // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new RGVData { 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 == ProtocolDataType); // //var ty90 = WCS_Station90; // //if (p.getty is ty90 or) // //{ // //} // if (p == null) return; // p.SetValue(data, DictionaryToEntity(ProtocolDataType, Items, data)); //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //} } public void DictionaryToEntity(Type type, Dictionary plcItems, DeviceData data) { //var entity = Activator.CreateInstance(type); ////采集量 //Parallel.ForEach(type.GetProperties(), ty => //{ // if (plcItems.Any(x => x.Key == ty.Name)) // { // var item = plcItems.First(x => ty.Name == x.Key); // ty.SetValue(entity, item.Value.Value); // } //}); //Parallel.ForEach(type.GetProperties(), ty => //{ // var items = data.GetType().GetProperties(); // if (items.Any(x => x.Name == ty.Name)) // { // var item = items.First(x => ty.Name == x.Name); // ty.SetValue(entity, item.GetValue(data)); // } //}); //foreach (var ty in type.GetProperties().Where(x => x.Name == nameof(TDengineBaseEntity.CreateSql))) //{ // var db = new SqlSugarHelper().PLC; // switch (type.Name) // { // case nameof(WCS_SRM520): // var item = entity as WCS_SRM520; // ty.SetValue(entity, GetString(db.Insertable(item).ToSqlString())); // break; // case nameof(WCS_SRM521): // var item1 = entity as WCS_SRM521; // ty.SetValue(entity, GetString(db.Insertable(item1).ToSqlString())); // break; // case nameof(WCS_SRM537): // var item2 = entity as WCS_SRM537; // ty.SetValue(entity, GetString(db.Insertable(item2).ToSqlString())); // break; // case nameof(WCS_RGV520): // var item3 = entity as WCS_RGV520; // ty.SetValue(entity, GetString(db.Insertable(item3).ToSqlString())); // break; // case nameof(WCS_RGV521): // var item4 = entity as WCS_RGV521; // ty.SetValue(entity, GetString(db.Insertable(item4).ToSqlString())); // break; // case nameof(WCS_BCR80): // var item5 = entity as WCS_BCR80; // ty.SetValue(entity, GetString(db.Insertable(item5).ToSqlString())); // break; // case nameof(WCS_BCR81): // var item6 = entity as WCS_BCR81; // ty.SetValue(entity, GetString(db.Insertable(item6).ToSqlString())); // break; // case nameof(WCS_BCR83): // var item7 = entity as WCS_BCR83; // ty.SetValue(entity, GetString(db.Insertable(item7).ToSqlString())); // break; // case nameof(WCS_Station520): // var item8 = entity as WCS_Station520; // ty.SetValue(entity, GetString(db.Insertable(item8).ToSqlString())); // break; // case nameof(WCS_Station521): // var item9 = entity as WCS_Station521; // ty.SetValue(entity, GetString(db.Insertable(item9).ToSqlString())); // break; // case nameof(WCS_Station523): // var item10 = entity as WCS_Station523; // ty.SetValue(entity, GetString(db.Insertable(item10).ToSqlString())); // break; // case nameof(WCS_Station524): // var item11 = entity as WCS_Station524; // ty.SetValue(entity, GetString(db.Insertable(item11).ToSqlString())); // break; // case nameof(WCS_Station525): // var item12 = entity as WCS_Station525; // ty.SetValue(entity, GetString(db.Insertable(item12).ToSqlString())); // break; // case nameof(WCS_Station90): // var item13 = entity as WCS_Station90; // ty.SetValue(entity, GetString(db.Insertable(item13).ToSqlString())); // break; // case nameof(WCS_Station91): // var item14 = entity as WCS_Station91; // ty.SetValue(entity, GetString(db.Insertable(item14).ToSqlString())); // break; // case nameof(WCS_Truss520): // var item15 = entity as WCS_Truss520; // ty.SetValue(entity, GetString(db.Insertable(item15).ToSqlString())); // break; // case nameof(WCS_Truss521): // var item16 = entity as WCS_Truss521; // ty.SetValue(entity, GetString(db.Insertable(item16).ToSqlString())); // break; // case nameof(WCS_Truss523): // var item17 = entity as WCS_Truss523; // ty.SetValue(entity, GetString(db.Insertable(item17).ToSqlString())); // break; // case nameof(WCS_Truss530): // var item18 = entity as WCS_Truss530; // ty.SetValue(entity, GetString(db.Insertable(item18).ToSqlString())); // break; // case nameof(WCS_Truss531): // var item19 = entity as WCS_Truss531; // ty.SetValue(entity, GetString(db.Insertable(item19).ToSqlString())); // break; // case nameof(WCS_Robot520): // var item20 = entity as WCS_Robot520; // ty.SetValue(entity, GetString(db.Insertable(item20).ToSqlString())); // break; // case nameof(WCS_Robot521): // var item21 = entity as WCS_Robot521; // ty.SetValue(entity, GetString(db.Insertable(item21).ToSqlString())); // break; // case nameof(WCS_Robot522): // var item22 = entity as WCS_Robot522; // ty.SetValue(entity, GetString(db.Insertable(item22).ToSqlString())); // break; // case nameof(WCS_Robot530): // var item23 = entity as WCS_Robot530; // ty.SetValue(entity, GetString(db.Insertable(item23).ToSqlString())); // break; // case nameof(WCS_Robot531): // var item24 = entity as WCS_Robot531; // ty.SetValue(entity, GetString(db.Insertable(item24).ToSqlString())); // break; // } //} //return entity; } public string GetString(string value) { return value.Replace("INSERT INTO ", "") .Replace(",N'", ",'") .Replace("\0", "") .Replace("wcs_", "") .Replace("(N'", "('") + "\r"; } } }