OctetString_To_AnyBuffer

Converts and copies the data from an octet string or a one-dimensional byte array to any variable.

Namespace: Tc3_Collections
Library: 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: Inputs/Outputs

Name

Type

Description

source

ARRAY[*] OF BYTE

Source variable

OctetString_To_AnyBuffer 3: Inputs

Name

Type

Description

pTarget

PVOID

Address pointer of the target variable.

cbTarget

UDINT

Byte size of the target variable.

bSwapBytes

BOOL

With TRUE the data bytes are exchanged.

OctetString_To_AnyBuffer 4: Outputs

Name

Type

Description

bUnderflow

BOOL

If TRUE then the source variable is smaller than the target variable.

bOverflow

BOOL

If TRUE then the source variable is greater than the target variable.

OctetString_To_AnyBuffer 5: Return value

Name

Type

Description

OctetString_To_AnyBuffer

UDINT

Number of successfully copied data bytes.

Example

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);