gkj 2 anos atrás
pai
commit
36046c273a

+ 2 - 2
WCS.Entity.Protocol/DataStructure/DeviceDataCollection.cs

@@ -14,13 +14,13 @@ namespace WCS.Entity.Protocol.DataStructure
         /// <summary>
         /// 确认时间
         /// </summary>
-        [DataMember(Order = 0)]
+        [DataMember(Order = 3)]
         public DateTime Frame { get; set; }
 
         /// <summary>
         /// 数据集
         /// </summary>
-        [DataMember(Order = 1)]
+        [DataMember(Order = 4)]
         public T[] Datas { get; set; }
 
         /// <summary>

+ 16 - 8
WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -1,5 +1,6 @@
 using Newtonsoft.Json;
 using ServiceCenter;
+using ServiceCenter.Extensions;
 using ServiceCenter.Helpers;
 using ServiceCenter.SqlSugars;
 using System.ComponentModel;
@@ -20,10 +21,12 @@ namespace WCS.Service.Systems
     public class DataCollectionSysyem : DeviceSystem<SRM>
     {
         public List<Station> ConvList;
+        public List<Device<IStation91>> Conv91List;
 
         public DataCollectionSysyem()
         {
             ConvList = Device.All.Where(v => v.HasProtocol(typeof(IStation523))).Select(v => new Station(v, this.World)).ToList();
+            Conv91List = Device.All.Where(v => v.HasProtocol(typeof(IStation91))).Select(v => new Device<IStation91>(v, this.World)).ToList();
         }
 
         protected override bool ParallelDo => true;
@@ -40,22 +43,27 @@ namespace WCS.Service.Systems
             SqlSugarHelper.Do(db =>
             {
                 DeviceDataPack pack = new DeviceDataPack();
-                pack.StationDatas = new DeviceDataCollection<StationData>();
-                pack.StationDatas.Frame = DateTime.Now;
-
+                List<StationData> DevList = new List<StationData>();
                 foreach (var item in ConvList)
                 {
                     var dev = new StationData()
                     {
                         Code = item.Entity.Code,
                         Frame = DateTime.Now,
-                        D520 = item.Data as WCS_Station520,
-                        D521 = item.Data2 as WCS_Station521,
-                        D523 = item.Data3 as WCS_Station523,
-
+                        D520 = TypeExtension.Mapper<WCS_Station520, IStation520>(item.Data),
+                        D521 = TypeExtension.Mapper<WCS_Station521, IStation521>(item.Data2),
+                        D523 = TypeExtension.Mapper<WCS_Station523, IStation523>(item.Data3),
+                        D91 = new WCS_Station91()
                     };
-                    pack.StationDatas.Datas.Append(dev);
+                    if (Conv91List.Any(v => v.Entity.Code == item.Entity.Code))
+                    {
+                        var d91 = Conv91List.First(v => v.Entity.Code == item.Entity.Code);
+                        dev.D91 = TypeExtension.Mapper<WCS_Station91, IStation91>(d91.Data);
+                    }
+                    DevList.Add(dev);
                 }
+                pack.StationDatas = new DeviceDataCollection<StationData>(DateTime.Now, DevList.ToArray());
+
                 pack.Frame = DateTime.Now;
                 //pack.
 

+ 1 - 1
WCS.WorkEngineering/Systems/一楼入库工位处理系统.cs

@@ -52,7 +52,7 @@ namespace WCS.WorkEngineering.Systems
                 if (task.Status != Entity.TaskStatus.AGVExecution) throw new KnownException($"任务:{task.ID}状态不是AGV执行中,请检查异常原因", LogLevelEnum.High);
 
                 //获取称重
-                var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation523>(v, this.World)).FirstOrDefault();
+                var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation91>(v, this.World)).FirstOrDefault();
                 task.Weight = dev91.Data.Weight;
                 WmsApi.WcsUploadInfo(task.ID, (decimal)task.Weight, task.BarCode);
 

+ 1 - 1
WCS.WorkEngineering/Systems/二楼入库工位处理系统.cs

@@ -64,7 +64,7 @@ namespace WCS.WorkEngineering.Systems
                if (obj.Entity.Code == "1025")
                {
                    //获取称重
-                   var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation523>(v, this.World)).FirstOrDefault();
+                   var dev91 = Device.All.Where(v => v.Code == obj.Entity.Code).Select(v => new Device<IStation91>(v, this.World)).FirstOrDefault();
                    task.Weight = dev91.Data.Weight;
                    WmsApi.WcsUploadInfo(task.ID, (decimal)task.Weight, task.BarCode);
                }

+ 1 - 1
WCS.WorkEngineering/WorkStart.cs

@@ -83,7 +83,7 @@ namespace WCS.WorkEngineering
                     var conv = Device.All.FirstOrDefault(x => x.Code == item.DeviceNo[i].ToString());
                     conv.AddFlag(DeviceFlags.外检);
                     int pos = i * 14;
-                    conv.AddProtocol<IStation523>(pos, 91, item.IP);
+                    conv.AddProtocol<IStation91>(pos, 91, item.IP);
                 }
             }