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<bool>("M104"); //卡住报警
|
//var leftPLcOher = serialPortDevice.Communicator.Read<bool>("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<bool>("M104"); //卡住报警
|
//var rightPLcOher = serialPortDevice.Communicator.Read<bool>("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;
|
}
|
}
|
}
|