From 75064707c6432cc4918eab573ac3ce9d6eee1d94 Mon Sep 17 00:00:00 2001 From: seym45 Date: Tue, 22 Aug 2023 02:11:40 +0400 Subject: Add command to set speed limit and odometer for Gator - Add test to verify position retrieval interval settings - Update key name MSG_POSITION_PERIODIC to MSG_SET_POSITION_REQUEST_INTERVAL --- src/main/java/org/traccar/protocol/GatorProtocol.java | 2 ++ src/main/java/org/traccar/protocol/GatorProtocolDecoder.java | 4 +++- src/main/java/org/traccar/protocol/GatorProtocolEncoder.java | 8 +++++++- 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/traccar/protocol/GatorProtocol.java b/src/main/java/org/traccar/protocol/GatorProtocol.java index bdea0fb00..0f44fbf47 100644 --- a/src/main/java/org/traccar/protocol/GatorProtocol.java +++ b/src/main/java/org/traccar/protocol/GatorProtocol.java @@ -32,6 +32,8 @@ public class GatorProtocol extends BaseProtocol { setSupportedDataCommands(Command.TYPE_ENGINE_RESUME); setSupportedDataCommands(Command.TYPE_ENGINE_STOP); setSupportedDataCommands(Command.TYPE_POSITION_PERIODIC); + setSupportedDataCommands(Command.TYPE_SET_SPEED_LIMIT); + setSupportedDataCommands(Command.TYPE_SET_ODOMETER); addServer(new TrackerServer(config, getName(), false) { @Override protected void addProtocolHandlers(PipelineBuilder pipeline, Config config) { diff --git a/src/main/java/org/traccar/protocol/GatorProtocolDecoder.java b/src/main/java/org/traccar/protocol/GatorProtocolDecoder.java index c68546c00..90fd5d0c6 100644 --- a/src/main/java/org/traccar/protocol/GatorProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/GatorProtocolDecoder.java @@ -38,7 +38,9 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_HEARTBEAT = 0x21; public static final int MSG_POSITION_REQUEST = 0x30; - public static final int MSG_POSITION_PERIODIC = 0x34; + public static final int MSG_SET_POSITION_REQUEST_INTERVAL = 0x34; + public static final int MSG_SET_SPEED_LIMIT = 0x3F; + public static final int MSG_SET_ODOMETER = 0x6B; public static final int MSG_RESTORES_THE_OIL_DUCT = 0x38; public static final int MSG_CLOSE_THE_OIL_DUCT = 0x39; public static final int MSG_POSITION_DATA = 0x80; diff --git a/src/main/java/org/traccar/protocol/GatorProtocolEncoder.java b/src/main/java/org/traccar/protocol/GatorProtocolEncoder.java index 5452d83c7..570dd269a 100644 --- a/src/main/java/org/traccar/protocol/GatorProtocolEncoder.java +++ b/src/main/java/org/traccar/protocol/GatorProtocolEncoder.java @@ -81,11 +81,17 @@ public class GatorProtocolEncoder extends BaseProtocolEncoder { return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_CLOSE_THE_OIL_DUCT, content); case Command.TYPE_ENGINE_RESUME: return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_RESTORES_THE_OIL_DUCT, content); + case Command.TYPE_SET_SPEED_LIMIT: + content.writeByte(command.getInteger(Command.KEY_DATA)); + return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_SET_SPEED_LIMIT, content); + case Command.TYPE_SET_ODOMETER: + content.writeShort(command.getInteger(Command.KEY_DATA)); + return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_SET_ODOMETER, content); case Command.TYPE_POSITION_PERIODIC: content.writeShort(command.getInteger(Command.KEY_ENGINE_ON_INTERVAL)); content.writeShort(command.getInteger(Command.KEY_ENGINE_OFF_INTERVAL)); content.writeByte(command.getInteger(Command.KEY_HEARTBEAT_INTERVAL)); - return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_POSITION_PERIODIC, content); + return encodeContent(command.getDeviceId(), GatorProtocolDecoder.MSG_SET_POSITION_REQUEST_INTERVAL, content); default: return null; } -- cgit v1.2.3