Beispiel für COM-Port Verbindung
Die COM-Port Verbindung wird verwendet, um serielle Geräte direkt mit Business Central zu verbinden – zum Beispiel Waagen, Scanner oder Maschinensteuerungen.
Dienstverbindung einrichten in Business Central
In der Dienstverbindung für Ihren Service, müssen Sie eine COM-Port Verbindung hinzufügen. In dieser können Sie über das Look Up beim Portname alle aktiven COM Ports vom lokalen Gerät auslesen.
Beispielkonfiguration
| Feld | Beschreibung |
|---|---|
| Portname | COM-Port am Gerät, z. B. COM3 |
| Baudrate | Übertragungsrate, z. B. 115200 |
| Parität | Fehlerprüfung: None, Odd, Even,... |
| Stopp-Bits | One, Two,... |
| Datenbits | Üblicherweise 8 |
| Handshake | Steuerung der Flusskontrolle: None, XOnXOff, ... |
| RTS aktivieren | Aktiviert das RTS-Signal (Request to Send) |
| DTR aktivieren | Aktiviert das DTR-Signal (Data Terminal Ready) |
| Null verwerfen | Ignoriert Null-Bytes im Antwortstrom |
| Timeout (MS) | Zeitlimit in Millisekunden, z. B. 2000 |
Kommandoeinstellungen
| Feld | Beschreibung |
|---|---|
| Befehl | Der zu sendende String, z. B. SI |
| Zeilenumbruch senden | Zeilenumbruch an Befehl anhängen |
| Auf Text warten | Endzeichen der erwarteten Antwort, z. B. \n\r |
| Auf Zeilenumbruch warten | Antwort wird bis zum Zeilenumbruch gelesen |
| Bestätigungsmeldung | Erwartete Antwort (optional) |
| Zeilenumbruch senden | Zeilenumbruch an Befehl anhängen |
Note
Die Verbindung kann über Try Connection getestet werden. Über Send Command wird ein definierter Befehl ausgeführt und die Antwort angezeigt.
Beispielcode zum Senden eines Befehls
Die folgende AL-Prozedur ruft den konfigurierten COM-Port auf und gibt die Antwort als Meldung zurück:
local procedure SendCommand()
var
DirectConnComPortMgmt: Codeunit "CCS COLI Direct Conn. ComPort";
DirectConnMgmt: Codeunit "CCS COLI Direct Conn. Mgmt.";
ResponseText: Text;
JsonObj: JsonObject;
ResponseLbl: Label 'Following response came back from the server: \%1', Comment = '%1 = formatted json response';
ResponseEmptyLbl: Label 'Response had no content.';
begin
JsonObj := DirectConnComPortMgmt.SendCommand(Rec);
if not GuiAllowed then
exit;
ResponseText := DirectConnMgmt.FormatResponse(JsonObj);
if ResponseText = '' then
Message(ResponseEmptyLbl)
else
Message(ResponseLbl, ResponseText);
end;