Lucrul cu hardware pentru Windows (com port)

Win API standardizează lucrul cu echipamentul. Pentru a accesa echipamentul, utilizați următoarea secvență de pași:

  1. Obțineți dispozitivul Handler apelând CreateFile cu numele dispozitivului. Pentru mai multe informații, consultați Ajutorul SDK Windows.
  2. Pentru a controla dispozitivul, apelați funcțiile API pentru acest dispozitiv sau trimiteți IOCTL (control intrare / ieșire) ultima prin DeviceIOCtl (pentru detalii, consultați Windows SDK Help).
  3. Închideți dispozitivul CloseHandle (Handler);

Deschiderea portului:

  • Parametrul 1: numele portului este "COM1", etc.
  • Parametrul 2: modul de deschidere GENERIC_READ - citire, GENERIC_WRITE - înregistrare
  • Parametrul 3: Modul de împărțire a resurselor. Notă: 0 nu este inseparabilă (așa a fost descrisă deschiderea portului serial în WIN SDK, alte moduri nu au fost verificate).
  • Parametrul 4: modul de securitate. Are sens în Windows NT, Windows 9x îl ignoră.
  • Parametrul 5: Metoda de deschidere. Pentru port - OPEN_EXISTING - deschideți când dispozitivul există.
  • Parametrul 6: modul de suprapunere de operare - FILE_FLAG_OVERLAPPED - permisiune pentru astfel de operațiuni. În acest caz, operațiunile de citire și scriere care necesită o cantitate considerabilă de timp sunt executate în fundal cu privire la fluxul principal al programului.
  • Parametrul 7: șablonul de fișier, pentru portul serial - întotdeauna 0.






În cazul deschiderii normale a mânerului portului FHandle - port, la eșec conține valoarea INVALID_HANDLE_VALUE.







Închiderea portului:

Închiderea portului se face apelând CloseHandle (FHandle).

Setarea parametrilor de transmisie (viteza, numărul de biți, biții de oprire)

Blocul de date pentru controlul dispozitivului (DCB) conține informații despre setările portului. Câmpuri de structură:

Alte date privind structura

Delphi are un înveliș pentru DCB - TDCB.

Puteți obține configurația portului curent prin funcția GetCommState (Fhandle: Handle; fDCB: TDCB).

Setați SetCommDCB în consecință.

concluzie







Articole similare

Trimiteți-le prietenilor: