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