Win2000. Работа с СОМ-портом
От: AleSer Россия  
Дата: 16.05.02 10:44
Оценка:
Проблема в следующем:
Моя прога работает под W98 и NT4 без проблем. Опрашивает приборы через COM-порт либо напрямую либо через модемы. Связь устанавливается с помощью TAPI. После установления связи получаю дескриптор файла для работы с COM-портом

При работе в W2000 дескриптор получаю нормально.
При попытке установить сигнал RTS вызов проходит не удачно

EscapeCommFunction( hFile, SETRTS )

и через GetLastError получаю описание ошибки:
"Ошибка выполнения расширенной функции порта. Параметр задан неверно. (Ошибка: 87)."


При работе же через модем происходит что-то не понятное.
После отправки запроса через модем визуально наблюдаю на индикации модема прохождение сигналов:
RTS
TXD — передан последний символ
и через некоторое время
RXD — получен символ ответа

Прога ждет реакции СОМ-порта
WaitCommEvent(hFile, FEventMask, @Overlapped)

TXD — обнаруживается, а RXD — нет.

При отправке следующего запроса
На индикации одновременно TXD и RXD, а еще чуть позже еще RXD.
и прога через WaitCommEvent(hFile, FEventMask, @Overlapped) ловит наконец-то
часть ответа. Но эта часть относится к первому запросу. И т.д.

Причем на модеме сигнал RTS не горит (а в 98 — горит).
Такое впечатление, что обмен c портом идет только когда RTS горит.

Если кто, что-нибудь понял — просьба помочь.
Всё будет хорошо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.