ComAvailablePorts
string ComAvailablePorts ( value ComInfo = COM_AllInfos );
Rückgabewert
Rückgabewert |
Beschreibung |
string |
Informationsblock der Details zu den verfügbaren COM-Schnittstellen enthält. |
Parameter
ComInfo
Gibt an welche Details zu den Schnittstellen im Ergebnisstring enthalten sein sollen. Die Ergebnisse werden in der hier gelisteten Reihenfolge im Ergebnisstring abgebildet und nicht in der Reihenfolge wie die Flags Oder-verknüpft sind.
Flag |
Beschreibung |
COM_PortName |
Die
Bezeichnung der Schnittstelle (z.B. COM14). |
COM_Description |
Die Beschreibung die zur Schnittstelle verfügbar ist. Dies kann der Name des Endgerätes sein, wenn die Schnittstelle der virtuelle COM-Port eines USB-Endgerätes ist. |
COM_Manufacturer |
Der Name des Schnittstellentreiber-Herstellers. |
COM_VendorID |
Die
hexadezimale Hersteller-Identnummer des Endgerätes. Diese ist
nur dann verfügbar, wenn die Schnittstelle der virtuelle COM-Port
eines USB-Endgerätes ist. |
COM_ProductID |
Die
hexadezimale Produkt-Identnummer des Endgerätes. Diese ist nur
dann verfügbar, wenn die Schnittstelle der virtuelle COM-Port
eines USB-Endgerätes ist. |
COM_SerialNo |
Die
Seriennummer des Endgerätes. Diese ist nur dann verfügbar, wenn
die Schnittstelle der virtuelle COM-Port eines USB-Endgerätes
ist. |
COM_AllInfos |
Es werden alle Details zur Schnittstelle abgefragt. Dies entspricht: COM_PortName|COM_Description|COM_Manufacturer|COM_VendorID|COM_ProductID|COM_SerialNo |
Bemerkungen
Liefert einen String in dem alle verfügbaren COM-Ports
eingetragen sind. Die Informationsblöcke zu jeder verfügbaren COM-Schnittstelle
sind im Ergebnisstring mit einem Linefeed '\n' getrennt aneinander gereiht.
Ein Informationsblock enthält die Schnittstellendetails die mit ComInfo
abgerufen werden und sind mit einem Komma ',' getrennt. Der Name der COM-Schnittstelle
steht immer an erster Position im Informationsblock und kann nicht unterdrückt
werden.
Beispiel
Nachfolgendes Beispiel zeigt eine Funktion die nach einem angeschlossenen Barcode-Scanner sucht und sich mit diesem verbindet. Die Erkennung erfolgt über die VendorID und ProductID des USB-Scanners. Ändert sich der COM-Port an dem der Scanner angeschlossen ist (z.B. durch an- und abstecken), dann wird der Barcode-Scanner erneut gesucht.
//BarcodeScannerLookup () // ////////////////////////////////////////////////////////////////////// string vendorID, productID, comInfo, parity, stopbits, foundComPort; value baud, databits; ReadProfileValue("Handheld-BarcodeScanner", "VendorID", vendorID, "0x05F9", "system.ini"); ReadProfileValue("Handheld-BarcodeScanner", "ProductID", productID, "0x4204", "system.ini"); ReadProfileValue("Handheld-BarcodeScanner", "Baudrate default-19200", baud, "19200", "system.ini"); ReadProfileValue("Handheld-BarcodeScanner", "Parity(n-no,e-even,o-odd,m-mark) default-e", parity, "e", "system.ini"); ReadProfileValue("Handheld-BarcodeScanner", "Databits(4-8) default-8", databits, "8", "system.ini"); ReadProfileValue("Handheld-BarcodeScanner", "Stopbits(1,1.5,2) default-1", stopbits, "1", "system.ini"); availablePorts = ComAvailablePorts(COM_PortName | COM_VendorID | COM_ProductID); value foundPorts = LineGetCount(availablePorts); for (value i = 0; i < foundPorts; i ++) comInfo = StringExtract(availablePorts, i); if (StringExtract(comInfo, 1, ',') == vendorID && StringExtract(comInfo, 2, ',') == productID) foundComPort = StringExtract(comInfo, 0, ','); break; end end if (StringIsEmpty(foundComPort)) ComClose(hCom); hCom = 0; strComPort = ""; comPort = ""; strLastError = "Barcode-Scanner nicht gefunden."; else if (comPort != foundComPort || hCom == null) ComClose(hCom); strComPort = Printf("%s:%d,%s,%d,%s", foundComPort, baud, parity, databits, stopbits); if (ComOpen(hCom, strComPort) == false) hCom = 0; strComPort = ""; comPort = ""; strLastError = Printf("Kann %s für Barcode-Scanner nicht öffnen.", foundComPort); else comPort = foundComPort; strLastError = Printf("Mit Barcode-Scanner über %s verbunden.", comPort); end end end
Siehe auch ControlRestore, ControlSetRect, ControlGetRect