![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| SeregaLBN |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.10.2003 Где: Киев Репутация: нет Всего: нет |
Что-то не могу добиться нужного результата.
Есть железка, подключаемая в COM. Работает на скорости 19200. Ещё известно что таймаут ожидания очередного байта - 1..2 сек. После отправки запроса на железку, оператор должен с ним поработать. И после этого девайс отвечает. На всё это (ввод данных оператором и ответ железки) я даю 30 сек. Я немогу добится следующего - когда девайс вообще неподключён к порту, мне, получается, надо что бы через 30 сек ф-ция ReadFile отработалась с таймаутом. Делаю так:
ну и вызываю так:
Вот с таким вызовом ReadFile возвращает WAIT_TIMEOUT через 2 сек. Как мне добиться нужного результата? Подскажите, плз! |
||||
|
|||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
не ясно, что ты собрался читать функцией ReadFile? Зачем чего-то там читать если девайс вообще не подключен? |
|||
|
||||
| SeregaLBN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.10.2003 Где: Киев Репутация: нет Всего: нет |
Ну как для чего:
1. Запустили прогу, а девайса нет. Таких юзеров полно! 2. Забыли включить питание. 3. Девайс есть, он включен и полностью работоспособен. Но при запросе на устройство, опрератор не ввёл данные. Я сейчас такие ситуации не отрабатываю... А надо. |
|||
|
||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
Аааа, ну тогда ясно.
Так сделай readfile при запуске программы чисто для проверки и все. А данные можно заставить вводить. |
|||
|
||||
| SeregaLBN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.10.2003 Где: Киев Репутация: нет Всего: нет |
Не всё так просто
Мая прога - это ActiveX, которая в нужный момент подргружается, работает и выгружается. Так что у меня просто нет времени на холостой ReadFile... |
|||
|
||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
я точно не помню, но есть функция проверяющая наличия девайса, с помощью неё я проверял подключен ли дисковод или цидюк, в файл менеджере, может тебе подойдет, но какая это была функция не помню извини...
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
А может дрова к это штуке задвинуть? тогда система сама будет проверать подлючение.
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Ничего подобного для ком-порта на сколько я знаю нет. На приходелось делать спецальнй переходник где были спаяны два контакта на ком, что бы это отловить
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Дрова на диал-модем? если включить комп без модема - в списе устройств его нет, если вместе включать, то обнаруживается. СУВ
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
может, как-то используется тот факт, что нормальным состоянием на линии, пока ничего не передается, является "высокое" (мне кажется, для этого так и сделали)
честно говоря, не знаю, как это проверить средствами WinAPI, но вполне возможно, Windows проверяет уровень... -------------------- qqq |
|||
|
||||
| ManiaK |
|
||||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 2 Всего: 29 |
Поправочка: есть, но писать свои дрова может не каждый.
Можно использовать выводы CTS/DSR/.... Их состояния легко определяются в компе, а в разъёме можно один из них подвесить на +. |
||||
|
|||||
![]()
|
| Правила форума "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. |