Лишние байты при передаче через COM-порт - C#

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

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

Возник такой вопрос. Мне нужно от компьютера передавать команды устройству. Есть жесткий протокол, но я наткнулся на проблему. Есть такая функция

SerialPort.Write(Char[], Int32, Int32)

которая передает в порт массив символов. В принципе мне это и надо, но есть одно жирное но. С какого-то перепугу после передачи последнего символа вдогонку лезут 0x41 и 0x0A. И из-за этого весь протокол рушится. Как можно победить эту заразу. Программу в устройстве для отсекания этих символов поправить нельзя.

Решение задачи: «Лишние байты при передаче через COM-порт»

textual
Листинг программы
for (int i = 0; i < Comanda.Text.Length; i++) // Здесь я перекидываю из string[] в char[]
    {
        Byte_Out[i] = Convert.ToChar(Comanda.Text[i]);
    }
 
serialPort1.Write(Byte_Out, 0, Comanda.Text.Length); // А это отправка

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы