using Microsoft.AspNetCore.SignalR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WCS.Application.Hub; using WCS.Application.Service.WcsDevice.Dto; namespace WCS.Application; public static class HubUtil { private static readonly IHubContext<PlcHub, IPlcHub> _plcHubContext = App.GetService<IHubContext<PlcHub, IPlcHub>>(); private static readonly IHubContext<PlcDeviceHub, IPlcDeviceHub> _plcDeviceHubContext = App.GetService<IHubContext<PlcDeviceHub, IPlcDeviceHub>>(); private static readonly IHubContext<TaskLogHub, ITaskLogHub> _taskLogHubContext = App.GetService<IHubContext<TaskLogHub, ITaskLogHub>>(); private static readonly IHubContext<CheckTaskHub, ICheckTaskHub> _checkTaskHubContext = App.GetService<IHubContext<CheckTaskHub, ICheckTaskHub>>(); /// <summary> /// 下å‘PLCè¿žæŽ¥çŠ¶æ€ /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task PublicPlcConn(WcsPlc context) { if (PLCTaskAction.boRefresh) await _plcHubContext.Clients.All.PublicPlcConn(context); } /// <summary> /// 䏋呿Хè¦ä¿¡æ¯ /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task PublicAlarm(List<WcsAlarmInfo> context) { if (PLCTaskAction.boRefresh) await _plcHubContext.Clients.All.PublicAlarm(context); } /// <summary> /// 修改æœåŠ¡çŠ¶æ€ /// </summary> /// <param name="context"></param> public static async Task UpdateService(PLCServiceModel context) { if (PLCTaskAction.boRefresh) await _plcHubContext.Clients.All.UpdateService(context); } /// <summary> /// ä¸‹å‘æŽ§åˆ¶å°ä½ç½®ä¿¡æ¯ /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task PublicPosition(PlcPositionInfo context) { if (PLCTaskAction.boRefresh) await _plcHubContext.Clients.All.PublicPosition(context); } /// <summary> /// 下å‘任务 /// </summary> /// <returns></returns> public static async Task PublicTask(WcsTaskOutput context) { if (PLCTaskAction.boRefresh) await _taskLogHubContext.Clients.All.PublicTask(context); } /// <summary> /// 下å‘任务明细 /// </summary> /// <returns></returns> public static async Task PublicTaskMonitor(WcsTaskMonitorOutput context) { if (PLCTaskAction.boRefresh) await _taskLogHubContext.Clients.All.PublicTaskMonitor(context); } /// <summary> /// 下å‘è®¾å¤‡ä¿¡æ¯ /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task PublicPlcDevice(WcsDeviceOutput context) { if (PLCTaskAction.boRefresh) await _plcDeviceHubContext.Clients.All.PublicPlcDevice(context); } /// <summary> /// 下å‘åˆ†æ‹£ä»»åŠ¡ä¿¡æ¯ /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task PublicCheckTask(WcsDeviceTaskOrderDto context) { if (PLCTaskAction.boRefresh) await _checkTaskHubContext.Clients.All.PublicCheckTask(context); } }