aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/helper/Checksum.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/helper/Checksum.java')
-rw-r--r--src/org/traccar/helper/Checksum.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/org/traccar/helper/Checksum.java b/src/org/traccar/helper/Checksum.java
index e6b6cd2c8..c156e53f7 100644
--- a/src/org/traccar/helper/Checksum.java
+++ b/src/org/traccar/helper/Checksum.java
@@ -158,13 +158,20 @@ public final class Checksum {
public static String nmea(String msg) {
int checksum = 0;
- byte[] bytes = msg.getBytes(Charset.defaultCharset());
- for (int i = 1; i < msg.length(); i++) {
- checksum ^= bytes[i];
+ for (byte b : msg.getBytes(Charset.defaultCharset())) {
+ checksum ^= b;
}
return String.format("*%02x", checksum).toUpperCase();
}
+ public static String sum(String msg) {
+ byte checksum = 0;
+ for (byte b : msg.getBytes(Charset.defaultCharset())) {
+ checksum += b;
+ }
+ return String.format("%02X", checksum).toUpperCase();
+ }
+
public static long luhn(long imei) {
long checksum = 0;
long remain = imei;