![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 15.12.2017
Сообщений: 3
|
![]()
Добрый день. Господа приходится просить у Вас указать на свои ошибки)
Передо мной встала задача написать win приложение которое должно получать данные из виртуального COM порта. данные - десять байт друг за другом, такой пакет посылается раз в секунду. Собственно, нужно вытащить их в виде массива, последовательность байт должна быть сохранена. Часть написанного кода: Код:
![]() Как бы в название темы добавить что пишу на Си в VS 2013 *______* Последний раз редактировалось karpukopf; 15.12.2017 в 20:45. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,823
|
![]()
Ставите маску на EV_RXCHAR. Получили, читаете сколько есть. Анализируете и опять по кругу.
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 15.12.2017
Сообщений: 3
|
![]()
Но ведь я так и делаю. И моя проблема в том что получается прочесть не весь пакет (до нескольких десятков байт) а чтение происходит по одному байту, что неудобно. Возможно дело в значениях таймаутов? Хотя, байты в ком порт приходят друг за другом, разделены только стоп битами, пакет должен читаться целиком.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,823
|
![]()
Нет, вы имеено реагируете на каждый байт. Можно и так. Но если устройство присылает сразу пакет, то обычно ждут первый байт и несколько раз пытаются вычитать пакет (имеено реадфайлом на оставшийся размер пакета).
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 15.12.2017
Сообщений: 3
|
![]()
Медленно но дошло) После события "приём байта" вызываем ReadFile не на 1 байт а на длину пакета. Огромное спасибо
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение COM порта | vovken1997 | Общие вопросы Delphi | 13 | 25.05.2020 16:44 |
Com port (rs232) асинхронные чтение. Использование таймаута во время ожидания события прихода данных из порта | Mefil | Win Api | 0 | 20.02.2017 08:41 |
Чтение данных с COM-порта и вывод их в memo | CHEburaschka | Общие вопросы Delphi | 12 | 21.05.2015 09:24 |
Дикий тупняк - чтение данных с com порта. | GMX | Компоненты Delphi | 8 | 26.03.2014 15:39 |
Чтение данных с COM порта 232 | Dimitr_88 | Общие вопросы C/C++ | 10 | 03.09.2010 10:39 |