05.11.2013 Aufrufe

Projektbericht 796.8 KByte - Technikpreis

Projektbericht 796.8 KByte - Technikpreis

Projektbericht 796.8 KByte - Technikpreis

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

39 D Quellcode<br />

function TSerialThread.OpenCOM(Port: byte): boolean; stdcall;<br />

begin<br />

PortHandle :=<br />

CreateFile(PChar(’\\.\COM’+IntToStr(Port)),GENERIC_READ or GENERIC_WRITE,0,<br />

nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,LongInt(0));<br />

if PortHandle > 0 then<br />

begin<br />

Result := true;<br />

InitOverlapped(WriteOverlapped);<br />

InitOverlapped(ReadOverlapped);<br />

InitOverlapped(StatusOs);<br />

end else Result := false;<br />

end;<br />

function TSerialThread.CloseCOM : boolean; stdcall;<br />

begin<br />

PurgeComm(PortHandle, PURGE_RXABORT or PURGE_RXCLEAR or PURGE_TXABORT or PURGE_TXCLEAR);<br />

SetCommMask(PortHandle,0); //unterbricht WaitCommEvent im Polling thread<br />

result:= CloseHandle(PortHandle);<br />

PortHandle := 0;<br />

end;<br />

function TSerialThread.ComAvailable(ComNr: byte): boolean; stdcall;<br />

var<br />

TestHandle : integer;<br />

begin<br />

TestHandle :=<br />

CreateFile(PChar(’\\.\COM’+IntToStr(ComNr)),GENERIC_READ or GENERIC_WRITE,0,<br />

nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,LongInt(0));<br />

if (TestHandle

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!