Организовать приём байтов из буфера последовательного порта SerialPort - Visual Basic .NET

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

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

Всем здравствуйте. Подскажите, пожалуйста, кто работал с последовательным портом, как правильно организовать приём байтов из буфера последовательного порта. Настраиваю порт согласно протокола фирмы-изготовителя прибора, открываю порт. Тут 100% без ошибок. Посылаю набор байтов запроса, опять же всё по протоколу. Мой запрос прибором принимается, то есть контрольную сумму я считаю правильно и запрос формирую правильно. Ответ приходит, но явно с ошибками. Первые байты ещё совпадают с ожидаемыми величинами, а дальше - белиберда. Я не говорю уже про два последних байта контрольной суммы (размер принимаемого массива 37 байт). Я грешу на процедуру обработки события SerialPort1_DataReceived:
bReceived - Массив типа Byte на 37 элементов. В процедуре Timer1_Tick вывожу результаты (отображаю считанный массив байт, проверяю контрольную сумму...) Что же я делаю не так? Может внутри этой процедуры следует организовать какой-то цикл? Если у кого есть готовые коды, примеры, поделитесь пожалуйста. Хорошо бы пример на API но для VB.NET.
посадил на отдельную кнопку
процедуру SerialPort1_DataReceived вообще игнорировал И вдруг получил то что хотел! Даже контрольные суммы совпадают! Но для чего-то она (процедура SerialPort1_DataReceived) нужна и наверное код должен быть более практичным.

Решение задачи: «Организовать приём байтов из буфера последовательного порта SerialPort»

textual
Листинг программы
Using token = New CancellationTokenSource()
    token.Token - это токен отмены
End Using

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


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

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

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