 |
|
Weitere Artikel aus dem Elo-Magazin
|
|
|
|
|
Unit RSCOM.PASvon B. Kainka, Lernpaket MSR mit dem PC Alle VB-Projekte im Lernpaket MSR mit dem PC verwenden die RSCOM.DLL für Zugriffe auf die virtuelle serielle Schnittstelle. Ein Blick in den Delphi-Quelltext zeigt, wie die entsprechenden Windows-API-Aufrufe verwendet werden. Die Delphi-Unit RSCOM.PAS enthält alle Funktionen, die auch über die RSCOM.DLL erreichbar sind. Die kann in eigene Delphi-Projekte eingebunden werden und wurde im Programm Terminal.exe verwendet. Auch das Programm LPmsrT13.exe wurde mit dieser Unit entwickelt. Windows steuert alle Zugriffe auf spezielle Hardware. Es ist daher erforderlich, einen Kommunikationskanal zu einem Gerät erst durch einen ordentlichen Treiberzugriff zu öffnen und damit unter Windows anzumelden. Ein später gestartetes Programm erhält dann keinen Zugriff auf dieselbe Hardware. | Ganzen Artikel lesen... |  |
Für direkte Aufrufe von Windows-Funktionen wurde die Win32-API-Schnittstelle definiert (API = Application Programming Interface). Windows stellt eine Reihe von DLLs zur Verfügung, deren Funktionen von jedem Programm aufgerufen werden können. Die Wichtigste ist KERNEL32.DLL. Grundsätzliche Informationen über die einzelnen Aufrufe liefert die Datei Win32.hlp. Hier werden alle wichtigen Aufrufe in Delphi gezeigt. Das Ergebnis ist die Unit RSCOM.PAS auf der CD, die in eigenen Delphi-Programmen eingesetzt werden kann. Zusätzlich wir die Unit weiter unten in die Funktionsbibliothek RSCOM.DLL umgesetzt, die sowohl in Delphi als auch in Visual Basic eingesetzt wird. Alle Zugriffe auf die serielle Schnittstelle erfolgen über einige wenige API-Aufrufe, die sich im Wesentlichen an der Dateiverwaltung orientieren. Geräte wie die Druckerschnittstelle, die serielle Schnittstelle oder die USB-Schnittstelle werden ebenfalls wie Dateien behandelt: CreateFile() Öffnen einer Datei oder eines Geräts CloseHandle() Schließen einer Datei oder eines Geräts ReadFile() Lesen bzw. Empfangen von Daten WriteFile() Schreiben bzw. Senden von Daten DeviceIoControl() Ausführen spezieller Treiberfunktionen Beim Öffnen wird ein Handle verwendet, also eine Zahl vom Typ Integer, die zur eindeutigen Zuordnung des verwendeten IO-Kanals dient. Das Handle wird vom System entsprechend der Reihenfolge von CreateFile-Aufrufen vergeben. Da WriteFile für sehr unterschiedliche Aktionen und Geräte verwendet werden kann, unterscheidet das Betriebssystem diese mithilfe des Handles. Entsprechend gibt CloseHandle die entsprechende Schnittstelle wieder frei. Ursprünglich konnten nur die Schnittstellen COM1 bis COM9 geöffnet werden. Höhere Schnittsellen wie z. B. COM51 heißen unter Windows etwas anders, nämlich z. B. \\.\COM51. Der Gerätename wird hier automatisch erweitert. Möglich sind jetzt COM-Nummern bis 255. Von außen kann die Funktion so aufgerufen werden: OPENCOM „COM255:1200,N,8,1". function OPENCOM (OpenString: pchar): Integer; var S, OpenStr, PortStr, Parameter :String; DCB: TDCB; begin Result := 0; if PortHandle > 0 then CloseHandle(PortHandle); OpenStr := OpenString; S := copy (OpenStr,5,1); if S=':' then begin //COM1: PortStr := copy (OpenStr,1,4); Parameter:= copy (OpenStr,6,Length(OpenStr)-6); end; S := copy (OpenStr,6,1); if S=':' then begin //COM10: PortStr := copy (OpenStr,1,5); PortStr := '\\.\' + PortStr; Parameter:= copy (OpenStr,7,Length(OpenStr)-7); end; S := copy (OpenStr,7,1); if S=':' then begin //COM100: PortStr := copy (OpenStr,1,6); PortStr := '\\.\' + PortStr; Parameter:= copy (OpenStr,8,Length(OpenStr)-8); end; PortHandle:=CreateFile(PChar(PortStr),GENERIC_READ or GENERIC_WRITE,0,NIL,OPEN_EXISTING,0,0); GetCommState(PortHandle,DCB); BuildCommDCB(PChar(Parameter),dcb); DCB.Flags := 1; if SetCommState(PortHandle,DCB)then Result := 1; TimeOuts (300); end; procedure SENDBYTE (Dat: Integer); var BytesWritten: DWord; begin WriteFile(PortHandle,Dat,1,BytesWritten,NIL); END; function READBYTE(): Integer; var Dat: Byte; BytesRead: DWORD; begin ReadFile(PortHandle,Dat,1,BytesRead,NIL); if BytesRead = 1 then Result:=Dat else Result := -1; end; Listing 1: Öffnen, Schreiben und Lesen Download Unit RSCOM.Pas

Lernen Sie die ganze Vielfalt vom Franzis Buch- und Softwareverlag kennen
|
|
|