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