![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Scalar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.9.2005 Репутация: нет Всего: нет |
Шлю AT модему...
Посылаю любую команду- приложение висит ... |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Если ответ меньше 64 байт, то прога будет ждать, пока они не появятся...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Scalar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.9.2005 Репутация: нет Всего: нет |
p0s0l и как узнать размер ответа если он ещё не получен?
Как тогда правильно ловить ответ модема? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
По одному символу. А потом склеивать их в строку.
|
|||
|
||||
| Гость_Unregistered |
|
|||
|
Unregistered |
В вашем случае нужно настроить таймауты порта (структура TCOMMTIMEOUTS). также не забудте про TDCB, потому что устройство не ответит (или ответит не правильно) если настройки порта устройства и порта компьютера будут различны. Тогда можно проверять следующим образом:
Вызов функций - синхронный, а это значит, что функция вернет значение только если что-то будет во входящем буфере или если закончится таймаут отведенный на чтение. Есть еще один способ вернуть значение функции немедленно: поставить CommTimeouts.ReadIntervalTimeout:=MAXDWORD; но тут самому надо устанавливать задержки перед чтением (типа sleep(100)). Если у вас есть нормальная документация по модему - то этот вариант вам скорее всего не понадобиться. |
|||
|
||||
| Гость_Unregistered |
|
|||
|
Unregistered |
рекомендую: статья Олега Титова http://www.rs232.ru/doc002.html
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 15 Всего: 55 |
Для начала сойдет. Однако, не стоит заморачиваться с описанным там асинхронным вводом/выводом. Лучше использовать потоки. Тем более, что некоторая информация об асинхронном в/в приведенная в указанной статье, вызывает серьезные сомнения. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Unregistred |
|
|||
|
Unregistered |
Петрович, согласен что описание асинхронного в/в оставляет желать лучшего, но в остальном тема раскрыта неплохо. Использование асинхронного вызова целесообразно в случае асинхронного обмена с самим внешним устройством. Потоки в этом случае только усложнят дело.
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 15 Всего: 55 |
По моему мнению так: Если инициатором обмена является перефирийное устройство, тогда возможно асинхронный в/в будет удобнее. А если речь идет о модеме, то тут обычно реализуется диалог - команда-ответ, команда-ответ. Такое гораздо проще строить в потоке. Но, это дело вкуса. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| AKN |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 11.11.2005 Репутация: нет Всего: нет |
Послушай, а почему бы компонентой не воспользоваться? быстро и без гимору....
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 15 Всего: 55 |
Правильно. Главное только не ошибиться с выбором компонента. Некоторые бывают с ошибками написаны -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 6 Всего: 162 |
Так по советуйте, в котором нет ошибок -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |