Zum Hauptinhalt springen

MsxWrite

Diese Anweisung schreibt die Nachrichtenteile in den Nachrichtenkanal. Als Objekt wird der Deskriptor des Nachrichtenkanals, der von ``MsxOpen() zurückgegeben wurde, übergeben. Folgende Nachrichtenteile können geschrieben werden:

  • _MsxMessage

    Damit wird eine neue Nachricht geöffnet. In (var2) muss ein Wert vom Typ int ungleich 0 übergeben werden, der als Nachrichten-ID übermittelt wird. Anhand der ID kann ein benutzerdefinierter Nachrichtentyp definiert werden. Eine bereits geöffnete Nachricht wird durch diese Operation automatisch geschlossen.

  • _MsxItem

    Damit wird ein neues Element geöffnet. In (var2) muss ein Wert vom Typ int ungleich 0 angegeben werden, der als Item-Id übermittelt wird. Anhand der ID kann ein benutzerdefinierter Elementtyp definiert werden. Ein bereits geöffnetes Element wird durch diese Operation automatisch geschlossen. _MsxItem kann nur verwendet werden, wenn zuvor eine Nachricht geöffnet wurde.

  • _MsxData

    Damit werden Daten in ein Element geschrieben. In (var2) werden die zu schreibenden Daten übergeben. In (int3) kann die maximale Datenlänge angegeben werden, die die Anzahl der zu schreibenden Bytes bei Werten vom Typ alpha beschränkt. Alle Datenfelder werden seriell geschrieben. _MsxData kann nur bei einem offenen Element verwendet werden.

  • _MsxEnd

    Damit wird die offene Nachricht geschlossen.

Der Rückgabewert ist _rOk, wenn die Operation erfolgreich war.

Beispiel:

tSck # SckConnect('10.1.1.16', 12500);
tMsx # MsxOpen(_MsxSocket | _MsxWrite, tSck);
...
try
{
tMsx->MsxWrite(_MsxMessage, 1);
tMsx->MsxWrite(_MsxItem, 1);
tMsx->MsxWrite(_MsxData, tSender);
tMsx->MsxWrite(_MsxItem, 2);
tMsx->MsxWrite(_MsxData, tAction);
tMsx->MsxWrite(_MsxData, tRecordID);
tMsx->MsxWrite(_MsxEnd, 0);
}
...
tMsx->MsxClose();
tSck->SckClose();

Mögliche Laufzeitfehler:

  • _ErrHdlInvalid: Der übergebene Deskriptor in (obj) ist ungültig.
  • _ErrFldType: Der Wert in (var2) hat nicht den passenden Datentyp.
  • _ErrValueInvalid: In (int1) oder (var2) wurde ein falscher Wert übergeben.