/// <summary> /// Serial port connection needs keep alive messages every 40 second... /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void KeepAlive_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { if (this.InactivityMode == InactivityMode.Disconnect) { this.Disconnect(); } else if (this.InactivityMode == InactivityMode.KeepAlive) { NotifyProgress(this, "Keep Alive", 0, 1); m_Communicator.KeepAlive(); } else if (this.InactivityMode == InactivityMode.Reopen || this.InactivityMode == InactivityMode.ReopenActive) { if (DateTime.Now.Subtract(m_Communicator.ConnectionStartTime).TotalSeconds > 40) { Disconnect(); InitializeConnection(); m_Communicator.ConnectionStartTime = DateTime.Now; } } } catch (Exception Ex) { this.Disconnect(); GXDLMS.Common.Error.ShowError(null, Ex); } finally { NotifyProgress(this, "Ready", 1, 1); } }
/// <summary> /// Serial port connection needs keep alive messages every 40 second... /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void KeepAlive_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { NotifyProgress(this, "Keep Alive", 0, 1); communicator.KeepAlive(); } catch (Exception Ex) { this.Disconnect(); GXDLMS.Common.Error.ShowError(null, Ex); } finally { NotifyProgress(this, "Ready", 1, 1); } }