Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как мне проверить наличие сигнала CTS, в COM   Найти похожие ветки 

 
Dmitriy_G ©   (2004-01-19 09:13) [0]

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


 
Evgeny V ©   (2004-01-19 14:18) [1]

GetCommModemStatus, или по WaitCommEvent


 
Dmitriy_G ©   (2004-01-19 15:52) [2]

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


 
jack128 ©   (2004-01-19 16:21) [3]

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


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

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


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

Вот как перевел хелп по этой функции 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-20 06:48) [6]

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


 
Dmitriy_G ©   (2004-01-20 06:48) [7]

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



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
6-1075097889
Коляныччч
2004-01-26 09:18
2004.04.04
Порты


11-1058450384
savva
2003-07-17 17:59
2004.04.04
RichEdit и OLE support - какая то засада...


14-1079094151
ferrik
2004-03-12 15:22
2004.04.04
RichView


1-1079546847
Chcnger
2004-03-17 21:07
2004.04.04
Опять факториал


1-1079197102
Kuzmich
2004-03-13 19:58
2004.04.04
Обработка нажатия левой и правой кнопки одновременно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский