|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.05.2013, 17:27 | #11 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Что если после WaitCommEvent вставить Sleep(1)? Для пробы... Или INFINITE заменить на какую-нибудь реальную задержку?
Последний раз редактировалось FataLL; 28.05.2013 в 17:31. |
28.05.2013, 17:31 | #12 | |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
|
28.05.2013, 17:37 | #13 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
А INFINITE поменять, скажем, на 100 или 200?
|
28.05.2013, 17:43 | #14 | ||
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
Должно же где-то на поверхности лежать простое и лаконичное решение, блин... Цитата:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
||
28.05.2013, 18:09 | #15 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
А если всё в отдельном потоке, может не открывать порт в режиме OVERLAPPED? Пусть WaitCommEvent вернёт значение, когда действительно что-то придёт... Не?
|
29.05.2013, 06:58 | #16 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Нельзя, информация не только принимается, но и может отправляться (по требованию). Причем отправление происходит верно.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
29.05.2013, 07:46 | #17 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Откуда такая щепетильность к парочке тактов? Что за задача такая?
I'm learning to live...
|
29.05.2013, 08:24 | #18 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Прием/передача данных между GUI и устройством по RS485.
Возможно я неправильно уяснил для себя назначение ovarlapped, исходя из этого мануала. Как я понимаю, если будет неперекрываемая операция, то управление в программу не вернется, пока операция не будет выполнена. Соответственно может(?) подвиснуть GUI. Или я не так все понял, и в масштабах сом-порта эти задержки пренебрежимо малы?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
29.05.2013, 09:03 | #19 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Я бы относился к этому мануалу поосторожней.
Автор предлагает нам воспользоваться overlapped I/O только для того, чтоб блокировать поток ожиданием. Зачем это нужно - не понятно, если все используемые функции (WaitCommEvent, ReadFile, WriteFile) могут ожидать сами. Далее, чтение из COM порта выполняется по сигналу а запись - нет. Ну и где здесь логика? Все, что нужно, это поток для чтения/записи и правильные COMMTIMEOUTS и никаких "перекрывемых" операций не надо. |
29.05.2013, 09:14 | #20 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Т.е. следующая конструкция потока чтения должна корректно работать (при условии открытия порта без флага FILE_FLAG_OVERLAPPED)?
Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как влияет музыка на человека | Ёжик в тумане | Свободное общение | 26 | 01.11.2012 15:03 |
Как изменить ширину картинки на фоне? | Try | HTML и CSS | 0 | 16.09.2009 22:57 |
Картинка на фоне MDI формы... Как? | masterdela | Общие вопросы Delphi | 4 | 13.01.2009 14:41 |