Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как мне проверить наличие сигнала CTS, в COM [D6]


Dmitriy_G ©   (2004-01-19 09:13:00) 

HCom:=CreateFile(PChar(ComboBox1.Text),GE
...
EscapeCommFunction(HCom,SETRTS); // Установил RTS
Как теперь проверить наличие CTS


Dmitriy_G   (2004-01-20 06:48:00) [1]

Я на делфи пишу отсилы месяц, вообще-то  я ПИКи программирую. А тут задача соединить ПИК, ко Кому с компутером, вот я и парюсь.
Интуитивно понятный интерфейс вояю, в Досе я давно написал, но блин прогресс.
Так что я нифига не понимаю, Делфи для меня темный лес.


Dmitriy_G   (2004-01-20 06:48:00) [2]

Я на делфи пишу отсилы месяц, вообще-то  я ПИКи программирую. А тут задача соединить ПИК, ко Кому с компутером, вот я и парюсь.
Интуитивно понятный интерфейс вояю, в Досе я давно написал, но блин прогресс.
Так что я нифига не понимаю, Делфи для меня темный лес.
И вообще GetCommModemStatus похоже по лучше будет в моем случае.


jack128   (2004-01-19 19:00:00) [3]

Вот как перевел хелп по этой функции X - Translator PLATINUM.

Функция WaitCommEvent ждет случай, чтобы произойти для указанного устройства связи. Набор событий, которые проверены этой функцией, содержится в случае маска, связанная с маркером(дескриптором) устройства.

BOOL WaitCommEvent (

   ОБРАБОТАЙТЕ hFile,   // Маркер(дескриптор) устройства связи
   LPDWORD lpEvtMask,   // Адрес переменной для случая, который произошел  
   LPOVERLAPPED lpOverlapped,   // Адрес перекрытой структуры
 );  


Параметры

hFile

Идентифицирует устройство связи. Функция CreateFile возвращает этот маркер(дескриптор).

lpEvtMask

Указывает на переменную на 32 бита, которая получает маску, указывающую тип случая, который произошел. Если ошибка происходит, значение - ноль; иначе, это - одно из следующих значений:

Значение   Значение
EV_BREAK   Перерыв был обнаружен на вводе.
EV_CTS   CTS (clear-to-send) сигнал измененное(замененное) государство(состояние).
EV_DSR   DSR (готовый данными-набором) сигнал измененное(замененное) государство(состояние).
EV_ERR   Ошибка состояния линии произошла. Ошибки Состояния линии - CE_FRAME, CE_OVERRUN, и CE_RXPARITY.
EV_RING   Кольцевой индикатор был обнаружен.
EV_RLSD   RLSD (получать-линия-сигнал-поиск) сигнал измененное(замененное) государство(состояние).
EV_RXCHAR   Символ был получен и помещен во входном буфере.
EV_RXFLAG   Символ случая был получен и помещен во входном буфере. Символ случая определен в структуре DCB устройства, которая применяется на последовательный порт, используя функцию SetCommState.
EV_TXEMPTY   Последний(прошлый) символ в буфере вывода был послан.


lpOverlapped

Указывает на структуру OVERLAPPED. Эта структура требовалась бы, если hFile был открыт с FILE_FLAG_OVERLAPPED.
Если hFile был открыт с FILE_FLAG_OVERLAPPED, lpOverlapped параметр не должен быть НУЛЕВОЙ(ПУСТОЙ). Это должно указать на правильную(допустимую) структуру OVERLAPPED. Если hFile был открыт с FILE_FLAG_OVERLAPPED, и lpOverlapped НУЛЕВОЙ(ПУСТОЙ), функция может неправильно сообщать, что операция закончена.
Если hFile был открыт с FILE_FLAG_OVERLAPPED, и lpOverlapped - не НУЛЕВОЙ(ПУСТОЙ), WaitCommEvent выполнен как перекрытая операция. В этом случае(регистре), структура OVERLAPPED должна содержать маркер(дескриптор) к объекту(цели) случая ручного сброса (созданный, используя функцию CreateEvent).

Если маркер(дескриптор) hFile не был открыт с FILE_FLAG_OVERLAPPED, WaitCommEvent не возвращается, пока одно из указанных событий или ошибки не происходит.



Значения Возвращения

Если функция преуспевает, значение возвращения отличное от нуля.
Если функция терпит неудачу, значение возвращения - ноль. Чтобы получить расширенную(продленную) информацию ошибки, вызовите(назовите) GetLastError.

Замечания

Функция WaitCommEvent контролирует набор событий для указанного ресурса связи. Чтобы устанавливать и сделать запрос маски текущего события ресурса связи, используйте функции SetCommMask и GetCommMask.
Если перекрытая операция не может быть закончена немедленно, функция возвращается ЛОЖНЫЙ, и функция GetLastError возвращает ERROR_IO_PENDING, указывая, что операция выполняет на заднем плане. Когда это случается, система устанавливает hEvent члена структуры OVERLAPPED к не - сообщенное государство(состояние) прежде WaitCommEvent возвращения, и затем это устанавливало это на сообщенное государство(состояние), когда одно из указанных событий или ошибки происходит. Процесс запроса может использовать одну из ждущихся функций, чтобы определить государство(состояние) объекта(цели) случая и затем использовать функцию GetOverlappedResult, чтобы определить результаты операции WaitCommEvent. GetOverlappedResult сообщает об успехе или отказе(неудаче) операции, и переменная, указанная lpEvtMask параметром установлена, чтобы указать случай, который произошел.

Если процесс пытается изменять(заменять) маску случая маркера(дескриптора) устройства, используя функцию SetCommMask, в то время как перекрытая операция WaitCommEvent происходит, WaitCommEvent возвращения немедленно. Переменная, указанная lpEvtMask параметром установлена на ноль.

См. Также

CreateFile, DCB, GetCommMask, GetOverlappedResult, ПЕРЕКРЫТЫЙ, SetCommMask, SetCommState


Dmitriy_G   (2004-01-19 18:23:00) [4]

Хелп посмотрел, но так как и в Делфи и в языке буржуйском я ноль, то результат смотри выше


jack128   (2004-01-19 16:21:00) [5]

Можно вопрос? А как ты узнал, что означают первые два параметра? И почему не воспользовался тем же способом, для определния смысла 3 - его параметра?


Dmitriy_G   (2004-01-19 15:52:00) [6]

По подробнее пожалуйста, и не отправляйте меня к Хелпу, был я там.
WaitCommEvent(HCоm,EV_CTS, тут что писать?);


Evgeny V   (2004-01-19 14:18:00) [7]

GetCommModemStatus, или по WaitCommEvent


Наверх

Титульная страница Поиск, карта сайта Написать письмо