
GLOBALSTAR PROPRIETARY AND CONFIDENTIAL INFORMATION
Use or disclosure of data contained on this sheet is subject to the restrictions in the Distribution Statements on the title page of this
document.
06/18/20
Subject to Change without Notice
P a g e | 74
The following example is written in the Java programming language:
char crc16_lsb(byte pData[], int length)
{
int pData_i = 0;
char s1,s2;
byte i;
char data, crc;
crc = (char) 0xFFFF;
if (length == 0)
return 0;
do
{
data = (char)((char)0x00FF & pData[+]);
crc = (char)(crc ^ data);
for (i = 8; i > 0; i--)
{
if ((crc & 0x0001) != 0)
crc = (char)((crc >> 1) ^ 0x8408);
else
crc >>= 1;
}
}while (--length != 0);
crc = (char)~crc;
return (crc);
}
USAGE:
calculate the CRC for a message and update the message CRC
byte msg[];
int len;
char crc = crc16_lsb(msg,len-2);
msg[len-2] = (byte)((short)crc & (short)0xff);
msg[len-1] = (byte)((short)crc >> 8);