Preamble and ‘*’. The C reference example:
char a[]="$PMTK000*32\r\n";
char Checksum,Checksum1,Checksum2;
int i;
for(Checksum=a[1],i=2;a[i]!='*' && i<255;++i)
{
Checksum^=a[i];
}
printf("Checksum =%02X\n\n",Checksum);// ”32”
if( (Checksum/0x10 )+0x30 <=57) //Checksum1
Checksum1=Checksum/0x10+0x30;
else
Checksum1=Checksum/0x10+0x30+0x07;
if( (Checksum%0x10)+0x30 <=57) //Checksum2
Checksum2=Checksum%0x10+0x30;
else
Checksum2=Checksum%0x10+0x30+0x07;
if(a[++i]==Checksum1)
printf("Checksum1 =%C\n",Checksum1);// ‘3’
if(a[++i]==Checksum2)
printf("Checksum2 =%C\n",Checksum2);// ‘2’
Commonly Used Commands
Note: <CR> is carriage return character, <LF> is line feed character.