手表信息维护
This commit is contained in:
parent
0ac46d2933
commit
be0141e89b
@ -5,6 +5,9 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Service.mes.andon;
|
||||
using ZR.Service.mes.andon.Iservice;
|
||||
using static System.Formats.Asn1.AsnWriter;
|
||||
|
||||
namespace ZR.Service.Utils.MyAlarmLigth
|
||||
{
|
||||
@ -28,6 +31,8 @@ namespace ZR.Service.Utils.MyAlarmLigth
|
||||
private CancellationTokenSource _cts;
|
||||
private Task _listenTask;
|
||||
|
||||
//private AndonAlarmLevelService andonAlarmLevelService = new AndonAlarmLevelService();
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数(精简参数,日志可选)
|
||||
/// </summary>
|
||||
@ -121,32 +126,45 @@ namespace ZR.Service.Utils.MyAlarmLigth
|
||||
byte lightUnitId = 0x01; // 警灯站号(可按需替换为ReadAlarmlightNumber)
|
||||
try
|
||||
{
|
||||
//X1、X2、X3红按钮,X4绿按钮,X5红按钮
|
||||
//Y1蜂鸣器、Y2红灯、Y3黄灯、Y4绿灯
|
||||
//Y1->0; Y2->1; y3->2; y4->3
|
||||
switch (portNumber)
|
||||
{
|
||||
// X1-X4 → 红灯
|
||||
// X1→ 红按钮
|
||||
case 1:
|
||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||
break;
|
||||
// X2→ 红按钮
|
||||
case 2:
|
||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||
break;
|
||||
// X3→ 红按钮
|
||||
case 3:
|
||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, true);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||
break;
|
||||
// X4→ 绿按钮
|
||||
case 4:
|
||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, true);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, false); //0-Y1地址蜂鸣器
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, false); //1-Y2地址红灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, true); //3-Y4地址绿灯
|
||||
break;
|
||||
// X5 → 绿灯
|
||||
// X5 → 红按钮
|
||||
case 5:
|
||||
_logger?.LogInformation($"✅ X{portNumber}触发:绿灯常亮");
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, false);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, false);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false);
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -611,8 +611,7 @@ namespace ZR.Service.mes.andon
|
||||
model.Receiver4 = typeDic.Receiver4;
|
||||
model.Receiver4Name = typeDic.Receiver4Name;
|
||||
}
|
||||
|
||||
string strMessage = $"{model.Area1}{model.Area2}{model.AlarmType}{model.AlarmInfo}";
|
||||
string strMessage = model.CreatedTime.ToString() + model.Area1 + model.Area2 + model.AlarmType + model.AlarmInfo;
|
||||
|
||||
// 2. 执行核心数据插入(先落库,确保数据不丢失)
|
||||
var resultEntity = Context.Insertable(model).ExecuteReturnEntity();
|
||||
@ -723,7 +722,7 @@ namespace ZR.Service.mes.andon
|
||||
string strOperate = "超时上报";
|
||||
int timeoutMinutes = 0;
|
||||
string ReceiveId = "";
|
||||
string strWatchMessage = item.Area1 + item.Area2 + item.AlarmType + item.AlarmInfo;
|
||||
string strWatchMessage = item.CreatedTime.ToString()+item.Area1 + item.Area2 + item.AlarmType + item.AlarmInfo;
|
||||
//超时未响应,接收人1向接收人2上报
|
||||
if (item.AutoCount == 0 && item.Receiver2Name != null)
|
||||
{
|
||||
@ -874,5 +873,87 @@ namespace ZR.Service.mes.andon
|
||||
//LightUp.CheckLightOnStatusAndTurnOn(_modbusClient, Convert.ToByte(15));
|
||||
return ApiResult.Success("处理成功");
|
||||
}
|
||||
|
||||
//public ApiResult createAlarmRecordTiaoQI(string strAlarmType)
|
||||
//{
|
||||
|
||||
// // 1. 核心业务逻辑(新增报警记录)- 优先执行,不受通讯影响
|
||||
// string strDay = DateTime.Now.ToString("yyyyMMdd");
|
||||
// int Sequence = 1;
|
||||
|
||||
// // 兼容无历史记录的情况(避免First()空指针)
|
||||
// var lastItem = Queryable()
|
||||
// .Where(it => it.AlarmCode.Contains(strDay))
|
||||
// .OrderByDescending(it => it.Sequence)
|
||||
// .ToList()
|
||||
// .FirstOrDefault(); // 替换First()为FirstOrDefault(),避免无数据时抛异常
|
||||
// if (lastItem != null)
|
||||
// {
|
||||
// Sequence = (int)lastItem.Sequence + 1;
|
||||
// }
|
||||
|
||||
// string formattedSequence = Sequence.ToString("D4");
|
||||
// string strAlarmCode = "Alarm" + strDay + formattedSequence;
|
||||
// model.AlarmCode = strAlarmCode;
|
||||
// model.Sequence = Sequence;
|
||||
// model.Status = "待响应";
|
||||
|
||||
// // 获取报警类型配置
|
||||
// var typeDic = andonAlarmTypeDictService.Queryable()
|
||||
// .Where(k => k.TypeCode == model.AlarmTypeCode)
|
||||
// .ToList()
|
||||
// .FirstOrDefault(); // 替换ToList().FirstOrDefault(),减少内存占用
|
||||
// if (typeDic != null)
|
||||
// {
|
||||
// model.Receiver1 = typeDic.Receiver1;
|
||||
// model.Receiver1Name = typeDic.Receiver1Name;
|
||||
// model.Receiver2 = typeDic.Receiver2;
|
||||
// model.Receiver2Name = typeDic.Receiver2Name;
|
||||
// model.Receiver3 = typeDic.Receiver3;
|
||||
// model.Receiver3Name = typeDic.Receiver3Name;
|
||||
// model.Receiver4 = typeDic.Receiver4;
|
||||
// model.Receiver4Name = typeDic.Receiver4Name;
|
||||
// }
|
||||
|
||||
// string strMessage = $"{model.Area1}{model.Area2}{model.AlarmType}{model.AlarmInfo}";
|
||||
|
||||
// // 2. 执行核心数据插入(先落库,确保数据不丢失)
|
||||
// var resultEntity = Context.Insertable(model).ExecuteReturnEntity();
|
||||
|
||||
// // 3. 通讯相关操作(手表推送+三色灯)- 独立try-catch
|
||||
// try
|
||||
// {
|
||||
// // 3.1 手表呼叫报警(注释保留,仅做异常隔离)
|
||||
// if (!string.IsNullOrEmpty(model.Receiver1))
|
||||
// {
|
||||
// List<string> WatchAddressList = GetReceiverWatchAddress(model.Receiver1);
|
||||
// if (WatchAddressList.Any())
|
||||
// {
|
||||
// foreach (string strWatchAddress in WatchAddressList)
|
||||
// {
|
||||
// Watchup.StartPush(strMessage, _socketGateway, strWatchAddress);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// }
|
||||
// try
|
||||
// {
|
||||
// // 3.2 三色灯鸣叫报警(核心通讯操作,单独异常捕获)
|
||||
// byte bLightIp = GetLightIp(model.Area1, model.Area2);
|
||||
// if (bLightIp != 0)
|
||||
// {
|
||||
// LightUp.WriteAlarmLightCommand_Red(_modbusClient, bLightIp);
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// }
|
||||
|
||||
// // 4. 返回新增的实体(核心业务结果不受通讯影响)
|
||||
// return null;
|
||||
//}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user