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_ITaskInfoService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_TelescopicService; namespace WIDESEAWCS_Tasks { [DisallowConcurrentExecution] public class AlarmResetJob : JobBase, IJob { private WebSocketServer _webSocketContext; private readonly AlarmResetHsyServer _alarmResetHsyServer; public AlarmResetJob(WebSocketServer webSocketServer, AlarmResetHsyServer alarmResetHsyServer) { _webSocketContext = webSocketServer; _alarmResetHsyServer = alarmResetHsyServer; } public Task Execute(IJobExecutionContext context) { try { //获取设备号 // 获取设备配置 OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams"); if (serialPortDevice!=null) { //首先要一直读,如果发生了故障要写到_alarmResetHsyServer中记录下来并且给到前端数据 if (serialPortDevice.DeviceName=="左汇川PLC") { //左plc //var leftPLcstuck = serialPortDevice.Communicator.Read("M104"); //卡住报警 //var leftPLcOher = serialPortDevice.Communicator.Read("M105"); //其他报警 //默认是false //Console.WriteLine($"左PLC:卡住报警{leftPLcstuck},其他报警{leftPLcOher}"); // if (leftPLcstuck == true&&leftPLcOher==false) // { // string text = "报警伸缩卡住报警"; // //报警了在这调用添加方法,并传给前端 // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 // } // if (leftPLcOher == true&&leftPLcstuck==false) { // string text = "其他故障报警"; // _alarmResetHsyServer.AddAlarmHsy(text, leftPLcOher); // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 // } // if (leftPLcstuck == true && leftPLcOher == true)//如果报警了 // { // string text = "报警伸缩卡住报警和其他故障报警"; // _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck); // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 //} } else if (serialPortDevice.DeviceName == "右汇川PLC") { //右plc //var rightPLcSuck = serialPortDevice.Communicator.Read("M104"); //卡住报警 //var rightPLcOher = serialPortDevice.Communicator.Read("M105");//其他报警 //Console.WriteLine($"右PLC:卡住报警{rightPLcSuck},其他报警{rightPLcOher}"); //if (rightPLcSuck == true&& rightPLcOher==false) //{ // string text = "报警伸缩卡住报警"; // //报警了在这调用添加方法,并传给前端 // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcSuck); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 //} //if (rightPLcOher == true&& rightPLcSuck==false) //{ // string text = "其他故障报警"; // _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher); // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 //} //if (rightPLcSuck == true && rightPLcOher == true)//如果报警了 //{ // string text = "报警伸缩卡住报警和其他故障报警"; // _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher); // var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher); // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式 //} } } } catch (Exception ex) { Console.WriteLine("错误信息:" + ex.Message); Console.WriteLine(ex.StackTrace); } return Task.CompletedTask; } } }