//using HslCommunication.WebSocket; //using Newtonsoft.Json; //using Quartz; //using SqlSugar; //using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; //using System.Threading.Tasks; //using WIDESEAWCS_Core.HttpContextUser; //using WIDESEAWCS_Core; //using WIDESEAWCS_ITaskInfoService; //using WIDESEAWCS_Model.Models; //using WIDESEAWCS_QuartzJob; //using WIDESEAWCS_TelescopicService; //using WIDESEAWCS_ISystemServices; //using WIDESEAWCS_Core.Helper; //namespace WIDESEAWCS_Tasks //{ // [DisallowConcurrentExecution] // public class AlarmResetJob : JobBase, IJob // { // private readonly IAlarmResetHsyServer _alarmResetHsyServer; // private readonly ISys_UserService _UserService; // WebSocketServer _webSocketServer; // private readonly Idt_ErrormsginfoService _ErrormsginfoService; // private readonly AlarmResetHsyServer _alarmResetHsy; // public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService, AlarmResetHsyServer alarmResetHsy) // { // _webSocketServer = webSocketServer; // _alarmResetHsyServer = alarmResetHsyServer; // _UserService = UserService; // _ErrormsginfoService = errormsginfoService; // _alarmResetHsy = alarmResetHsy; // } // public Task Execute(IJobExecutionContext context) // { // try // { // //获取设备号 // // 获取设备配置 // //OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams"); // if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) // { // Console.WriteLine("配置项 DepartmentID 无法转换为整数"); // } // var devices = GetDevicesByDeptId(deid); // if (devices != null) // { // //首先要一直读,如果发生了故障要写到_alarmResetHsyServer中记录下来并且给到前端数据 // //左plc // try // { // if (devices.Value.left.IsConnected) // { // var leftPLcstuck1 = devices.Value.left.Communicator.Read("M109"); //伺服报警 // var leftPLcOher1 = devices.Value.left.Communicator.Read("M111"); //其他报警 //默认是false // var leftscram = devices.Value.left.Communicator.Read("M110");//急停报警//默认是false // var leftstop = devices.Value.left.Communicator.Read("M120");//遇到障碍停止报警 // var leftPLcNowAdd = devices.Value.left.Communicator.Read("D80"); // Console.WriteLine($"{devices.Value.left.DeviceName}:卡住报警{leftPLcstuck1},其他报警{leftPLcOher1}"); // if (leftPLcstuck1 == true && leftPLcOher1 == false) // { // string text = $"检8道左侧警惕机构:伸缩卡住报警"; // //报警了在这调用添加方法,并传给前端 // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid,text, leftPLcstuck1); // } // if (leftPLcstuck1 == false && leftPLcOher1 == true) // { // string text = $"检8道左侧警惕机构:其他故障报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcOher1); // } // if (leftPLcstuck1 == true && leftPLcOher1 == true)//如果报警了 // { // string text = $"检8道左侧警惕机构:缩伺服报警和其他故障报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1); // } // if (leftscram) // { // string text = $"检8道左侧警惕机构:急停报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftscram); // } // if (leftstop) // { // string text = $"检8道左侧警惕机构:遇障碍停止报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftstop); // } // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new // { // device = "左Plc", // Liftvalue = leftPLcNowAdd // }));//把D80给前端 // } // } // catch (Exception) // { // string text = $"轨道{deid}:左PLC未连接"; // //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);//添加数据 // } // try // { // if (devices.Value.right.IsConnected)//是否连接上 // { // //右plc // var rightPLcSuck = devices.Value.right.Communicator.Read("M109"); //伺服报警 // var rightPLcOher = devices.Value.right.Communicator.Read("M111");//其他报警 // var rightscram = devices.Value.right.Communicator.Read("M110");//急停报警//默认是false // var rightstop = devices.Value.right.Communicator.Read("M120");//遇到障碍停止报警 // var rightPLcNowAdd = devices.Value.right.Communicator.Read("D80"); // Console.WriteLine($"{devices.Value.right.DeviceName}:卡住报警{rightPLcSuck},其他报警{rightPLcOher}"); // if (rightPLcSuck == true && rightPLcOher == false) // { // string text = $"检8道右侧警惕机构:报警伸缩卡住报警"; // //报警了在这调用添加方法,并传给前端 // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck); // // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 // } // if (rightPLcOher == false && rightPLcSuck == true) // { // string text = $"检8道右侧警惕机构:其他故障报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher); // } // if (rightPLcSuck == true && rightPLcOher == true)//如果报警了 // { // string text = $"检8道右侧警惕机构:报警伸缩卡住报警和其他故障报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher);//添加数据 // } // if (rightscram) // { // string text = $"检8道右侧警惕机构:伸缩杆急停报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightscram); // } // if (rightstop) // { // string text = $"检8道右侧警惕机构:伸缩杆遇障碍停止报警"; // var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightstop); // } // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new { // device="右Plc", // Rightvalue= rightPLcNowAdd // }));//把D80给前端 // } // } // 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) // { // // 左设备号:1 -> 001,2 -> 003,3 -> 005... // int baseCode = 1 + (deptId - 1) * 2; // string leftCode = $"SSG{baseCode.ToString("D3")}"; // string rightCode = $"SSG{(baseCode + 1).ToString("D3")}"; // var left = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == leftCode); // var right = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == rightCode); // //if (left == null || right == null) // // return null; // return (left, right); // } // } //}