yanjinhui
7 天以前 b9c76ce85e533250cd36de670146530f970859e7
ÏîÄ¿´úÂë/ºó¶Ë/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
@@ -34,6 +34,22 @@
            _UserService = UserService;
        }
        // å¢žæ·»çš„字典跟踪报警为每个装置 Quartz é»˜è®¤æ¯æ¬¡è°ƒåº¦ä»»åŠ¡æ—¶ä¼šé‡æ–°åˆ›å»º
        private static readonly Dictionary<string, bool> _leftAlarmStates = new Dictionary<string, bool>() //加锁
        {
            ["M109"] = false,//伺服报警
            ["M111"] = false,//其他报警
            ["M110"] = false,//急停报警
            ["M120"] = false,//障碍报警
        };
        private static readonly Dictionary<string, bool> _rightAlarmStates = new Dictionary<string, bool>()
        {
            ["M109"] = false,//伺服报警
            ["M111"] = false,//其他报警
            ["M110"] = false,//急停报警
            ["M120"] = false,//障碍报警
        };
        public Task Execute(IJobExecutionContext context)
        {
            try
@@ -41,14 +57,14 @@
                //获取设备号
                // èŽ·å–å…¨éƒ¨è®¾å¤‡é…ç½®
                OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
                //OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
                if (serialPortDevice!=null)
                {
                    HandleAlarm(serialPortDevice);
                }
                //if (serialPortDevice != null)
                //{
                //    HandleAlarm(serialPortDevice);
                //}
                //只读
                var alarmInfo = _alarmResetHsyServer.GetWebSocketInfo();
                _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alarmInfo));
@@ -65,16 +81,18 @@
        {
            try
            {
                var stuck = device.Communicator.Read<bool>("M109"); //伸缩杆报警//默认是false
                var stuck = device.Communicator.Read<bool>("M109"); //伸缩杆伺服报警//默认是false
                var other = device.Communicator.Read<bool>("M111"); //其他报警 //默认是false
                var scram = device.Communicator.Read<bool>("M110");//急停报警//默认是false
                var stop = device.Communicator.Read<bool>("M120");//遇到障碍停止报警
                Console.WriteLine($"{device.DeviceName}:卡住报警的默认值为{stuck},其他报警的默认值为{other}");
                // æ ¹æ®è®¾å¤‡ä»£ç èŽ·å–ä½ç½®å’Œéƒ¨é—¨ID
                var (location, deptId) = device.DeviceCode switch
                {
                    "SSG001" => ("轨道一-å·¦", 1),
                    "SSG002" => ("轨道一-右", 1),
                    "SSG001" => ("检8道左侧警惕机构", 1),
                    "SSG002" => ("检8道右侧警惕机构", 1),
                    "SSG003" => ("轨道二-å·¦", 2),
                    "SSG004" => ("轨道二-右", 2),
                    "SSG005" => ("轨道三-å·¦", 3),
@@ -82,7 +100,7 @@
                    "SSG007" => ("轨道四-å·¦", 4),
                    "SSG008" => ("轨道四-右", 4),
                    "SSG009" => ("轨道五-å·¦", 5),
                    "SSG0010" => ("轨道五-右", 5),
                    "SSG0010" => ("轨道五-右",5),
                    _ => ($"未知设备({device.DeviceCode})", 0) // æœªçŸ¥è®¾å¤‡é»˜è®¤éƒ¨é—¨ID为0
                };
@@ -93,20 +111,25 @@
                    return;
                }
                if (stuck && !other)
                if (stuck && !_leftAlarmStates["M109"])
                {
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, $"{location}:伸缩杆卡住报警", stuck);
                    Console.WriteLine($"{location}:伸缩杆卡住报警", stuck);
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, $"{location}:卡住报警", stuck);
                    Console.WriteLine($"{location}:卡住报警", stuck);
                }
                else if (!stuck && other)
                if (other)
                {
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, $"{location}:其他报警", other);
                    Console.WriteLine($"{location}:其他报警", other);
                }
                else if (stuck && other)
                 if (scram)
                {
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, $"{location}:伸缩杆卡住报警和其他报警", other);
                    Console.WriteLine($"{location}:伸缩杆卡住报警和其他报警", other);
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, $"{location}:急停报警", scram);
                }
                if (stop)
                {
                    var alarm = _alarmResetHsyServer.AddAlarmHsy(deptId, "{location}:遇到障碍报警", stop);
                }
            }
            catch (Exception ex)