Як мені перевірити наявністьсигналу CTS, в COM
HCom:=CreateFile(PChar(ComboBox1.Text),GE . EscapeCommFunction(HCom,SETRTS); // Встановив RTS Як тепер перевірити наявність CTS
GetCommModemStatus, або за WaitCommEvent
Докладніше будь ласка, і не відправляйте мене до Хелпа, був я там. WaitCommEvent (HCоm, EV_CTS, тут що писати?);
Можна питання? А як ти дізнався, що означають перші два параметри? І чому не скористався тим же способом для визначення сенсу 3 - його параметра?
Хелп подивився, але так як і в Делфі і в буржуйській мові я нуль, то результат дивись вище
Ось як переклав хелп за цією функцією X – Translator PLATINUM.
Функція WaitCommEvent чекає на випадок, щоб статися для зазначеного пристрою зв'язку. Набір подій, які перевірені цією функцією, міститься у випадку маски, пов'язаних з маркером (дескриптором) пристрою.
ОБРОБИТЬ hFile, // Маркер(дескриптор) пристрою зв'язку LPDWORD lpEvtMask, // Адреса змінної для випадку, що стався LPOVERLAPPED lpOverlapped, // Адреса перекритої структури );
Ідентифікує пристрій зв'язку. Функція CreateFile повертає цей маркер (дескриптор).
Вказує на змінну на 32 біти, яка отримує маску, що вказує тип випадку, що стався. Якщо помилка відбувається, значення – нуль; інакше, це одне з наступних значень:
Значення Значення EV_BREAK Перерва була виявлена на введенні. EV_CTS CTS (clear-to-send) сигнал змінена (замінена) держава (стан). держава(стан). EV_ERR Помилка стану лінії сталася. Помилки Стан лінії - CE_FRAME, CE_OVERRUN, і CE_RXPARITY. EV_RING Кільцевий індикатор був виявлений. EV_RLSD RLSD (отримувати сигнал-пошук) сигналзмінена (замінена) держава (стан). EV_RXCHAR Символ було отримано та поміщено у вхідному буфері. Символ випадку визначено в структурі DCB пристрою, яка застосовується на послідовний порт, використовуючи функцію SetCommState.
Вказує на структуру OVERLAPPED. Ця структура була б потрібна, якщо hFile був відкритий з FILE_FLAG_OVERLAPPED. Якщо hFile був відкритий з FILE_FLAG_OVERLAPPED, lpOverlapped параметр не повинен бути НУЛЬОВИЙ(ПОРОЖНІЙ). Це має вказати на правильну (допустиму) структуру OVERLAPPED. Якщо hFile був відкритий з FILE_FLAG_OVERLAPPED, і lpOverlapped НУЛЬОВИЙ(ПОРОЖНІЙ), функція може неправильно повідомляти, що операція закінчена. У цьому випадку (реєстрі) структура 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
Я на делфі пишу відсилали місяць, взагалі-то я ПІКи програмую. А тут завдання з'єднати ПІК, до Кому з компутером, ось я і парюся. Інтуїтивно зрозумілий інтерфейс воюю, в Досі я давно написав, але млинець прогрес. Так що я ніфіга не розумію, Делфі для мене темний ліс.
Я на делфі пишу відсилали місяць, взагалі-то я ПІКи програмую. А тут завдання з'єднати ПІК, до Кому з компутером, ось я і парюся. Інтуїтивно зрозумілий інтерфейс воюю, в Досі я давно написав, але млинець прогрес. Так що я ніфіга не розумію, Делфі для мене темний ліс. І взагалі GetCommModemStatus схоже краще буде в моєму випадку.