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
/
Inputs/Outputs
Name | Type | Description |
---|---|---|
source | ARRAY[*] OF BYTE | Source variable |
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. |
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. |
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);