Dynamik link library zur Kommunikation mit den COM-Ports (COM1 ...).
Die DLL ermöglicht nicht nur das Senden von Kommandos oder Strings
an
die COM-Ports, sondern auch die Überwachung von Ports in einer
resourcenschonenden Weise.
Der Schwerpunkt bei der Programmierung lag nicht in der Speedoptimierung,
dieses ist sowieso von den Ports abhängig, sondern in der einfachen
Handhabung
und sicherem Umgang mit den COM-Ports.
Deklaration:
Private Declare Function ComGetDLLVersion Lib "vbcom32" () AS LONG
Parameter:
keine
Rückgabewerte:
Long. Eine Zahl, die für die aktuelle DLL-Version steht.
PortNr;Baudrate;Bits;Parität;StopBits
Ein solcher String wird zum Öffnen eines ComPorts benötigt.
Mittels dieser
Funktion können Sie jederzeit abfragen, mit welchem "Connectstring"
ein
Port geöffnet wurde. Sie benötigen dazu lediglich den Handle:
hCom,
den
die ComOpen()-Funktion zurück gibt.
Deklaration:
Private Declare Function ComGetConnectString Lib "vbcom32" _
(BYVAL hCom AS LONG, lpBuffer AS STRING) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports.
[out] lpBuffer: String. Eine initialisierte Stringvariable,
in der der Connectstring abgelegt wird.
Rückgabewerte:
Im Fehlerfall 0. Success ist größer als 0.
Anwendungsbeispiel:
Dim sBuffer As String
sBuffer = Space(50)
If ComGetConnectString(hCom, sBuffer) Then
MsgBox sBuffer
End If
Deklaration:
Private Declare Function ComGetComName Lib "vbcom32" _
(BYVAL hCom AS LONG, lpBuffer AS STRING) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports.
[out] lpBuffer: String. Eine initialisierte Stringvariable,
in der der Name des Ports abgelegt wird.
Rückgabewerte:
0, wenn z.B. der Handle nicht mehr gültig ist oder ungleich 0 im Erfolgsfall.
Anwendungsbeispiel:
Dim sBuffer As String
sBuffer = Space(5)
If ComGetComName(hCom, sBuffer) Then
MsgBox sBuffer
Else
Msgbox "Der angegebene Handle ist nicht mehr gültig."
End If
Deklaration:
Private Declare Function ComSetEventMask Lib "vbcom32" _
(BYVAL hCom AS LONG, BYVAL nFlags AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports.
[in] nFlags: Eine der nachfolgenden Konstante:
Private Const EV_BREAK = &H40
Private Const EV_CTS = &H8
Private Const EV_DSR = &H10
Private Const EV_ERR = &H80
Private Const EV_RING = &H100
Private Const EV_RLSD = &H20
Private Const EV_RXCHAR = &H1
Private Const EV_RXFLAG = &H2
Private Const EV_TXEMPTY = &H4
EV_BREAK: Ein Unterbrechungssignal wurde empfangen.
EV_CTS: Das Clear-To-Send Signal ändert den Status
EV_DSR: Das Data-Set-Ready Signal ändert den Status
EV_ERR: Line-Status zeigt Fehler.
EV_RING: Es hat geklingelt :) Ring-Indikator entdeckt.
EV_RLSD: Das Receive-Line-Signal-Dectect ändert den Status
EV_RXCHAR: (default) Ein Byte ist im RxBuffer eingetreten.
EV_RXFLAG: Ein spezielles Event-Zeichen (definierbar) wurde
empfangen.
EV_TXEMPTY: Das letzte Byte aus dem Transmit-Buffer wurde gesendet.
Rückgabewerte:
Ungleich 0 wenn die Funktion erfolgreich ausgeführt werden konnte.
Anwendungsbeispiel:
Wake on Com-Port ;)
Private Const EV_RING = &H100
hCom = ComOpen("1;19200;8;0;1")
hThread = ComStart(hCom, AddressOf ComCallBackFunc, 0)
ComSetEventMask hCom, EV_RING
Modul:
Function ComCallBackFunc(Byval hCom AS LONG, lpBuffer As STRING, Byval
nLen As Long) AS LONG
MsgBox "Es hat geklingelt ..."
ComStop hThread
ComClose hCom
End Function
Anmerkung: Statts ComSetEventMask hätte EV_RING auch als Flag der
ComStart-Funktion
mitgegeben werden können. ComSetEventMask wird nur benötigt,
wenn die Überwachung während
einer Überwachung auf ein anderes Event gesetzt würde.
Deklaration:
Private Declare Function ComGetXOutFlow Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
True: Das XOFF Signal des Transmitbuffers ist gesetzt
False: (default) Das XOFF Signal ist nicht gesetzt.
Deklaration:
Private Declare Function ComSetXOutFlow Lib "vbcom32" _
(BYVAL hCOM AS LONG, Byval nFlag AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nFlag: Entweder True oder False
Rückgabewerte:
Der bisherige Zustand:
True: Das XOFF Signal des Transmitbuffers ist gesetzt
False: (default) Das XOFF Signal ist nicht gesetzt.
Deklaration:
Private Declare Function ComGetTXQue Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
Anzahl noch vorhandener Bytes im Sendebuffer (Transmitbuffer).
Deklaration:
Private Declare Function ComGetTXBuffer Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
Gesamtgröße des Sendebuffers in Byte.
Deklaration:
Private Declare Function ComSetTXBuffer Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nBytes AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nBytes: Neue Größe des Sendebuffers
Rückgabewert:
Bisherige gesamtgröße des Sendebuffers in Byte.
Deklaration:
Private Declare Function ComGetStop Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
0 = (default) 1 Stop Bit
1 = 1.5 Stop Bits
2 = 2 Stop Bits
Deklaration:
Private Declare Function ComSetStop Lib "vbcom32" _
(BYVAL hCOM AS LONG, Byval nStopB AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nStopB: Anzahl der stop Bits
Rückgabewerte:
Bisherige Anzahl der stop Bits
0 = (default) 1 stop Bit
1 = 1.5 stop Bits
2 = 2 stop Bits
Gibt den Zustand des RTSD-Signals zurück.
Declaration:
Private Declare Function ComGetRTSDFlow Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
0 = Disable
1 = Enable
2 = Handshake
3 = Toggle
Gibt den Zustand des RTSD-Signals zurück.
Declaration:
Private Declare Function ComSetRTSDFlow Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nFlag AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nFlag: Neuer Zustand des RTSD-Signals
Rückgabewerte:
Bisheriger Zustand:
0 = Disable
1 = Enable
2 = Handshake
3 = Toggle
Gibt True zurück, wenn des Receife-Line-Signal-Detect empfangen wurde.
Deklaration:
Private Declare Function ComGetRLSD Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
0 oder ungleich 0, wenn True.
Gibt True zurück, wenn der Ring-Indikator empfangen wurde.
Deklaration:
Private Declare Function ComGetRing Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
0 oder ungleich 0, wenn True.
Gibt zurück, auf welche Parität der Com-Port gesetzt ist.
Deklaration:
Private Declare Function ComGetParityType Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewerte:
0 = (default) keine Parität
1 = ODD
2 = Even
3 = Mark
4 = Space
Setzt die Parität des COM-Ports
Deklaration:
Private Declare Function ComSetParityType Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nParity AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nParity: Einen Wert für die Parität
Rückgabewerte:
Die bisherige Einstellung der Parität:
0 = (default) keine Parität
1 = ODD
2 = Even
3 = Mark
4 = Space
Gibt das Zeichen zurück, bei dem die Paritätsprüfung
erfolgt. Hierzu muss ParityType auf 3 (Mark) gesetzt
sein.
Deklaration:
Private Declare Function ComGetParityChar Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
ASCII-Wert des Zeichens.
Setzt das Zeichen, bei dem die Paritätsprüfung erfolgt. Hierzu
muss ParityType auf 3 (Mark) gesetzt
sein.
Deklaration:
Private Declare Function ComSetParityChar Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nParityASCII AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nParityASCII: ASC-Wert des Zeichens zur Paritätsprüfung
Rückgabewert:
Bisheriger ASCII-Wert des Zeichens.
True oder False ob die Paritätsprüfung eingeschaltet ist oder ausgeschaltet.
Deklaration:
Private Declare Function ComGetParity Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = deaktiviert, ungleich 0 aktiviert.
Hiermit kann die Paritätsprüfung ein- und/oder ausgeschaltet werden
Deklaration:
Private Declare Function ComGetParity Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL onOff AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] onOFF: True oder False
Rückgabewert:
Bisheriger Zustand der Paritätsprüfung
0 = deaktiviert, ungleich 0 aktiviert.
True oder False ob die Nullchars ausgeblendet werden
Deklaration:
Private Declare Function ComGetNull Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = deaktiviert, ungleich 0 aktiviert.
True oder False ob die Nullchars ausgeblendet werden
Deklaration:
Private Declare Function ComSetNull Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nDiscard AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nDiscard: True oder False
Rückgabewert:
Bisheriger Zustand:
0 = deaktiviert, ungleich 0 aktiviert.
True oder False ob Linededect ein- oder ausgeschaltet wird
Deklaration:
Private Declare Function ComGetDTRLine Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = deaktiviert, ungleich 0 aktiviert.
True oder False ob Linededect ein- oder ausgeschaltet wird
Deklaration:
Private Declare Function ComSetDTRLine Lib "vbcom32" _
(BYVAL hCOM AS LONG, Byval nDTR AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nDTR: True oder False
Rückgabewert:
Bisheriger Zustand des Signals.
0 = deaktiviert, ungleich 0 aktiviert.
True oder False ob handshaking durchgeführt wird.
Deklaration:
Private Declare Function ComGetDTRFlow Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = deaktiviert, ungleich 0 aktiviert.
Setzt das handshake Controling
Deklaration:
Private Declare Function ComSetDTRLine Lib "vbcom32" _
(BYVAL hCOM AS LONG, Byval nhshake AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nhshake: True oder False
Rückgabewert:
Bisheriger Zustand des controlings.
0 = deaktiviert, ungleich 0 aktiviert.
s. PB Kommentar
Deklaration:
Private Declare Function ComGetDSRSens Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = low, ungleich 0 heigh.
S. PB Kommentar
Deklaration:
Private Declare Function ComSetDSRSens Lib "vbcom32" _
(BYVAL hCOM AS LONG, Byval nSens AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nSens: True oder False
Rückgabewert:
Bisheriger Zustand:.
0 = low, ungleich 0 high.
DSRSens:
TRUE/FALSE Enable DSR sensitivity. When DSRSENS is enabled, data
received by the DTE (computer) is placed into the receive buffer only if
DSR is set to logic high. If DSR is set low, received data is discarded.
Enabling DSRSENS allows DSR to enable or disable the DTE (the computer)
to receive data from the DTE (the modem).
DSRSENS is rarely used in practical communications situations.
(PowerBASIC.Inc)
CTS/DSR output flow Controls:
Jeweils True/False:
Private Declare Function ComGetDSRFlow Lib "vbcom32" _
(BYVAL hCom AS LONG) AS LONG
Private Declare Function ComSetDSRFlow Lib "vbcom32" _
(BYVAL hCom AS LONG, BYVAL nDSR AS LONG) AS LONG
Private Declare Function ComGetCTSFlow Lib "vbcom32" _
(BYVAL hCom AS LONG) AS LONG
Private Declare Function ComSetCTSFlow Lib "vbcom32" _
(BYVAL hCom AS LONG, BYVAL nCTS AS LONG) AS LONG
PB Kommentar: (CTS oder auch DSR)
TRUE/FALSE Enable CTS output flow control (Input signal). When
CTSFLOW is enabled, it causes the DTE (computer) to stop sending data whenever
the CTS signal is set to logic low by the DCE (modem). Transmission
continues when the DCE (modem) sets the CTS signal back to logic high.
The CTS signal is usually used in response to an RTS signal.
True oder False, ob eine COM-Verbindung zustande gekommen ist "carrier detect".
Declaration:
Private Declare Function ComGetCD Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = False, ungleich 0 = True
Gibt die Anzahl der Bits zurück. Die Zahl kann zwischen 4 und 8 sein.
Declaration:
Private Declare Function ComGetByte Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
Eine Zahl zwischen 4 und 8 oder 0 im Fehlerfall.
Gibt die Anzahl der Bits zurück. Die Zahl kann zwischen 4 und 8 sein.
Declaration:
Private Declare Function ComSetByte Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nBits AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nBits: Die Anzahl der zu übertragenen Bits. Zwischen 4 und
8
Rückgabewert:
Bisherige Einstellung des Byte - Parameters.
Eine Zahl zwischen 4 und 8 oder 0 im Fehlerfall.
True oder false, ob ein Break Signal gesetzt ist
Declaration:
Private Declare Function ComGetBreak Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
0 = False, True = ungleich 0
Setzt einen Break.
Declaration:
Private Declare Function ComSetBreak Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nBreak AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nBreak: True oder False
Rückgabewert:
Bisherige Einstellung des Byte - Parameters.
Wert ob ein Break-Signal gesetzt war: Ungleich 0 True, sonst 0.
Gibt die momentan eingestellte Baudrate des Com-Ports zurück
Declaration:
Private Declare Function ComGetBaud Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
Die momentane Baudrate oder 0 im Fehlerfall.
Setzt die Baudrate.
Declaration:
Private Declare Function ComSetBaud Lib "vbcom32" _
(BYVAL hCOM AS LONG, BYVAL nBaud AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
[in] nBaud: Dies können die folgenden Werte sein:
110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000
Rückgabewert:
Die bisher eingestellte Baudrate oder 0 im Fehlerfall.
Gibt den Handle des geöffneten COM-Ports zurück, der für
die WinAPI-Funktionen
benötigt wird. Somit kann auch über die WinAPI-Funktionen
auf einen COM-Port
zugegriffen werden.
Declaration:
Private Declare Function ComGetWinHandle Lib "vbcom32" _
(BYVAL hCOM AS LONG) AS LONG
Parameter:
[in] hCom: Long. Handle des geöffneten COM-Ports
Rückgabewert:
Ein für Windows gültiger Handle oder 0 im Fehlerfall.
Hält die asynchrone Überwachung eines COM-Ports an und schließt bzw. terminiert den Thread.
Declaration:
Private Declare Sub ComStop Lib "vbcom32" _
(BYVAL hThread AS LONG)
Parameter:
[in] hThread: Die ThreadID, die von der ComStart-Funktion zurückgegeben wird.
Die Königsfunktion der DLL!
Startet die asynchrone Überwachung eines Com-Ports. Die Kontrolle
wird sofort dem aufrufenden
Programm zurückgegeben. Die Funktion startet einen background
Thread der "still running" läuft. D.h.
der Thread bekommt erst dann Rechenzeit, wenn tatsächlich ein
Ereignis am überwachten Com-Port
eintritt! Während der Zeit liegt die CPU-Last bei 0%. Tritt ein
Event ein, so wird, wenn auf dieses
genau definierte Event gewartet wurde, eine Callback-Routine, die in
einem Modul definiert sein muss,
aufgerufen.
Deklaration:
Private Declare Function ComStart Lib "vbcom32" _
(Byval hCom AS LONG, Byval nAddr AS LONG, Byval nEvent AS LONG)
AS LONG
Parameter:
[in] hCom: Handle des Ports der überwacht
werden soll.
[in] nAddr: Die Addresse der CallbackRoutine,
kann mit AddressOf-Operator ermittelt werden
[in] nEvent: (default 0) Konstante eines Events.
Siehe: ComSetEventMask. Wird 0 angegeben,
wird standardmäßig RxCHAR eingestellt.
Rückgabewert:
0 im Fehlerfall oder die ThreadID. Diese müssen Sie gut aufbewahren,
da sie für ComClose benötigt wird.
Die ThreadID ist ein Windows-Handle, der auf den "still running" Thread
zeigt.
Callbacks:
Die Funktion ruft eine CallBack-Routine auf, die Sie in einem Modul
definieren müssen - ansonsten entsteht
ein nichtauffangbarer Laufzeitfehler (Dr. Watson). Diese Callback-Routine
hat folgenden grundsätzlichen Aufbau:
Function ComCallBackFunc(Byval hCom AS LONG, lpBuffer AS STRING, Byval
nLen AS LONG) AS LONG
... Anweisungen ...
End Function
hCOM: Hier wird zurückgegeben, von welchem Com-Handle das Event
ausgelöst wurde
lpBuffer: Die evtl. empfangenen Bytes.
nLen: Die Anzahl der Zeichen, die von diesem Event betroffen waren
W a r n i n g :
Die DLL wird den Thread terminieren, wenn die DLL aus dem Speicher genommen
wird - aber: Es gibt unvorhersehbare
Fehlerfälle. Solange der Thread nicht terminiert wurde, hält
er am aufrufenden Prozess fest - dies kann dazu führen,
dass VB "einfriert" und sich der Prozess - zwar schon "abgeschossen"
- aber nicht beenden kann, weil da noch ein Thread ist. "still running"
bedeutet: Der Thread reagiert auf KEINE AUFFORDERUNG von VB oder Windows!
Der Thread "wacht" nur dann auf, wenn am Com-Port ein Event auftritt.
Speichern Sie daher Ihre Arbeit immer vorher,
bevor Sie ComStart() verwenden!!! ComClose wird ebenfalls nach evtl.
"offenen" Threads suchen und versuchen sie zu terminieren, so dass Sie
ComStop nicht immer verwenden müssen - sondern nur dann, wenn Sie
die Überwachung beenden und aber die Kommunikation - senden - etc.
fortsetzen wollen.ComStart versetzt Sie in die Lage ein multithreading
Programm zu schreiben - demzufolge haben Sie auch eine etwas höhere
Sorgfalt was die Terminierung dieser Kernel-Objekte angeht. Seitens der
DLL wurde alles erdenkliche getan.
Rufen Sie ComStart() auf, muss die Callbackroutine bereits mit allen
Parametern erstellt sein.
Überträgt Zeichen zum Transmitbuffer des Com-Ports und sendet sie.
Deklaration:
Private Declare Function ComSend Lib "vbcom32" _
(lpSendString AS STRING, Byval hCOM AS LONG) AS Long
Parameter:
[in] lpSendString: String (Bytes) die Sie senden wollen
[in] hCom: Handle auf einen geöffneten Com-Port.
Rückgabewert:
Anzahl der Zeichen, die die Funktion zu senden versuchte.
Schließt einen COM-Port, den Sie mit ComOpen geöffnet haben.
ComClose prüft auch, ob auf dem
betreffenden Port ein "still running" Thead gesetzt ist und terminiert
diesen ggf. Sie sollten stets alle
Verbindungen zu COM-Ports mit ComClose abschließen. Die DLL wird
zwar versuchen, wenn die DLL aus dem Speicher genommen wird, diese zu schließen,
jedoch kann nicht gewährt werden, dass dies immer glückt, insbesondere
dann
nicht, wenn mehrere Anwendung die DLL instanziiert haben.
Deklaration:
Private Declare Function ComClose Lib "vbcom32" _
(BYVAL hCom AS LONG) AS LONG
Parameter:
[in] hCom: Handle auf einen geöffneten Com-Port.
Rückgabewerte:
Keine. Ggf. müssen Sie den Handle mit einer weiteren Funktion der DLL (siehe oben) auf Gültigkeit prüfen.
ComOpen öffnet einen Kommunikationskanal mit den auf dem PC vorhandenen Com-Ports. Diese Funktion gibt den Handle auf den Com-Port zurück, den Sie für alle DLL-Funktionen benötigen!!!
Deklaration:
Private Declare Function ComOpen Lib "vbcom32" _
(lpConnectString AS STRING) AS LONG
Parameter:
[in] STRING: ConnectString. Aufbau siehe oben ("PortNr;Baudrate;Bits;Parität;StopBit")
Rückgabewerte:
Ist der Wert > 0 so haben Sie einen gültigen Porthandle. Ansonsten können folgende Werte auftreten:
-1: Kein Connectstring gefunden (DLL geht von Schlamperei aus)
-2: Zuviele oder zuwenig Delimeter (";") im Connectstring
-3: Ein Parameter wurde nicht gefunden.
-4: Falsche Portnummer
-5: Falsche Baudrate angegeben (siehe oben: ComSetBaud)
-6: Anzahl der Bits nicht zwischen 4 und 8
-7: Port konnte aus unbekannten Gründen nicht geöffnet werden.
kleiner als 7: Entspricht einer Fehlernummer von VB für Dateien.
A C H T U N G:
ComOpen akzeptiert im Connectstring, außer den Delimetern, nur
ZAHLEN!!! Verwechseln Sie also ein "O" nicht mit einer "0".
ComOpen erstellt einen standard Kommunikationskanal. Möchten Sie
weitere Features, so müssen Sie anschließend die dafür
erforderlichen Parameter über die verschiedenen DLL ComSet-Funktionen
definieren.
Diese Funktion öffnet einen Kommunikationskanal, sendet einen String
und schließt die Sache augenblicklich wieder.
Sie vereint die Funktionen: ComOpen, ComSend und ComClose in einem
Funktionsaufruf.
Deklaration:
Private Declare Function ComFullCommand Lib "vbcom32" _
(lpConnectString AS STRING, lpSendString AS STRING) AS LONG
Parameter:
[in] lpConnectString -> Siehe ComOpen
[in] lpSendString -> Siehe ComSend.
Rückgabewerte:
keine.