Траблы с чтением данных из 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д