SetPtr - method of the PmBuffer object

Writing pointer (address) to another data block in the form of the PmBuffer object.
Empty SetPtr(Long nOffset, Object oBuff, [Long nEncoding])
nOffset(Long) Specifies the position of written value in the data block.
The whole written item muyst be inside the data block, or the whole item is added to the end of the data block. The item is written either whole or not read at all.
>= 0 - Index (in bytes, zero-based index) in the data block.
-2 - The whole item is added to the end of the data block. The size of the data block is increased by the written item.
-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.
oBuff(Object) Data block in the form of the PmBuffer object, pointer to its inner data will be written.
nEncoding[optional] (Long) Byte saving order in the memory of a single value (Little-endian/Big-endian) in the data block. The Little-endian and Big-endian use different (reversed) order of the value bytes storage in memory. This is not depending on the operating systerm but on the computer platform.
In the PROMOTIC system (on x86 computer CPUs) the Little-endian is used.
Big-endian is commonly used on ARM processors (usually used for communication with PLC devices). Big-endian may be required for data exchange with another system (e.g. PLC device).
0 (default) - Little-endian
1 - Big-endian
This method is not functional in Web panels.
Caution! The pointer size is 4 bytes in 32-bit and 8 bytes in 64-bit. The pointer to internal data of another data block is used mainly when calling the PmaDll.CallDll method. In C++ language the data pointer (data address in the memory) is used quite often. In C++ syntax the pointer is marked with * or & for parameter data type or item in structure. Each pointer in the data block is executed as pointer to another data block.
See also:
- PmBuffer.GetPtr (method)
JavaScriptSelect and copy to clipboard

oBuf.SetPtr(nOffset, oBuf2, 0);

Pm9.00.07: Created
PROMOTIC 9.0.27 SCADA system documentation MICROSYS, spol. s r.o.

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