/// <summary> /// 创建人:张辽阔 /// 创建时间:2017-06-26 /// 创建记录:启动看门狗定时器(定时器定时触发时间为一分钟) /// </summary> /// <param name="wgID">网关ID</param> /// <param name="Interval">看门狗启动的时间间隔</param> private static void WatchdogTimerStart(int wgID) { if (wgID <= 0) { return; } WatchdogTimerStop(); WatchdogTimer = new System.Timers.Timer(); WatchdogTimer.Interval = 60000; WatchdogTimer.Elapsed += (s, e) => { try { bool deviceStatusAnyOn; lock (ComFunction.deviceStatus) { deviceStatusAnyOn = ComFunction.deviceStatus.Any(item => item.WGID == wgID.ToString() && item.WSLinkstatu == "1"); } //如果有WS连接状态为连接 if (deviceStatusAnyOn) { WatchdogTimerStop(); LogHelper.WriteWatchDogLog("有传感器已经连接,停止定时器!"); LogHelper.WriteWatchDogLog("有传感器已经连接,开始启动看门狗!"); WatchdogOperation.StartWatchdog(wgID); } } catch { } }; WatchdogTimer.Start(); }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2017-06-26 /// 创建记录:启动看门狗定时器(定时器定时触发时间为最大温度采集时间间隔) /// </summary> /// <param name="wgID">网关ID</param> /// <param name="interval">看门狗启动的时间间隔</param> internal static void WatchdogTimerStart(int wgID, double interval) { if (wgID <= 0 || interval <= 0) { return; } WatchdogTimerStop(); WatchdogTimer = new System.Timers.Timer(); WatchdogTimer.Interval = interval; WatchdogTimer.Elapsed += (s, e) => { try { bool deviceStatusAllOff; lock (ComFunction.deviceStatus) { deviceStatusAllOff = ComFunction.deviceStatus.All(item => item.WGID == wgID.ToString() && item.WSLinkstatu == "0"); } //如果全部的WS连接状态为断开 if (deviceStatusAllOff) { LogHelper.WriteWatchDogLog("所有的传感器都已经断开,开始停止看门狗!"); WatchdogOperation.StopWatchdog(); WatchdogTimerStart(wgID); } } catch { } }; WatchdogTimer.Start(); }