OctetString_To_AnyBuffer

Konvertiert und kopiert die Daten von einem Oktett-String oder einem eindimensionalen Byte-Array in eine beliebige Variable.

Namensraum: Tc3_Collections
Bibliothek: Tc3_Collections (Tc3_Collections.compiled-library)

FUNCTION OctetString_To_AnyBuffer : UDINT
VAR_IN_OUT
    source     : ARRAY[*] OF BYTE;
END_VAR
VAR_INPUT
    pTarget    : PVOID;
    cbTarget   :UDINT;
    bSwapBytes : BOOL;
END_VAR
VAR_OUTPUT
    bUnderflow : BOOL;
    bOverflow  : BOOL;
END_VAR

OctetString_To_AnyBuffer 1:/OctetString_To_AnyBuffer 2: Ein-/Ausgänge

Name

Typ

Beschreibung

source

ARRAY[*] OF BYTE

Quellvariable

OctetString_To_AnyBuffer 3: Eingänge

Name

Typ

Beschreibung

pTarget

PVOID

Adresszeiger der Zielvariablen.

cbTarget

UDINT

Bytegröße der Zielvariablen.

bSwapBytes

BOOL

Bei TRUE werden die Datenbytes getauscht.

OctetString_To_AnyBuffer 4: Ausgänge

Name

Typ

Beschreibung

bUnderflow

BOOL

Wenn TRUE dann ist die Quellvariable kleiner als die Zielvariable.

bOverflow

BOOL

Wenn TRUE dann ist die Quellvariable größer als die Zielvariable.

OctetString_To_AnyBuffer 5: Rückgabewert

Name

Typ

Beschreibung

OctetString_To_AnyBuffer

UDINT

Anzahl der erfolgreich kopierten Datenbytes.

Beispiel

METHOD FINAL Sample_OctetString_To_AnyBuffer : BOOL
VAR
    sValue     : STRING;
    ui64       : LWORD;
    ui32       : UDINT;
    o6         : T_OCTET6:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35];
    o8         : T_OCTET8:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35, 16#36, 16#37];
    o64        : T_OCTET64:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35, 16#36, 16#37, 16#38, 16#39];
    size       : UDINT;
    bOverflow  : BOOL;
    bUnderflow : BOOL;
END_VAR
size:=OctetString_To_AnyBuffer(source:=o6, pTarget:=ADR(sValue), cbTarget:=SIZEOF(sValue), bSwapBytes:=FALSE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=6 *)
size:=OctetString_To_AnyBuffer(source:=o8, pTarget:=ADR(ui64), cbTarget:=SIZEOF(ui64), bSwapBytes:=TRUE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=8 *)
size:=OctetString_To_AnyBuffer(source:=o64, pTarget:=ADR(ui32), cbTarget:=SIZEOF(ui32), bSwapBytes:=TRUE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=4 *)
Sample_OctetString_To_AnyBuffer:=(sValue = '012345') AND (ui64 = 16#3031323334353637) AND (ui32 = 16#30313233);