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