send_dataT_send_dataSendDataSendData (Operator)

Name

send_dataT_send_dataSendDataSendData — Senden von Daten über eine generische Socket-Verbindung auch an externe Geräte oder Anwendungen.

Signatur

send_data( : : Socket, Format, Data, To : )

Herror T_send_data(const Htuple Socket, const Htuple Format, const Htuple Data, const Htuple To)

void SendData(const HTuple& Socket, const HTuple& Format, const HTuple& Data, const HTuple& To)

void HSocket::SendData(const HString& Format, const HTuple& Data, const HTuple& To) const

void HSocket::SendData(const HString& Format, const HString& Data, const HString& To) const

void HSocket::SendData(const char* Format, const char* Data, const char* To) const

void HSocket::SendData(const wchar_t* Format, const wchar_t* Data, const wchar_t* To) const   (Nur Windows)

static void HOperatorSet.SendData(HTuple socket, HTuple format, HTuple data, HTuple to)

void HSocket.SendData(string format, HTuple data, HTuple to)

void HSocket.SendData(string format, string data, string to)

Beschreibung

send_datasend_dataSendDataSendDataSendData verschickt Daten über die durch SocketSocketSocketSocketsocket bestimmte generische Socket-Verbindung. Die Daten werden anhand des Parameters FormatFormatFormatFormatformat aus einem Wert oder einem Tupel von Werten in ein binäres Netzwerkpaket umgewandelt und sind gut zur Kommunikation mit externen Geräten oder Anwendungen geeignet. Dieser Operator unterstützt das Standard 'HALCON'"HALCON""HALCON""HALCON""HALCON" Protokoll nicht, sondern ist zum Transfer beliebiger Daten gedacht. Mit dem Operator receive_datareceive_dataReceiveDataReceiveDataReceiveData können entsprechende Daten mit einem HALCON Prozess empfangen werden.

Der Parameter FormatFormatFormatFormatformat gibt an, wie Tupel in ein binäres Paket umgewandelt werden. Das Format besteht aus einem oder mehreren Bezeichnern, wobei jedem ein optionaler Modifikator und eine Wiederholungszahl folgen kann. Die meisten Bezeichner erfordern einen einzelnen Wert im Parameter DataDataDataDatadata der entsprechend konvertiert wird.

Die Zeichenkette in FormatFormatFormatFormatformat kann die folgenden Zeichen enthalten:

Ganzzahlwerte:

'c':

ein Byte = 8 bit,

'C':

wie 'c', aber vorzeichenlos

's':

zwei Bytes = 16 bit, vorzeichenbehaftet

'S':

wie 's', aber vorzeichenlos

'i':

vier Bytes = 32 bit, vorzeichenbehaftet

'I':

wie 'i', aber vorzeichenlos

'q':

acht Bytes = 64 bit, vorzeichenbehaftet (nur für 64bit HALCON verfügbar)

'Q':

wie 'q', aber vorzeichenlos

Fließkommawerte:

'f':

float, vier Bytes = 32 bit

'd':

double, acht Bytes = 64 bit

String values:

'A':

Zeichenkette (Standardlänge 1024 Bytes), aufgefüllt mit Leerzeichen

'Z':

Zeichenkette (Standardlänge 1024 Bytes), aufgefüllt mit NULL-Bytes, wird beim Senden auf jeden Fall mit einem NULL-Byte abgeschlossen

'z':

Zeichenkette variabler Länge, angegeben wird die maximale Länge (Standard 1024 Bytes)

Spezielle Zeichen, die keinen zugehörigen Wert im DataDataDataDatadata Parameter erfordern:

'-':

beim Schreiben wird ein einzelnes Byte als binäre NULL übertragen, beim Lesen ein solches NULL-Byte übersprungen

'_':

beim Schreiben wird ein einzelnes Byte als Leerzeichen (binär 0x20) übertragen, beim Lesen wird ein Leerzeichen übersprungen

' ':

dieses Zeichen wird in der FormatFormatFormatFormatformat Zeichenkette ignoriert und kann somit zur Erhöhung der Lesbarkeit der FormatFormatFormatFormatformat Zeichenkette benutzt werden

Mögliche Modifikationszeichen, die nach einem der oben stehenden Zeichen benutzt werden können:

'n':

konvertiere den Ganzzahl- oder Fließkommawert beim Schreiben in die und beim Lesen von der Netzwerk Byte Reihenfolge (big endian) in die lokal benutzte Byte Reihenfolge

'N':

konvertiere den Ganzzahl- oder Fließkommawert beim Schreiben in die und beim Lesen von der Intel Byte Reihenfolge (little endian) in die lokal benutzte Byte Reihenfolge

'0-n':

Angabe der Wiederholung des vorher stehenden Formatzeichens. Dabei steht z.B. 'c5' für 'ccccc' (benötigt also ein Tupel aus 5 Werten), aber 'A10' bezeichnet eine Zeichenkette mit 10 Zeichen und benötigt nur einen Wert.

Die Modifikationszeichen 'n' und 'N' können auch als erstes Zeichen im FormatFormatFormatFormatformat Zeichenkette angegeben werden und setzen den Standardwert für die Byte Reihenfolge. Wird nichts anderes angeben, so wird 'n', also die Netzwerk Byte Reihenfolge (big endian) benutzt.

Bei UDP Verbindungen müssen die binären Daten in einem Netzwerkpaket übertragen werden. Daher dürfen diese nicht mehr Platz benötigen, als in einem Netzwerkpaket verfügbar ist. Üblicherweise bedeutet dies, dass die Größe kleiner als die MTU (Maximum Transfer Unit) der Netzwerkschnittstelle sein muss, welche normalerweise etwa 1500 Byte beträgt. Garantiert sind aber nur 576 Byte (1280 Byte für IPv6).

Der Parameter ToToToToto sollte für Socketverbindungen, welche bereits gebunden sind (alle TCP Verbindungen und gebundene UDP Verbindungen), leer gelassen werden. Er ist aber für eine ungebundene UDP Verbindung unbedingt nötig, um die IP Adresse oder den Netzwerknamen und den Netzwerkport der Gegenstelle anzugeben.

Ausführungsinformationen

Parameter

SocketSocketSocketSocketsocket (input_control)  socket HSocket, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Nummer des Sockets.

FormatFormatFormatFormatformat (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Vorschrift zur Konvertierung der Daten.

Defaultwert: 'z' "z" "z" "z" "z"

DataDataDataDatadata (input_control)  string(-array) HTupleHTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)

Wert (oder Tupel von Werten) mit den zu sendenden Daten.

ToToToToto (input_control)  string(-array) HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

IP-Adresse oder Netzwerkname und Netzwerkport der Gegenstelle.

Defaultwert: []

Werteliste: [], ['localhost',3000]["localhost",3000]["localhost",3000]["localhost",3000]["localhost",3000]

Vorgänger

open_socket_connectopen_socket_connectOpenSocketConnectOpenSocketConnectOpenSocketConnect, socket_accept_connectsocket_accept_connectSocketAcceptConnectSocketAcceptConnectSocketAcceptConnect, get_socket_paramget_socket_paramGetSocketParamGetSocketParamGetSocketParam, set_socket_paramset_socket_paramSetSocketParamSetSocketParamSetSocketParam

Nachfolger

close_socketclose_socketCloseSocketCloseSocketCloseSocket

Siehe auch

receive_datareceive_dataReceiveDataReceiveDataReceiveData

Modul

Foundation