![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| POP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.9.2006 Репутация: 0 Всего: 1 |
Не пашет сабжевая функция.
Если обходиться только BuildCommDCB и заполнять COMMTIMEOUTS вручную то все работает, модем реагирует на команды. Если же делать так: Вызываем GetCommTimeouts, добавляем TO=ON в строке, вызываем BuildCommDCBAndTimeouts, вызываем SetCommTimeouts... и проверяем прогу. Прога виснет по таймауту и не может прочитать ответ модема, я промониторил COM порт и увидел какие значения она выставляет автоматом: ReadIntervalTimeout := 0; ReadTotalTimeoutMultiplier := 0; ReadTotalTimeoutConstant := 0; WriteTotalTimeoutMultiplier := 0; WriteTotalTimeoutConstant := 60000; Если же вручную устанавливать: ReadIntervalTimeout := 50; ReadTotalTimeoutMultiplier := 1; ReadTotalTimeoutConstant := 200; WriteTotalTimeoutMultiplier := 10; WriteTotalTimeoutConstant := 200; То все пашет. Я не пойму в чем соль тогда, ведь по идее эта функция должна автоматом устанавливать таймауты в зависимости от настроек порта и нам не пришлось бы в этом случае самому все считать. Кто работает с COM портами должен знать об этой функции. Ни кто не в курсе в чем проблема? |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
А хде проблема? в том что по умолчанию тайм аута нет? или что? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| POP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.9.2006 Репутация: 0 Всего: 1 |
Проблема в том что с теми значениями таймаутов которые выставляет эта функция модем не откликается на AT команды которые я посылаю. Если же вручную их установить то все работает. И тк в моей программе пользователь может сам выбирать скорость соединения, то и хотелось бы чтобы таймату выставлялись в соотвествии с выбранной скоростью, я так понял что эта функция как раз для этого и предназначена. Это сообщение отредактировал(а) POP - 8.9.2006, 15:07 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Ну так и устанавливай для каждого соединения(скорости) свои таймауты вручную( программно) ,
а вообще имхо многие работают с ком портом вообще без тайм аутов -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "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. |