Пример #1
0
        /// <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);
            }
        }
Пример #2
0
 /// <summary>
 /// Инициализирует новый экземпляр класса <see cref="T:System.EventArgs"/>.
 /// </summary>
 public AppiBufferReadEventArgs(AppiBufferBase Buffer)
 {
     this.Buffer = Buffer;
 }
Пример #3
0
 /// <summary>
 /// Инициализирует новый экземпляр класса <see cref="T:System.EventArgs"/>.
 /// </summary>
 public AppiBufferReadEventArgs(AppiBufferBase Buffer)
 {
     this.Buffer = Buffer;
 }