Obsługa LPT w Delphi i WinApi |
|
|
|
Redaktor: Administrator
|
|
13.04.2007. |
|
Tym razem proponujÄ™ Wam zapoznanie siÄ™ z obsuÅ‚ugÄ… portu równolegÅ‚ego w Delphi, ale nie tylko. ObsÅ‚uga odbywa siÄ™ za pomocÄ… WinApi wiec równie dobrze można jÄ… zrealizować w C++. DziÄ™ki temu że używamy WinApi program przez nas napisany nie ma problemu z funkcjonowaniem na WinXp.
Na poczÄ…tku tworzymy zmiennÄ… najlepiej globalnÄ… hLPT w której zapiszemy uchwyt naszego portu LPT. Za pomocÄ… funkcji CreateFile przypisujemy do hLPT uchwyt naszego portu, dzieki niemu możemy teraz wysyÅ‚ać na port dane. Do wysyÅ‚ania danych używamy fonkcji WriteFile dane które chcemy wysÅ‚ać zapisujemy do zmiennej data a nastepnie wywoÅ‚ujemy powyższÄ… funkcjÄ™. var hLPT:HWND; ret:dword; data:integer; // tu bedÄ… zapisywane dane wysyÅ‚ane na port begin hLPT:=CreateFile('LPT1',GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0); data:=1; //00000001 binarnie czyli syg "1" na pinie zerowym (D0) WriteFile(hLPT,data,1,ret,nil); data:=8; // 00001000 binarnie czyli syg "1" na pinie trzecim (D3) WriteFile(hLPT,data,1,ret,nil); data:=0; // czyli wyzerowanie portu WriteFile(hLPT,data,1,ret,nil); CloseHandle(hLPT); //zamkniÄ™cie portu end;
%0Avar%0AhLPT%3AHWND%3B%0A%20%20%20%20ret%3Adword%3B%0A%20%20%20%20data%3Ainteger%3B%20%2F%2F%20tu%20bed%C4%85%20zapisywane%20dane%20wysy%C5%82ane%20na%20port%0Abegin%20%0A%20%20%20%20hLPT%3A%3DCreateFile%28%27LPT1%27%2CGENERIC_WRITE%2C0%2Cnil%2COPEN_EXISTING%2C0%2C0%29%3B%20%20%20%20%20%0A%20%20%20%20data%3A%3D1%3B%20%20%20%20%20%20%2F%2F00000001%20binarnie%20czyli%20syg%20%221%22%20na%20pinie%20zerowym%20%28D0%29%20%20%20%20%0A%20%20%20%20WriteFile%28hLPT%2Cdata%2C1%2Cret%2Cnil%29%3B%20%20%0A%20%20%20%20data%3A%3D8%3B%20%2F%2F%2000001000%20binarnie%20czyli%20syg%20%221%22%20na%20pinie%20trzecim%20%28D3%29%20%20%20%20%20%20%0A%20%20%20%20WriteFile%28hLPT%2Cdata%2C1%2Cret%2Cnil%29%3B%20%0A%20%20%20%20data%3A%3D0%3B%20%2F%2F%20czyli%20wyzerowanie%20portu%20%20%0A%20%20%20%20WriteFile%28hLPT%2Cdata%2C1%2Cret%2Cnil%29%3B%20%20%0A%20%20%20%20CloseHandle%28hLPT%29%3B%20%20%2F%2Fzamkni%C4%99cie%20portu%0Aend%3B%20 |
|
Zmieniony ( 16.02.2008. )
|