Projektbericht 796.8 KByte - Technikpreis
Projektbericht 796.8 KByte - Technikpreis
Projektbericht 796.8 KByte - Technikpreis
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