| | |
| | | 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 |
| | | { |
| | |
| | | WebSocketServer _webSocketServer; |
| | | private readonly Idt_ErrormsginfoService _ErrormsginfoService; |
| | | private readonly AlarmResetHsyServer _alarmResetHsy; |
| | | private readonly IIPaddressServer _cunstomipService; |
| | | //private static readonly object _lockObj = new object(); //å é |
| | | |
| | | |
| | |
| | | ["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", ""); //è·åä¸ä¸ªipå°å |
| | | |
| | | 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 = "å·¦Plc", |
| | | 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 = "å·¦Plc", |
| | | 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 = "å³Plc", |
| | | 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 = "å³Plc", |
| | | 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; |