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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут