Checksum
NEMAフォーマットは$で始まり、で終わります(のあとにchecksumをつける)。 checksumは、最初の文字と次の文字の排他的論理和(xor)を最後の文字まで続けることにより得ることができます。
/** * @param data 計算対象文字列 * @param startPos 計算開始位置 $で始まっているならば1 * @param endPos 計算終了位置 *で終わっているならばdata.length() - 1 * @return 1byte checksum */ public static byte getNEMAcheckSum(String data, int startPos, int endPos) { byte checkSum = 0; for(int i = startPos; i < endPos; i++) { checkSum ^= (byte)data.charAt(i); } return checkSum; }