diff --git a/ZR.Service/Utils/MyAlarmLigth/TiaoQiFangLight.cs b/ZR.Service/Utils/MyAlarmLigth/TiaoQiFangLight.cs
index 35716104..b39ddcb7 100644
--- a/ZR.Service/Utils/MyAlarmLigth/TiaoQiFangLight.cs
+++ b/ZR.Service/Utils/MyAlarmLigth/TiaoQiFangLight.cs
@@ -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();
+
///
/// 构造函数(精简参数,日志可选)
///
@@ -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;
}
}
diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
index daff790b..49631441 100644
--- a/ZR.Service/mes/andon/AndonAlarmRecordService.cs
+++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
@@ -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 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;
+ //}
}
}
\ No newline at end of file