From 4683c8a19e593e8f999c6f1a145e0bb73eb20dea Mon Sep 17 00:00:00 2001 From: chengsc <Demo@DESKTOP-CPA90BF> Date: 星期四, 12 九月 2024 08:17:12 +0800 Subject: [PATCH] 解决冲突 --- Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 38 ++++++++++++++++++++++++++++---------- 1 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 69e9e93..c66cde7 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -13,16 +13,19 @@ public static bool boOffline = false; //鑷埛鏂� public static bool boRefresh = false; + //婕旂ず妯″紡 + public static bool boDemo = false; public static List<PlcPositionInfo> listPositionInfo = new List<PlcPositionInfo>(); private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); private static readonly SysCacheService sysCacheService = App.GetRequiredService<SysCacheService>(); private static readonly IHubContext<PlcHub, IPlcHub> _plcHubContext = App.GetService<IHubContext<PlcHub, IPlcHub>>(); + private static readonly SysConfigService _sysConfigService = App.GetService<SysConfigService>(); private static List<WcsPlc> listPlc = new List<WcsPlc>(); private static List<WcsDevice> listPlcDevice = new List<WcsDevice>(); - private static List<WcsPosition> listPlcStation = new List<WcsPosition>(); + private static List<WcsPosition> listPlcPosition = new List<WcsPosition>(); private static List<WcsAlarmInfo> listAlarmInfo = new List<WcsAlarmInfo>(); private static List<PLCUtil> listPlcUtil = new List<PLCUtil>(); @@ -32,11 +35,24 @@ { get { return listPlcUtil; } } + // 浜や簰鐐归泦鍚� + public static List<WcsDevice> plcDevices + { + get { return listPlcDevice; } + } + public static List<WcsPosition> plcPositions + { + get { return listPlcPosition; } + } public static event EventHandler DeviceValueChangeEvent; static PLCTaskAction() { //璁㈤槄浜嬩欢 DeviceValueChangeEvent += PLCService.OnChangeEvent; + boRunningState = _sysConfigService.GetConfigValue<bool>("sys_RunningState").Result; + boOffline = _sysConfigService.GetConfigValue<bool>("sys_Offline").Result; + boRefresh = _sysConfigService.GetConfigValue<bool>("sys_Refresh").Result; + boDemo = _sysConfigService.GetConfigValue<bool>("sys_demo").Result; } /// <summary> /// 鍒濆鍖朠LC杩炴帴 @@ -46,7 +62,7 @@ cts.Cancel(); listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine).ToList(); listPlcDevice = _db.Queryable<WcsDevice>().ToList(); - listPlcStation = _db.Queryable<WcsPosition>().ToList(); + listPlcPosition = _db.Queryable<WcsPosition>().ToList(); listAlarmInfo = _db.Queryable<WcsAlarmInfo>().ToList(); //绛夊緟鍑犵閽燂紝鎶婂凡鏈夌嚎绋嬪彇娑堟帀鍐嶈繛鎺� //Thread.Sleep(5000); @@ -60,18 +76,20 @@ var plc = new PLCUtil(modPlc); listPlcUtil.Add(plc); } - cts = new CancellationTokenSource(); - boRunningState = true; _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = boRunningState, BoOffline = boOffline, BoRefresh = boRefresh }); - StartRead(); - ConnectionStatus(); - StartWatchAlarm(); - StartWatchPosition(); + if (boRunningState) + { + cts = new CancellationTokenSource(); + StartRead(); + ConnectionStatus(); + StartWatchAlarm(); + StartWatchPosition(); + } } /// <summary> /// 寮�鍚鍙杙lc绾跨▼ @@ -136,10 +154,10 @@ dto.Value = value; dto.Type = _modplc.Type; dto.PLCUtil = modPlcUtil; - dto.listStation = listPlcStation.Where(s => s.DeviceId == modDevice.Id).ToList(); + dto.listStation = listPlcPosition.Where(s => s.DeviceId == modDevice.Id).ToList(); dto.listDevice = listDevice.Where(s => s.StationNum == modDevice.StationNum && s.Level == DeviceLevelEnum.Station).ToList(); //杩欓噷瑙﹀彂鍊煎彉鏇翠簨浠� - //DeviceValueChangeEvent?.Invoke(dto, EventArgs.Empty); + DeviceValueChangeEvent?.Invoke(dto, EventArgs.Empty); } else if (!modPlcUtil.Connected) { -- Gitblit v1.8.0