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).
Dieses Flag wird grundsätzlich als gesetzt angenommen, auch wenn es nicht angegeben ist.

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.
Ist für das Endgerät keine Hersteller-Identnummer verfügbar wird, dann wird als Eintrag '0x0000' zurückgegeben.

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.
Ist für das Endgerät keine Produkt-Identnummer verfügbar wird, dann wird als Eintrag '0x0000' zurückgegeben.

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.
Ist für das Endgerät keine Seriennummer verfügbar wird, dann wird als Eintrag '-' zurückgegeben.

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

Funktionen für Bauelemente

Siehe auch ControlRestore, ControlSetRect, ControlGetRect