Promotic

GetHexaString - method of the PmBuffer object

Description:
Reading the data block in the form of HexaString.
Syntax:
String GetHexaString([Long nOffset], [Long nSize], [Long nAttr])
Parameters:
nOffset[optional] (Long) Specifies the position of read value in the data block.
The read value must be inside the data block. The item is read either whole or not read at all.
Default: 0.
>= 0 - Index (in bytes, zero-based index) in the data block.
-4 - The internal automatic position is used (see the AutoOffset property). It points behind the last read or written value.
This operation shifts the internal automatic position behind the read/written value.
If the items are read/written one by one then it is not necessary to define the position manually, but it is better to use this automated positioning.
nSize[optional] (Long) The size of read data block.
The -1 value (default) means that the data block is read from the defined starting position to the end.
nAttr[optional] (Long) Specifies how the HexaString is generated.
0 (default) - The hexa characters will be lowercase.
1 - The hexa characters will be uppercase.
Note:
This method is also functional in Web panels.
 
HexaString (a string in hexadecimal format) can be used in two ways:
1) Display numbers in hexadecimal, where the higher orders are on the left. It corresponds to the storage in memory of Big-endian. This is the conversion of a number value to a string (and vice versa) using a formatting string. To use HexaString in this way, it is recommended to use the PmFormat object.
2) Encoding the contents of a memory section of a certain size (e.g. 1B, 2B, 4B, ...) in hexadecimal. Then it depends on how the number is stored in memory. On Intel and AMD processors (x86 or x64 architecture), the so-called Little-endian is used, where the lower orders are on the left. To use HexaString in this way, it is recommended to use the PmBuffer object, which can handle both Little-endian and Big-endian.
See also:
Example:
Creating a data block by continuous writing of 4, 2 and 1 byte integer value (7 bytes total) and then reading the whole content of the data block in the form of HexaString.
For inverse example see the SetHexaString method.
JavaScriptSelect and copy to clipboard

var b = Pm.CreatePmBuffer();
b.SetInt32(-2, 0x10203040);
b.SetInt16(-2, 0x5060);
b.SetUint8(-2, 0x70);
var s = b.GetHexaString();   // The result will be a HexaString "40302010605070"

History:
Pm9.00.05: New nAttr parameter that defines the way the HexaString is generated.
Pm9.00.04: Created
PROMOTIC 9.0.22 SCADA system documentation - MICROSYS, spol. s r.o.

Send page remarkContact responsible person
© MICROSYS, spol. s r. o.