у меня вот еще вопрос какой возник.
я вообще первый раз столкнулся с программированием com-порта.
и так сказать опытным путем вроде вычислил способ извлечения полученных данных.
при получении информации на com-порт ActiveX-компонента NetComm (кстати, как я понял - она полный аналог MSComm) генерирует события в следующем порядке:
comEvDSR (изменение в Data Set Ready. DSR=true)
потом одно или несколько событий:
comEvReceive (здесь все также DSR=true)
а после них опять:
comEvDSR (DSR=false).
Так вот, во время первого события comEvDSR и при каждом comEvReceive, я считываю данные, которые находятся в буфере приемки ActiveX'а. После того, как отловлено второе событие comEvDSR считываение данных заканчиваю, и то, что собрал в предыдущих событиях, объявляю результатом.
Вроде бы все работает нормально, но иногда проскакивает следующий глюк:
Обычно, когда срабатывает второе событие comEvDSR, буфер ActiveX с данными пуст. Но, иногда (я не могу понять закономерность) там оказываются данные... :-/
Вообщем, что я не правильно делаю? Может не учитываю какую-нибудь особенность?
PS. Если знаете где сколь-нибудь толково описано как работать с com-портом, дайте пожалуйста ссылочку.
|