コード例 #1
0
            /// <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();
            }
コード例 #2
0
            /// <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();
            }