Форум: "Система";
Текущий архив: 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