Questa funzione, dato un buffer di dati (sequenza di byte), esegue il calcolo del CRC16 in base al polinomio e al valore CRC iniziale specificati.
Sintassi |
u16 crc16_le (string strData, i32 nCount [, u16 initVal=0xFFFF] [, u16 polin=0xA001]) |
||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
strData |
Stringa oppure array, dei quali si vuole calcolare il CRC16. Il calcolo del CRC avviene comunque a byte, indipendentemente dal tipo specificato per la variabile data. |
||||||||||||||||||||||||||||||||
nCount |
È il numero di byte di strData su cui eseguire il calcolo. |
||||||||||||||||||||||||||||||||
initVal |
Valore iniziale del CRC. (opzionale, default 0xFFFF) |
||||||||||||||||||||||||||||||||
polin |
Valore del polinomio usato nel calcolo del CRC. (opzionale, default 0xA001) Principali polinomi utilizzati dai diversi CRC:
Casi frequenti:
|
||||||||||||||||||||||||||||||||
Risultato |
Rende il valore del CRC calcolato. |
||||||||||||||||||||||||||||||||
Validità |
Rule, Task. |
||||||||||||||||||||||||||||||||
Note |
Chiamando ripetutamente la funzione con valore iniziale uguale al valore del CRC calcolato, si può eseguire il calcolo incrementale del CRC di un buffer di lunghezza qualsiasi. NOTA: La precedente funzione crc16_ero (Little Endian con polinomio iniziale non modificabile 0xA001) è deprecata, ma rimane per compatibilità. |
Il calcolo viene effettuato secondo l'algoritmo Little Endian.
Esempio di utilizzo:
|