diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-01 15:04:06 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-01 15:04:06 +1300 |
commit | c2ecf80df96f9782ef716d01678ed33f886a6480 (patch) | |
tree | fd3debdb195edd49e91072e668371254ff145ff6 /src | |
parent | e84f02c3bffda311e86fab584d7c40702b5223be (diff) | |
download | traccar-server-c2ecf80df96f9782ef716d01678ed33f886a6480.tar.gz traccar-server-c2ecf80df96f9782ef716d01678ed33f886a6480.tar.bz2 traccar-server-c2ecf80df96f9782ef716d01678ed33f886a6480.zip |
Fix Luhn checksum calculation
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/helper/Crc.java | 2 | ||||
-rw-r--r-- | src/org/traccar/protocol/MeiligaoProtocolDecoder.java | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/org/traccar/helper/Crc.java b/src/org/traccar/helper/Crc.java index 418ec3132..522a25403 100644 --- a/src/org/traccar/helper/Crc.java +++ b/src/org/traccar/helper/Crc.java @@ -172,7 +172,7 @@ public class Crc { remain /= 10; } - return 10 - (checksum % 10); + return (10 - (checksum % 10)) % 10; } } diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index c660107ca..faf3a5baf 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -98,14 +98,11 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { } if (id.length() == 14) { + // Try to recreate full IMEI number // Sometimes first digit is cut, so this won't work if (identify(id + Crc.luhnChecksum(Long.valueOf(id)), channel, null, false)) { return true; } - } else if (id.length() > 15) { - if (identify(id.substring(0, 15), channel, null, false)) { - return true; - } } return identify(id, channel); |