Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Лучше всего: ставь таймаут и ожидай события 08.01.04 23:51 Число просмотров: 1251
Автор: amirul <Serge> Статус: The Elderman
|
> Мне нужно точно определить время выполнения той или иной > команды.. То, что приходит ОК если команда успешно, это > понятно, но это в конце рузультата, мнеж нужно определить > то время которое пройдёт прежде чем можно будет читать > данные из порта!!!! Как уже и было сказано. Таймаут уже не важно какой (SetCommTimeouts немного из другой оперы, для установки таймаута на WaitCommEvent придется ставить SetTimer), можешь даже конфигурируемым сделать (так лучше всего). Команды как уже сказано заканчиваются CRLF-ом, но поставить в качестве флага можно только один символ, посему ставь LF. Да, тут сделали замечание, о котором я забыл, по умолчанию, если не ошибаюсь, у модемов включена локальная эха. Или отключай ее или жди двух флагов. Если флаг не пришел до определнного таймаута - ошибка (даже если в порту есть данные, то это вряд ли ответ модема), если пришел - читай данные (но если ты ставил маску на несколько событий - проверяй какое сработало). Если сработало EV_RXFLAG - можешь читать сразу же. Данные уже в буфере и именно столько сколько надо. Просто выделяешь буфер побольше, ставишь (SetCommTimeouts) таймайты для RIT, RTTM, RTTC в MAXDWORD, 0, 0 соответственно и выполняешь ReadFile
|
|
|