林豪 左 2 жил өмнө
parent
commit
0279b2e410

+ 5 - 5
WCS.Entity.Protocol/DataStructure/DeviceDataPack.cs

@@ -27,11 +27,11 @@ namespace WCS.Entity.Protocol.DataStructure
         [DataMember(Order = 2)]
         public DeviceDataCollection<StationData> StationDatas { get; set; }
 
-        /// <summary>
-        ///  扫码器数据
-        /// </summary>
-        [DataMember(Order = 3)]
-        public DeviceDataCollection<BCRData> BcrDatas { get; set; }
+        ///// <summary>
+        /////  扫码器数据
+        ///// </summary>
+        //[DataMember(Order = 3)]
+        //public DeviceDataCollection<BCRData> BcrDatas { get; set; }
 
         /// <summary>
         ///  机器人数据集

+ 14 - 1
WCS.Entity.Protocol/DataStructure/StationData.cs

@@ -1,8 +1,12 @@
 using System.Runtime.Serialization;
+using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.Station;
 
 namespace WCS.Entity.Protocol.DataStructure
 {
+    /// <summary>
+    ///  输送线数据
+    /// </summary>
     [DataContract]
     public class StationData : DeviceData
     {
@@ -15,7 +19,16 @@ namespace WCS.Entity.Protocol.DataStructure
         [DataMember(Order = 5)]
         public WCS_Station523 D523 { get; set; }
 
-        [DataMember(Order = 4)]
+        [DataMember(Order = 6)]
+        public WCS_Station90 D90 { get; set; }
+
+        [DataMember(Order = 7)]
         public WCS_Station91 D91 { get; set; }
+
+        [DataMember(Order = 8)]
+        public WCS_BCR80 D80 { get; set; }
+
+        [DataMember(Order = 9)]
+        public WCS_BCR81 D81 { get; set; }
     }
 }

+ 10 - 0
WCS.Entity.Protocol/Station/IStation90.cs

@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.Entity.Protocol.Station
+{
+    public interface IStation90 : IProtocol
+    {
+    }
+}

+ 16 - 0
WCS.Entity.Protocol/Station/WCS_Station90.cs

@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+using System.Text;
+
+namespace WCS.Entity.Protocol.Station
+{
+    /// <summary>
+    ///  90
+    /// </summary>
+    [DataContract]
+    public class WCS_Station90 : IStation90
+    {
+
+    }
+}

+ 32 - 12
WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -1,12 +1,13 @@
 using Newtonsoft.Json;
 using ServiceCenter;
 using ServiceCenter.Extensions;
-using ServiceCenter.Helpers;
 using ServiceCenter.SqlSugars;
 using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
+using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.DataStructure;
+using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.Service.Worlds;
 using WCS.WorkEngineering.Extensions;
@@ -22,11 +23,15 @@ namespace WCS.Service.Systems
     {
         public List<Station> ConvList;
         public List<Device<IStation91>> Conv91List;
+        public List<Device<IBCR81>> Bcrs;
+        public List<SRM> Srms;
 
         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();
+            Bcrs = Device.All.Where(v => v.HasProtocol(typeof(IBCR81))).Select(v => new Device<IBCR81>(v, this.World)).ToList();
+            Srms = Device.All.Where(v => v.HasProtocol(typeof(ISRM520))).Select(v => new SRM(v, this.World)).ToList();
         }
 
         protected override bool ParallelDo => true;
@@ -53,37 +58,52 @@ namespace WCS.Service.Systems
                         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()
+                        D90 = new WCS_Station90(),
+                        D91 = new WCS_Station91(),
+                        D80 = new WCS_BCR80(),
+                        D81 = new WCS_BCR81()
                     };
                     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);
                     }
+                    if (Bcrs.Any(v => v.Entity.Code == item.Entity.Code))
+                    {
+                        var d81 = Bcrs.First(v => v.Entity.Code == item.Entity.Code);
+                        dev.D81 = TypeExtension.Mapper<WCS_BCR81, IBCR81>(d81.Data);
+                    }
+
                     DevList.Add(dev);
                 }
                 pack.StationDatas = new DeviceDataCollection<StationData>(DateTime.Now, DevList.ToArray());
 
-                pack.Frame = DateTime.Now;
-                //pack.
+                List<SRMData> srmList = new List<SRMData>();
+                foreach (var item in Srms)
+                {
+                    var dev = new SRMData()
+                    {
+                        Code = item.Entity.Code,
+                        Frame = DateTime.Now,
+                        D520 = TypeExtension.Mapper<WCS_SRM520, ISRM520>(item.Data),
+                        D521 = TypeExtension.Mapper<WCS_SRM521, ISRM521>(item.Data2),
+                        D537 = TypeExtension.Mapper<WCS_SRM537, ISRM537>(item.Data3),
+                    };
 
-                //byte[] bytes = System.Text.Encoding.Default.GetBytes(JsonConvert.SerializeObject(ConvList, null, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }));
+                    srmList.Add(dev);
+                }
+                pack.SRMDatas = new DeviceDataCollection<SRMData>(DateTime.Now, srmList.ToArray());
+                pack.Frame = DateTime.Now;
 
                 var plcData = new WCS_PlcData()
                 {
                     AddWho = "WCS",
                     WAREHOUSE = ServiceHub.WarehouseName,
-                    CONTENT = JsonConvert.SerializeObject(ConvList, null, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }),
+                    CONTENT = JsonConvert.SerializeObject(pack, null, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }),
                 };
 
-                var a = TypeConversionHelper.SerializeRedisValue(ConvList);
-
-                //对bytes进行数据压缩
-                //plcData.CONTENT = bytes.Compress();
-
                 db.Default.Insertable(plcData).ExecuteCommand();
             });
-
         }
     }
 }

+ 4 - 13
WCS.WorkEngineering/WebApi/Controllers/WmsApi.cs

@@ -1,4 +1,5 @@
-using ServiceCenter.Extensions;
+using ServiceCenter;
+using ServiceCenter.Extensions;
 using ServiceCenter.Redis;
 using ServiceCenter.WebApi;
 using WCS.WorkEngineering.WebApi.Models.AGV.Response;
@@ -36,18 +37,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <summary>
         /// 仓库编号
         /// </summary>
-        public static string wareHouseId
-        {
-            get
-            {
-                _wareHouseId ??= RedisHub.Default.Check("wareHouseId");
-                if (string.IsNullOrEmpty(_wareHouseId))
-                {
-                    throw new KnownException($"请在Redis配置wareHouseId", LogLevelEnum.High);
-                }
-                return _wareHouseId;
-            }
-        }
+        public static string wareHouseId = ServiceHub.WarehouseName;
+
 
         /// <summary>
         ///  上传重量等信息