/// <summary> /// Считывает текущее состояние и сообщения из АППИ /// </summary> /// <returns>Сообщения, полученные с момента предыдущего считывания</returns> private void GetAndComputeBuffer() { var bufferBytes = ReadBuffer(); PushBufferToLog(BufferDirection.In, bufferBytes); var buffer = AppiBufferBase.Decode(bufferBytes); // Если принят неопознанный буфер - выходим if (buffer == null) { return; } // Смотрим, не принимали ли мы это ранее if (buffer.SequentNumber == LastReadBufferId) { _logger.Error("Повторяющийся буфер обнаружен и проигнорирован."); return; } else { LastReadBufferId = buffer.SequentNumber; } OnBufferRead(new AppiBufferReadEventArgs(buffer)); if (buffer is MessagesReadAppiBuffer) { ProcessMessagesBuffer((MessagesReadAppiBuffer)buffer); } if (buffer is VersionReadAppiBuffer) { ParseVersionBuffer((VersionReadAppiBuffer)buffer); } }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="T:System.EventArgs"/>. /// </summary> public AppiBufferReadEventArgs(AppiBufferBase Buffer) { this.Buffer = Buffer; }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="T:System.EventArgs"/>. /// </summary> public AppiBufferReadEventArgs(AppiBufferBase Buffer) { this.Buffer = Buffer; }