Win API стандартизує використання цього обладнання. Для отримання доступу до апаратури використовується наступна послідовність кроків:
- Отримати Handler пристрою викликом CreateFile з ім'ям пристрою. Детальніше про це читайте Windows SDK Help.
- Для управління пристроєм викликати функції API для даного пристрою, або посилати IOCTL (input - otput control) останнім через DeviceIOCtl (детально див Windows SDK Help).
- Закрити пристрій CloseHandle (Handler);
Відкриття порту:
- Параметр 1: Ім'я порту - 'COM1', ітд
- Параметр 2: режим відкриття GENERIC_READ - читання, GENERIC_WRITE - запис
- Параметр 3: режим поділу ресуртса. Примітка: 0 - неподільні (саме так описано відкриття послідовного порту в WIN SDK, інші режими не перевіряв).
- Параметр 4: Режим безпеки. Має сенс в Windows NT, Windows 9x ігнорує його.
- Параметр 5: Спосіб відкриття. Для порту - OPEN_EXISTING - відкрити, коли пристрій реально існує.
- Параметр 6: режим накладення операцій - FILE_FLAG_OVERLAPPED - дозвіл таких операцій. При цьому операції читання - записи, що вимагають значного часу, виконуються фоново по відношенню до основного потоку програми.
- Параметр 7: шаблон файлу, для послідовного порту - завжди 0.
У разі нормального відкриття порту FHandle - дескриптор порту, при невдачі містить значення INVALID_HANDLE_VALUE.
Закриття порту:
Закриття порту виконується викликом CloseHandle (FHandle).
Налаштування параметрів передачі (швидкість, кількість біт, стоп біти)
Структура даних про настройки порту (device control block) DCB містить інформацію про настройки порту. Поля структури:
Інші дані структури
Delphi має оболонку для DCB - TDCB.
Отримати поточну конфігурацію порту можна функцією GetCommState (Fhandle: Handle; fDCB: TDCB).
Встановити відповідно SetCommDCB.