diff options
Diffstat (limited to 'src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java')
-rw-r--r-- | src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java b/src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java index 199348c54..15e08d7b1 100644 --- a/src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/PacificTrackProtocolDecoder.java @@ -73,18 +73,18 @@ public class PacificTrackProtocolDecoder extends BaseProtocolDecoder { position.setValid(BitUtil.check(buf.readUnsignedByte(), 4)); int date = buf.readUnsignedByte(); DateBuilder dateBuilder = new DateBuilder() - .setDate(2000 + BitUtil.from(date, 4), BitUtil.to(date, 4), buf.readUnsignedByte()) + .setDate(2010 + BitUtil.from(date, 4), BitUtil.to(date, 4), buf.readUnsignedByte()) .setTime(buf.readUnsignedByte(), buf.readUnsignedByte(), buf.readUnsignedByte()); position.setTime(dateBuilder.getDate()); position.setLatitude(buf.readUnsignedInt() / 1000000.0 - 90.0); position.setLongitude(buf.readUnsignedInt() / 1000000.0 - 180.0); int speedAndCourse = buf.readUnsignedMedium(); position.setCourse(BitUtil.from(speedAndCourse, 12)); - position.setSpeed(UnitsConverter.knotsFromKph(BitUtil.to(speedAndCourse, 12))); + position.setSpeed(UnitsConverter.knotsFromKph(BitUtil.to(speedAndCourse, 12) * 0.1)); position.set(Position.KEY_INDEX, buf.readUnsignedShort()); break; case 0x100: - String imei = ByteBufUtil.hexDump(buf.readSlice(8)).substring(1); + String imei = ByteBufUtil.hexDump(buf.readSlice(8)).substring(0, 15); deviceSession = getDeviceSession(channel, remoteAddress, imei); break; default: |