From b9c76ce85e533250cd36de670146530f970859e7 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期五, 01 八月 2025 11:29:49 +0800 Subject: [PATCH] 修改伸缩杆接口 --- 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs | 329 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 180 insertions(+), 149 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs" index 4fc54c3..95d36b1 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs" @@ -15,6 +15,10 @@ using WIDESEAWCS_TelescopicService; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_Core.Helper; +using Microsoft.AspNetCore.Http; +using System.Collections.Concurrent; +using Microsoft.AspNetCore.Hosting.Server; +using static System.Collections.Specialized.BitVector32; namespace WIDESEAWCS_Tasks { @@ -26,6 +30,7 @@ WebSocketServer _webSocketServer; private readonly Idt_ErrormsginfoService _ErrormsginfoService; private readonly AlarmResetHsyServer _alarmResetHsy; + private readonly IIPaddressServer _cunstomipService; //private static readonly object _lockObj = new object(); //鍔犻攣 @@ -45,183 +50,209 @@ ["M120"] = false,//闅滅鎶ヨ }; - public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService) + public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService, IIPaddressServer cunstomipService) { _webSocketServer = webSocketServer; _alarmResetHsyServer = alarmResetHsyServer; _UserService = UserService; _ErrormsginfoService = errormsginfoService; + _cunstomipService = cunstomipService; } + + public Task Execute(IJobExecutionContext context) { try { - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + WebSocketSession[] webSocketSessions = _webSocketServer.OnlineSessions;//灏嗘墍鏈夌殑杩炴帴淇℃伅瀛樺埌杩欓噷 + //string clientIp = webSocketSessions[0].Remote.Address.ToString().Replace("::ffff", ""); //鑾峰彇涓�涓猧p鍦板潃 + + foreach (var session in webSocketSessions) { - Console.WriteLine("閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�"); - } - var devices = GetDevicesByDeptId(deid); - if (devices != null) - { - // Left PLC processing - try + string clientIp = session.Remote.Address.ToString().Replace("::ffff:", ""); + var customip = _cunstomipService.GetStandid(clientIp); + if (customip.Status && customip.Data != null) { - if (devices.Value.left.IsConnected) + //var deid = customip.Data.StationID; + var deid = Convert.ToInt32(customip.Data); + var devices = GetDevicesByDeptId(deid); + + + + //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + //{ + // Console.WriteLine("閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�"); + //} + //var devices = GetDevicesByDeptId(deid); + + + + if (devices != null) { - var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M109"); // Servo alarm - var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111"); // Other alarm - var leftscram = devices.Value.left.Communicator.Read<bool>("M110"); // Emergency stop - var leftstop = devices.Value.left.Communicator.Read<bool>("M120"); // Obstacle stop - - var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("D80"); - Console.WriteLine($"{devices.Value.left.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck1}锛屽叾浠栨姤璀leftPLcOher1}"); - - - // Check and record alarms only when state changes from false to true - if (leftPLcstuck1 && !_leftAlarmStates["M109"]) - { - string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細浼哥缉鍗′綇鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1); - _leftAlarmStates["M109"] = true; - } - else if (!leftPLcstuck1) - { - _leftAlarmStates["M109"] = false; - } - - if (leftPLcOher1 && !_leftAlarmStates["M111"]) - { - string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcOher1); - _leftAlarmStates["M111"] = true; - } - else if (!leftPLcOher1) - { - _leftAlarmStates["M111"] = false; - } - - if (leftscram && !_leftAlarmStates["M110"]) - { - string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftscram); - _leftAlarmStates["M110"] = true; - } - else if (!leftscram) - { - _leftAlarmStates["M110"] = false; - } - - if (leftstop && !_leftAlarmStates["M120"]) - { - string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftstop); - _leftAlarmStates["M120"] = true; - } - else if (!leftstop) - { - _leftAlarmStates["M120"] = false; - } - - - _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new + // Left PLC processing + try { - device = "宸lc", - Liftvalue = leftPLcNowAdd - })); + if (devices.Value.left.IsConnected) + { + var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M109"); // Servo alarm + var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111"); // Other alarm + var leftscram = devices.Value.left.Communicator.Read<bool>("M110"); // Emergency stop + var leftstop = devices.Value.left.Communicator.Read<bool>("M120"); // Obstacle stop + + var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("D80"); + Console.WriteLine($"{devices.Value.left.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck1}锛屽叾浠栨姤璀leftPLcOher1}"); + + + // Check and record alarms only when state changes from false to true + if (leftPLcstuck1 && !_leftAlarmStates["M109"]) + { + string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細浼哥缉鍗′綇鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1); + _leftAlarmStates["M109"] = true; + } + else if (!leftPLcstuck1) + { + _leftAlarmStates["M109"] = false; + } + + if (leftPLcOher1 && !_leftAlarmStates["M111"]) + { + string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcOher1); + _leftAlarmStates["M111"] = true; + } + else if (!leftPLcOher1) + { + _leftAlarmStates["M111"] = false; + } + + if (leftscram && !_leftAlarmStates["M110"]) + { + string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftscram); + _leftAlarmStates["M110"] = true; + } + else if (!leftscram) + { + _leftAlarmStates["M110"] = false; + } + + if (leftstop && !_leftAlarmStates["M120"]) + { + string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftstop); + _leftAlarmStates["M120"] = true; + } + else if (!leftstop) + { + _leftAlarmStates["M120"] = false; + } + + + _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new + { + device = "宸lc", + Liftvalue = leftPLcNowAdd + })); + } + } + catch (Exception) + { + string text = $"杞ㄩ亾{deid}锛氬乏PLC鏈繛鎺�"; + //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false); + } + + // Right PLC processing + try + { + if (devices.Value.right.IsConnected) + { + var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M109"); // Servo alarm + var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111"); // Other alarm + var rightscram = devices.Value.right.Communicator.Read<bool>("M110"); // Emergency stop + var rightstop = devices.Value.right.Communicator.Read<bool>("M120"); // Obstacle stop + + var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("D80"); + Console.WriteLine($"{devices.Value.right.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}"); + + + // Check and record alarms only when state changes from false to true + if (rightPLcSuck && !_rightAlarmStates["M109"]) + { + string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鎶ヨ浼哥缉鍗′綇鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck); + _rightAlarmStates["M109"] = true; + } + else if (!rightPLcSuck) + { + _rightAlarmStates["M109"] = false; + } + + if (rightPLcOher && !_rightAlarmStates["M111"]) + { + string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher); + _rightAlarmStates["M111"] = true; + } + else if (!rightPLcOher) + { + _rightAlarmStates["M111"] = false; + } + + if (rightscram && !_rightAlarmStates["M110"]) + { + string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightscram); + _rightAlarmStates["M110"] = true; + } + else if (!rightscram) + { + _rightAlarmStates["M110"] = false; + } + + if (rightstop && !_rightAlarmStates["M120"]) + { + string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�"; + var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightstop); + _rightAlarmStates["M120"] = true; + } + else if (!rightstop) + { + _rightAlarmStates["M120"] = false; + } + + _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new + { + device = "鍙砅lc", + Rightvalue = rightPLcNowAdd + })); + } + } + catch (Exception) + { + string text = $"杞ㄩ亾{deid}锛氬彸PLC鏈繛鎺�"; + //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false); + } + + var alrt = _alarmResetHsyServer.GetWebSocketInfo(deid); + _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt)); } } - catch (Exception) - { - string text = $"杞ㄩ亾{deid}锛氬乏PLC鏈繛鎺�"; - //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false); } - - // Right PLC processing - try - { - if (devices.Value.right.IsConnected) - { - var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M109"); // Servo alarm - var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111"); // Other alarm - var rightscram = devices.Value.right.Communicator.Read<bool>("M110"); // Emergency stop - var rightstop = devices.Value.right.Communicator.Read<bool>("M120"); // Obstacle stop - - var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("D80"); - Console.WriteLine($"{devices.Value.right.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}"); - - - // Check and record alarms only when state changes from false to true - if (rightPLcSuck && !_rightAlarmStates["M109"]) - { - string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鎶ヨ浼哥缉鍗′綇鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck); - _rightAlarmStates["M109"] = true; - } - else if (!rightPLcSuck) - { - _rightAlarmStates["M109"] = false; - } - - if (rightPLcOher && !_rightAlarmStates["M111"]) - { - string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher); - _rightAlarmStates["M111"] = true; - } - else if (!rightPLcOher) - { - _rightAlarmStates["M111"] = false; - } - - if (rightscram && !_rightAlarmStates["M110"]) - { - string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightscram); - _rightAlarmStates["M110"] = true; - } - else if (!rightscram) - { - _rightAlarmStates["M110"] = false; - } - - if (rightstop && !_rightAlarmStates["M120"]) - { - string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�"; - var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightstop); - _rightAlarmStates["M120"] = true; - } - else if (!rightstop) - { - _rightAlarmStates["M120"] = false; - } - - _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new - { - device = "鍙砅lc", - Rightvalue = rightPLcNowAdd - })); - } - } - catch (Exception) - { - string text = $"杞ㄩ亾{deid}锛氬彸PLC鏈繛鎺�"; - //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false); - } - - var alrt = _alarmResetHsyServer.GetWebSocketInfo(deid); - _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt)); } - } catch (Exception ex) { _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1); Console.WriteLine("閿欒淇℃伅锛�" + ex.Message); Console.WriteLine(ex.StackTrace); } + return Task.CompletedTask; + } + public (OtherDevice left, OtherDevice right)? GetDevicesByDeptId(int deptId) { int baseCode = 1 + (deptId - 1) * 2; -- Gitblit v1.9.3