![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Melevir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Цель следующая: к COM порту подключено устройство, которое само возвращает значения (когда ему вздумается). Требуется всего-то считать это значение. Я не понимаю как именно ожидание сделать. Предполагаю, что через несуществующее событие, но как конкретно не знаю.. Все что я сделал (ну этот код не совсем мой, взял с некоего форума) - инициализировал порт:
Хочу подсказки - что делать дальше? Заранее благодарен |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Добавлено через 2 минуты и 8 секунд http://msdn.microsoft.com/en-us/library/aa363479(VS.85).aspx http://msdn.microsoft.com/en-us/library/aa363435(VS.85).aspx |
|||
|
||||
| Melevir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Так, спасибо..
А какие библиотеки подключить надо? у меня на assert ругается.. Или может это потому что 6я версия среды? И, собственно, как дотянуться до самого значения? Это сообщение отредактировал(а) Melevir - 14.7.2009, 17:19 |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
<assert.h>
|
|||
|
||||
| Melevir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
EV_DSR EV_CTS - эти события не нужны, разве нет? Я знаю, что мне должна прийти строка из восьми символов, значит жду EV_RXCHAR и в цикле восемь раз вызываю нечто вроде ReadFile(hCom,buf,100,&bc,NULL); при этом маска такая: SetCommMask(hCom,EV_RXCHAR);
Я прав? |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Типа того
Добавлено через 36 секунд Получил нужный результат? |
|||
|
||||
| Melevir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Спасибо, буду пробовать.
|
|||
|
||||
| Melevir |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Насчет результата не знаю - тестировать аппарат смогу только завтра и то ограниченное время..
Сейчас вопрос такой: вот пришло мне 8 байт. я же могу не восемь раз по байту читать, а сделать так:
Это будет работать? Не будет. А вот это компилируется:
Но будет ли это верно выполнятся? Вроде должно.. Это сообщение отредактировал(а) Melevir - 14.7.2009, 22:12 |
||||
|
|||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
||||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Нет
Что касается ожидания, если в процессе лжидания НИЧЕГО больше делать не надо, то открывайте порт без всяких OVERLAPPED, и просто читайте из него 8 байтов - чтение заблокирует вашу программу, пока эти байты не придут. Не забудьте настроить порт - скорость и timeout'ы для чтения. |
||||||||
|
|||||||||
| Melevir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Спасиба. Все пашет
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |