>
if not ReadFile (hPort, Buf, dwRead, dwRead, @ OverRead) then
raise Exception.Create ('Error reading port');
// У Buf знаходяться прочитані байти
// Далі йде обробка прийнятих байтів
end;
end; {while}
end;
У наведеному прикладі в потоці крутиться цикл, тим самим ініціюється очікування події порту викликом функції WaitCommEvent (), очікування ж самого цієї події задається функцією WaitForSingleObject (). Для визначення кількості прийнятих символів використовується функція ClearCommError (). Коли кількість прийнятих символів (DwRead) відомо, безпосереднє читання символів виконується функцією ReadFile (). p> Використовуючи вищеописані викладки, я написав на Borland Delphi 7 клас TComPort для роботи з COM-портами. До класу додається приклад програми, що використовує його. Для перевірки працездатності програми я просто з'єднав нуль-модемним кабелем два COM-порту на своєму комп'ютері і запустив два примірники програми для кожного порту. Дані передаються через один порт і одночасно приймаються через інший.
Для передачі і прийому даних передбачені окремі вікна. Формат переданих даних - рядок. Прийняті дані представляються у вигляді масиву байт. br/>