Promotic
WikipediaLinkedInYoutubeTwitterFacebook

SetPtr - metoda objektu PmBuffer

Popis:
Zápis ukazatele (pointeru, adresy) na jiný datový blok v podobě PmBuffer.
Syntaxe:
Empty SetPtr(Long nOffset, Object oBuff, [Long nEncoding])
Volání:
PmBuffer.SetPtr(nOffset, oBuf, nEncoding)
Parametry:
nOffset(Long) Určuje pozici zapisované hodnoty v datovém bloku.

Platí, že celá zapisovaná hodnota musí ležet uvnitř datového bloku nebo se celá položka přidává na konec datového bloku. Položka se zapíše buď celá nebo vůbec.

>= 0 - Index (v bajtech, indexováno od 0) v datovém bloku.
-2 - Celá položka se přidá na konec datového bloku. Velikost datového bloku se pak zvětší o zapisovanou položku.
-4 - Použije se vnitřní automatická pozice (viz AutoOffset), která ukazuje za poslední čtenou nebo zapisovanou hodnotu a automaticky se zvětšuje.

Pokud se čtou/zapisují položky jedna za druhou, pak není potřeba ručně určovat pozici, ale je lepší použít toto automatické pozicování.

oBuff(Object) Datový blok v podobě PmBuffer, pointer na jeho vnitřní data bude zapsán.
nEncoding[nepovinné] (Long) Způsob pořadí uložení bajtů jedné hodnoty v paměti (Little-endian/Big-endian) v datovém bloku. Little-endian a Big-endian mají navzájem opačné pořadí uložení bajtů hodnoty. Nezávisí na operáčním systému, ale na počítačové platformě. V systému PROMOTIC (na x86 procesorech na PC) se používá Little-endian. Na ARM procesorech bývá Big-endian (často se používá při komunikaci s PLC automatem). Big-endian může být vyžadován pro vyměnu dat s jiným systémem (např. PLC automat).
0 (přednastaveno) - Little-endian
1 - Big-endian
Poznámka:
Tato metoda není funkční ve Web obrazech.

Upozornění! Ukazatel má ve 32bit velikost 4 bajty a v 64bit 8 bajtů. Ukazatel na vnitřní data jiného datového bloku se používá hlavně při volání metody PmaDll.CallDll. V C++ jazyce se často pracuje s ukazateli na data (adresa dat v paměti). V C++ zápisu lze ukazatel poznat podle znaku * nebo & u datového typu parametru nebo položky ve struktuře. Každý ukazatel je v datovém bloku realizován jako ukazatel na jiný datový blok.

Viz také:
- PmBuffer.GetPtr (metoda)

Historie:
Pm9.00.07: Vytvořeno
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice