Траблы с чтением данных из COM порта - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Делаю программу работающую с фискальным регистратором по COM порту. Возникла проблема: при чтении данных из COM порта, байт 0x80 меняется на 0x3F. Не могу понять из-за чего это происходит. При этом смотрю сниффером, ФР присылает корректные данные. Читаю данные из COM порта с помощью функции ReadExisting() затем преобразую в байтовый массив с помощью Encoding.ASCII.GetBytes.
        private void OnReceive(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] data = Encoding.ASCII.GetBytes(this.Port.ReadExisting());
 
            Log.Instance.outDebug("ФР прислал данные: ");
            Log.Instance.outHex(data);
 
            BinaryReader br = new BinaryReader(new MemoryStream(data));
            while (br.BaseStream.Position != br.BaseStream.Length)
            {
                this.PacketRead(br);
            }
        }
Подскажите пожалуйста, что может быть не так?

Решение задачи: «Траблы с чтением данных из COM порта»

textual
Листинг программы
            int bytes = this.Port.BytesToRead;
            byte[] data = new byte[bytes];
            this.Port.Read(data, 0, bytes);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5