1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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.DataStructure;
- using WCS.Entity.Protocol.Station;
- using WCS.Service.Worlds;
- using WCS.WorkEngineering.Extensions;
- namespace WCS.Service.Systems
- {
- /// <summary>
- /// 数据采集系统
- /// </summary>
- [BelongTo(typeof(DataCollectionWorld))]
- [Description("数据采集系统")]
- 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;
- protected override bool SaveLogsToFile => true;
- public override bool Select(Device dev)
- {
- return dev.Code == "SRM1";
- }
- public override void Do(SRM obj)
- {
- SqlSugarHelper.Do(db =>
- {
- DeviceDataPack pack = new DeviceDataPack();
- List<StationData> DevList = new List<StationData>();
- foreach (var item in ConvList)
- {
- var dev = new StationData()
- {
- Code = item.Entity.Code,
- Frame = DateTime.Now,
- 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()
- };
- 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.
- //byte[] bytes = System.Text.Encoding.Default.GetBytes(JsonConvert.SerializeObject(ConvList, null, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }));
- var plcData = new WCS_PlcData()
- {
- AddWho = "WCS",
- WAREHOUSE = ServiceHub.WarehouseName,
- CONTENT = JsonConvert.SerializeObject(ConvList, null, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }),
- };
- var a = TypeConversionHelper.SerializeRedisValue(ConvList);
- //对bytes进行数据压缩
- //plcData.CONTENT = bytes.Compress();
- db.Default.Insertable(plcData).ExecuteCommand();
- });
- }
- }
- }
|