From 9bc7deb97f2751ee0fd7e5ba198d2c030d149e01 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 28 Oct 2017 21:05:56 +1300 Subject: Extend Bofan PT600 support --- src/org/traccar/protocol/Pt502Protocol.java | 3 ++- src/org/traccar/protocol/Pt502ProtocolDecoder.java | 4 ++++ src/org/traccar/protocol/Pt502ProtocolEncoder.java | 2 ++ test/org/traccar/protocol/Pt502ProtocolEncoderTest.java | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/protocol/Pt502Protocol.java b/src/org/traccar/protocol/Pt502Protocol.java index ad97a777e..0116422c2 100644 --- a/src/org/traccar/protocol/Pt502Protocol.java +++ b/src/org/traccar/protocol/Pt502Protocol.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 - 2016 Anton Tananaev (anton@traccar.org) + * Copyright 2015 - 2017 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ public class Pt502Protocol extends BaseProtocol { public Pt502Protocol() { super("pt502"); setSupportedDataCommands( + Command.TYPE_CUSTOM, Command.TYPE_SET_TIMEZONE, Command.TYPE_ALARM_SPEED, Command.TYPE_OUTPUT_CONTROL, diff --git a/src/org/traccar/protocol/Pt502ProtocolDecoder.java b/src/org/traccar/protocol/Pt502ProtocolDecoder.java index fef5d9b39..1d976dcd5 100644 --- a/src/org/traccar/protocol/Pt502ProtocolDecoder.java +++ b/src/org/traccar/protocol/Pt502ProtocolDecoder.java @@ -62,6 +62,10 @@ public class Pt502ProtocolDecoder extends BaseProtocolDecoder { private String decodeAlarm(String value) { switch (value) { + case "IN1": + return Position.ALARM_SOS; + case "GOF": + return Position.ALARM_GEOFENCE; case "TOW": return Position.ALARM_TOW; case "HDA": diff --git a/src/org/traccar/protocol/Pt502ProtocolEncoder.java b/src/org/traccar/protocol/Pt502ProtocolEncoder.java index 4a876f6da..bd56e306a 100644 --- a/src/org/traccar/protocol/Pt502ProtocolEncoder.java +++ b/src/org/traccar/protocol/Pt502ProtocolEncoder.java @@ -41,6 +41,8 @@ public class Pt502ProtocolEncoder extends StringProtocolEncoder implements Strin protected Object encodeCommand(Command command) { switch (command.getType()) { + case Command.TYPE_CUSTOM: + return formatCommand(command, "{%s}\r\n", Command.KEY_DATA); case Command.TYPE_OUTPUT_CONTROL: return formatCommand(command, "#OPC{%s},{%s}\r\n", Command.KEY_INDEX, Command.KEY_DATA); case Command.TYPE_SET_TIMEZONE: diff --git a/test/org/traccar/protocol/Pt502ProtocolEncoderTest.java b/test/org/traccar/protocol/Pt502ProtocolEncoderTest.java index 62406d3f2..39ca2fe65 100644 --- a/test/org/traccar/protocol/Pt502ProtocolEncoderTest.java +++ b/test/org/traccar/protocol/Pt502ProtocolEncoderTest.java @@ -7,6 +7,20 @@ import org.traccar.model.Command; public class Pt502ProtocolEncoderTest extends ProtocolTest { + @Test + public void testEncodeCustom() throws Exception { + + Pt502ProtocolEncoder encoder = new Pt502ProtocolEncoder(); + + Command command = new Command(); + command.setDeviceId(1); + command.setType(Command.TYPE_CUSTOM); + command.set(Command.KEY_DATA, "#PTI300"); + + Assert.assertEquals("#PTI300\r\n", encoder.encodeCommand(command)); + + } + @Test public void testEncodeOutputControl() throws Exception { -- cgit v1.2.3