X13.Periphery.MsDevice.TimeOut C# (CSharp) Method

TimeOut() private method

private TimeOut ( object o ) : void
o object
return void
    private void TimeOut(object o) {
      //Log.Debug("$ {0}.TimeOut _tryCounter={1}", Owner.name, _tryCounter);
      if(_tryCounter>0) {
        MsMessage msg=null;
        lock(_sendQueue) {
          if(_sendQueue.Count>0) {
            msg=_sendQueue.Peek();
          }
        }
        _waitAck=false;
        if(msg!=null) {
          _tryCounter--;
          SendIntern(msg);
        } else {
          ResetTimer();
          _tryCounter=0;
        }
        return;
      }
      state=State.Lost;
      if(Owner!=null) {
        Disconnect();
        if(_statistic.value) {
          Stat(false, MsMessageType.GWINFO);
        }
        Log.Warning("{0} Lost", Owner.path);
      }
      lock(_sendQueue) {
        _sendQueue.Clear();
      }
      if(_gate!=null) {
        _gate.SendGw(this, new MsDisconnect());
        if(_statistic.value) {
          Stat(true, MsMessageType.DISCONNECT, false);
        }
      }
    }