mirror of
https://github.com/traccar/traccar.git
synced 2026-06-14 03:44:53 -04:00
Update custom T55 protocol format
This commit is contained in:
@@ -50,7 +50,9 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
|
||||
.expression("[^,]+")
|
||||
.number(",(d+)") // satellites
|
||||
.number(",(d+)") // imei
|
||||
.number(",(d+)").optional(3)
|
||||
.number(",([01])") // ignition
|
||||
.number(",(d+)") // fuel
|
||||
.number(",(d+)").optional(5) // battery
|
||||
.any()
|
||||
.compile();
|
||||
|
||||
@@ -123,13 +125,18 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
|
||||
dateBuilder.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt());
|
||||
position.setTime(dateBuilder.getDate());
|
||||
|
||||
if (parser.hasNext(3)) {
|
||||
if (parser.hasNext(5)) {
|
||||
position.set(Position.KEY_SATELLITES, parser.next());
|
||||
|
||||
deviceSession = getDeviceSession(channel, remoteAddress, parser.next());
|
||||
if (deviceSession == null) {
|
||||
return null;
|
||||
}
|
||||
position.setDeviceId(deviceSession.getDeviceId());
|
||||
|
||||
position.set(Position.KEY_IGNITION, parser.hasNext() && parser.next().equals("1"));
|
||||
position.set(Position.KEY_FUEL, parser.nextInt());
|
||||
position.set(Position.KEY_BATTERY, parser.nextInt());
|
||||
}
|
||||
|
||||
if (deviceSession != null) {
|
||||
|
||||
@@ -23,7 +23,7 @@ public class T55ProtocolDecoderTest extends ProtocolTest {
|
||||
"4711/022789000688081/$GPRMC,133343,A,5308.56325,N,1029.12850,E,0.000000,0.000000,290316,,*2A"));
|
||||
|
||||
verifyPosition(decoder, text(
|
||||
"$GPRMC,073501.000,A,1255.5125,N,07738.2948,E,0.00,0.53,080316,,,D*73,12,865733027593268,10011"));
|
||||
"$GPRMC,073446.000,A,1255.5125,N,07738.2948,E,0.00,0.53,080316,D*71,11,865733027593268,1,090,086"));
|
||||
|
||||
verifyNothing(decoder, text(
|
||||
"$GPFID,ID123456ABC"));
|
||||
|
||||
Reference in New Issue
Block a user