Promotic
WikipediaLinkedInYoutubeTwitterFacebook

CalcCheckSum - metoda obiektu PmBuffer

Opis:
Stwierdzenie sumy kontrolnej bloku danych.
Składnia:
Long CalcCheckSum(Long nOffset, Long nSize, String sType)
Wołanie:
Value = PmBuffer.CalcCheckSum(nOffset, nSize, nAttr)
Parametry:
nOffset(Long) Określa pozycję odczytywanej wartości w bloku danych.

Cała odczytywana pozycja musi znajdować się w bloku danych. Pozycja zostanie odczytana w całości lub wogóle.

>= 0 - Indeks (w bajtach, indeksowane od 0) w bloku danych.
-4 - Zostanie zastosowana wewnętrzna automatyczna pozycja (patrz AutoOffset), która wskazuje ostatnią odczytywaną lub zapisywaną wartość.
nSize(Long) Wielkość odczytywanego bloku danych.

Wartość -1 (domyślnie) oznacza, że zostanie odczytany blok danych od określonej pozycji aż do końca.

sType(String) Typ sumy kontrolnej:
"crc1" - CRC-16-CCITT, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x1021 = x16+x12+x5+1].

Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy.

Rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty.

Suma kontrolna jest zastosowana na przykład podczas komunikacji protokołem PmSBUS.

"crc2" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0xA001 = x16+x15+x2+1].

Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy.

Rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty.

Suma kontrolna jest zastosowana na przykład podczas komunikacji protokołem Modbus.

"crc3" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x8005 = x16+x15+x2+1].

Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy.

Rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty.

Suma kontrolna jest zastosowana na przykład podczas komunikacji protokołem PmABradleyDF1.

"sum1" - Bajtowa suma wartości.

Rezultatem jest wartość typu Byte (suma modulo 256).

Suma kontrolna jest zastosowana na przykład podczas komunikacji protokołem PmIEC8705, PmMBus, PmAdam, PmTeco, PmInmat66.

"sum2" - Bajtowa suma wartości.

Rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty (suma modulo 65536).

"xor1" - Bitowy XOR wszystkich wartości bajtowych.

Rezultatem jest wartość typu Byte.

Suma kontrolna jest zastosowana na przykład podczas komunikacji protokołem Pm3964.

Notatka:
Metoda ta nie działa w Web panelach.
 
Uwaga: Wewnętrzna automatyczna pozycja (patrz AutoOffset) NIE ZOSTANIE ZMIENIONA tą operacją.
Przykład:
Wytworzenie bloku danych, kolejny zapis 4, 2 oraz 1 bajtowej wartości całkowitej (razem 7 bajtów), a na końcu stwierdzenie sumy kontrolnej "crc1" całego bloku danych.
JavaScriptWybierz oraz skopiuj do schowka

var b = Pm.CreatePmBuffer();
b.SetInt32(-2, 0x10203040);
b.SetInt16(-2, 0x5060);
b.SetUint8(-2, 0x70);
var n = b.CalcCheckSum(0, -1, "crc1");

Historia:
Pm9.00.10: Wytworzono
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice