diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2021-10-27 23:25:29 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2021-10-27 23:25:29 -0700 |
commit | b90829bf06ff2f150a9818224a10b825906cd686 (patch) | |
tree | f9b741816434580d5a3fa9429c673853eba68b61 /src | |
parent | 3593d6075cbc40460e91cfccb4f2fb7c9913e315 (diff) | |
download | traccar-server-b90829bf06ff2f150a9818224a10b825906cd686.tar.gz traccar-server-b90829bf06ff2f150a9818224a10b825906cd686.tar.bz2 traccar-server-b90829bf06ff2f150a9818224a10b825906cd686.zip |
Decode magnetic card
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/org/traccar/protocol/FifotrackProtocolDecoder.java | 7 | ||||
-rw-r--r-- | src/test/java/org/traccar/protocol/FifotrackProtocolDecoderTest.java | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/protocol/FifotrackProtocolDecoder.java b/src/main/java/org/traccar/protocol/FifotrackProtocolDecoder.java index 70972f847..4a23d57d0 100644 --- a/src/main/java/org/traccar/protocol/FifotrackProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/FifotrackProtocolDecoder.java @@ -206,7 +206,12 @@ public class FifotrackProtocolDecoder extends BaseProtocolDecoder { } if (parser.hasNext()) { - position.set(Position.KEY_DRIVER_UNIQUE_ID, String.valueOf(parser.nextHexInt())); + String rfid = parser.next(); + if (rfid.matches("\\p{XDigit}+")) { + position.set(Position.KEY_DRIVER_UNIQUE_ID, String.valueOf(Integer.parseInt(rfid, 16))); + } else { + position.set("driverLicense", rfid); + } } if (parser.hasNext()) { diff --git a/src/test/java/org/traccar/protocol/FifotrackProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/FifotrackProtocolDecoderTest.java index fdac158dd..218cafbeb 100644 --- a/src/test/java/org/traccar/protocol/FifotrackProtocolDecoderTest.java +++ b/src/test/java/org/traccar/protocol/FifotrackProtocolDecoderTest.java @@ -11,6 +11,9 @@ public class FifotrackProtocolDecoderTest extends ProtocolTest { var decoder = new FifotrackProtocolDecoder(null); + verifyPosition(decoder, buffer( + "$$274,863003046499158,18D0,A01,,211026081639,A,13.934116,100.000463,0,263,16,366959,345180,80000040,02,0,520|0|FA8|1A9B5B9,9DE|141|2D,% ^YENSABAICHAI$SONGKRAN$MR.^^?;6007643190300472637=150519870412=?+ 14 1 0000155 00103 ?,*69")); + verifyAttribute(decoder, buffer( "$$25,863003046473534,1,B03,OK*4D"), Position.KEY_RESULT, "OK"); |