//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<bool>("M109"); //伺服报警
|
// var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111"); //其他报警 //默认是false
|
// var leftscram = devices.Value.left.Communicator.Read<bool>("M110");//急停报警//默认是false
|
// var leftstop = devices.Value.left.Communicator.Read<bool>("M120");//遇到障碍停止报警
|
|
// var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("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<bool>("M109"); //伺服报警
|
// var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111");//其他报警
|
// var rightscram = devices.Value.right.Communicator.Read<bool>("M110");//急停报警//默认是false
|
// var rightstop = devices.Value.right.Communicator.Read<bool>("M120");//遇到障碍停止报警
|
|
// var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("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);
|
// }
|
// }
|
//}
|