![]() |
|
|
![]()
|
|
| mishapk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 26.1.2012 Репутация: нет Всего: нет |
Всем привет!
Помогите разобраться с примером взятого со стать
Все хорошо работает, просто замечательно. Но есть одно "Но": Ответ приходит через раз по частям. То есть может быть вот так: Ответ1: "0123456789" - правильно. Ответ2:"0123" - не правильно. Ответ3: "456789" - не правильно. и т.д. Как это исправить? В чем может быть причина в функции опроса или в функции вывода? |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
У тебя же асинхронная операция чтения данных с порта так что варианты
Ответ1: "0123456789" - правильно. Ответ2:"0123" - правильно. Ответ3: "456789" - правильно. Если тебе нужно принять 10 байт, то принимай 10 байт по частям как в Ответ2 и Ответ3, а потом "склеивай" Ответ2 и Ответ3 и получишь те же 10 байт. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
А вообще, лучше уйти от асинхронного приема.
Если ждете ответ от устройства, после передачи запроса поставьте небольшую задержку и потом читайте (в синхронном режиме) с хорошим запасом таймаута. |
|||
|
||||
| mishapk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 26.1.2012 Репутация: нет Всего: нет |
Я поставил маленькую задержку перед определением количества байт в буфере, теперь все успевает полностью.
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |