Promotic

SetPtr - metoda obiektu PmBuffer

Opis:
Zapis markera (pointera, adresu) na inny blok danych w formie obiektu PmBuffer.
Składnia:
Empty SetPtr(Long nOffset, Object oBuff, [Long nEncoding])
Parametry:
nOffset(Long) Określa pozycję zapisywanej wartości w bloku danych.
Cała zapisywana pozycja musi znajdować się w bloku danych lub cała pozycja zostanie dodana na koniec bloku danych. Pozycja zostanie zapisana w całości lub wogóle.
>= 0 - Indeks (w bajtach, indeksowane od 0) w bloku danych.
-2 - Cała pozycja zostanie dodana na koniec bloku danych. Wielkość bloku danych zostanie zwiększona o zapisywaną pozycję.
-4 - Zostanie zastosowana wewnętrzna automatyczna pozycja (patrz właściwość AutoOffset), która wskazuje ostatnią odczytywaną lub zapisywaną wartość.
Operacja ta przesunie wewnętrzną automatyczną pozycję za odczytywaną/zapisywaną wartość.
Jeżeli pozycje są odczytywane/zapisywane po kolei za sobą, wtedy nie trzeba ręcznie określać pozycję, ale jest lepiej zastosować automatyczne pozycjonowanie.
oBuff(Object) Blok danych w formie obiektu PmBuffer, marker danych wewnętrznych zostanie zapisany.
nEncoding[opcjonalne] (Long) Kolejność zapisania bajtów jednej wartości w pamięci (Little-endian/Big-endian) w bloku danych. Little-endian oraz Big-endian posiadaja wzajemnie odwrotną kolejność zapisu bajtów wartości. Nie jest to zależne od systemu operacyjnego ale od platformy komputera.
W systemie PROMOTIC (na komputerach z procesorami x86) jest stosowany Little-endian.
W procesorach ARM stosowany jest Big-endian (zazwyczaj jest stosowany do komunikacji ze sterownikami PLC). Big-endian może być wymagany do wymiany danych z innym systemem (np. sterownik PLC).
0 (domyślnie) - Little-endian
1 - Big-endian
Notatka:
Metoda ta nie działa w Web panelach.
Uwaga! Marker zawiera w 32-bit 4 bajtów a w 64-bit 8 bajtów. Marker danych wewnętrzych bloku danych jest wykorzystywany przede wszytkim przy wywołaniu metody PmaDll.CallDll. W języku C++ często pracuje się z markerami danych (adres danych w pamięci). W zapisie C++ można identyfikować marker według znaku * lub & w przypadku typu danych parametra lub pozycji w strukturze. Każdy marker w bloku danych jest realizowany jako marker na inny blok danych.
Patrz również:
- PmBuffer.GetPtr (metoda)
Przykład:
JavaScriptWybierz oraz skopiuj do schowka

oBuf.SetPtr(nOffset, oBuf2, 0);

Historia:
Pm9.00.07: Wytworzono
© MICROSYS, spol. s r.o.