aboutsummaryrefslogtreecommitdiff
path: root/test/org/traccar/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'test/org/traccar/protocol')
-rw-r--r--test/org/traccar/protocol/EelinkProtocolDecoderTest.java2
-rw-r--r--test/org/traccar/protocol/Jt600ProtocolDecoderTest.java3
-rw-r--r--test/org/traccar/protocol/Tk103FrameDecoderTest.java44
-rw-r--r--test/org/traccar/protocol/Tk103ProtocolDecoderTest.java78
-rw-r--r--test/org/traccar/protocol/Tk103ProtocolEncoderTest.java153
5 files changed, 255 insertions, 25 deletions
diff --git a/test/org/traccar/protocol/EelinkProtocolDecoderTest.java b/test/org/traccar/protocol/EelinkProtocolDecoderTest.java
index ca70343bd..aaf58b438 100644
--- a/test/org/traccar/protocol/EelinkProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/EelinkProtocolDecoderTest.java
@@ -55,7 +55,7 @@ public class EelinkProtocolDecoderTest extends ProtocolTest {
verifyPosition(decoder, binary(
"676702002509f65868507603a1e92e03cf90fe000000019f000117ee00111e0120631145003101510000"));
- verifyPosition(decoder, binary(
+ verifyAttributes(decoder, binary(
"676712001e0092579714d60201f90001785003a301cd1a006a118504f2000000000000"));
verifyPosition(decoder, binary(
diff --git a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java
index 33959bc29..dd01ef783 100644
--- a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java
@@ -12,6 +12,9 @@ public class Jt600ProtocolDecoderTest extends ProtocolTest {
Jt600ProtocolDecoder decoder = new Jt600ProtocolDecoder(new Jt600Protocol());
verifyPositions(decoder, binary(
+ "2475609213701711002701010000020200000000000000000e00000000000f000000000020c164cd7b00d516000f0f0f02"));
+
+ verifyPositions(decoder, binary(
"24657060730131001b13111710361906538525079524797f000000000000000003f300036c"));
verifyPositions(decoder, binary(
diff --git a/test/org/traccar/protocol/Tk103FrameDecoderTest.java b/test/org/traccar/protocol/Tk103FrameDecoderTest.java
new file mode 100644
index 000000000..f1169fffb
--- /dev/null
+++ b/test/org/traccar/protocol/Tk103FrameDecoderTest.java
@@ -0,0 +1,44 @@
+package org.traccar.protocol;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.junit.Test;
+import org.traccar.ProtocolTest;
+
+public class Tk103FrameDecoderTest extends ProtocolTest {
+
+ @Test
+ public void testDecode() throws Exception {
+
+ Tk103FrameDecoder decoder = new Tk103FrameDecoder();
+
+ verifyFrame(
+ binary("283836343735353535353535353535352C445733422C3133313131372C412C353536322E30323837304E2C30313334382E3038313934452C312E3539372C3232333730372C3239312E36352C2D302E31302C3429"),
+ decoder.decode(null, null, binary("283836343735353535353535353535352C445733422C3133313131372C412C353536322E30323837304E2C30313334382E3038313934452C312E3539372C3232333730372C3239312E36352C2D302E31302C3429283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529")));
+
+ ChannelBuffer buf = binary("283836343535353535353535353535352C445735422C3231302C362C353939352C34373730312C352C33303A45453A43433A45373A38363A44442A2D35392A31312C34433A36303A43433A45413A42423A45452A2D36382A312C34323A41413A44453A45413A42423A30302A2D36392A312C33323A43443A42423A43333A34463A43432A2D38362A332C31303A30303A34333A42413A32323A31352A2D38382A312C3135313131372C31363337323229283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529");
+
+ verifyFrame(
+ binary("283836343535353535353535353535352C445735422C3231302C362C353939352C34373730312C352C33303A45453A43433A45373A38363A44442A2D35392A31312C34433A36303A43433A45413A42423A45452A2D36382A312C34323A41413A44453A45413A42423A30302A2D36392A312C33323A43443A42423A43333A34463A43432A2D38362A332C31303A30303A34333A42413A32323A31352A2D38382A312C3135313131372C31363337323229"),
+ decoder.decode(null, null, buf));
+
+ verifyFrame(
+ binary("283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529"),
+ decoder.decode(null, null, buf));
+
+ verifyFrame(
+ binary("283836343735353535353535353535352C445733422C3133313131372C412C353536322E30323837304E2C30313334382E3038313934452C312E3539372C3232333730372C3239312E36352C2D302E31302C3429"),
+ decoder.decode(null, null, binary("676172626167652540232A5E242D2B3C3E3F2429292924242D2D283836343735353535353535353535352C445733422C3133313131372C412C353536322E30323837304E2C30313334382E3038313934452C312E3539372C3232333730372C3239312E36352C2D302E31302C3429283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529")));
+
+ verifyNull(decoder.decode(null, null, binary("67")));
+
+ verifyNull(decoder.decode(null, null, binary("676172626167652540232a5e242d2b3c3e3f24")));
+
+ verifyFrame(
+ binary("2838363437353535353535352C5A4330332C3139313131372C3233343432312C24294E6F746963653A0D0A446576696365732073657269616C206E756D6265723A200D0A3538303535353535353535292E0D0A536F6674776172652076657273696F6E3A0D0A56322E3030302C323031362F30382F32332031313A3137292429"),
+ decoder.decode(null, null, binary("610D0A676172626167652540232A5E242D2B3C3E3F2429292924242D2D2838363437353535353535352C5A4330332C3139313131372C3233343432312C24294E6F746963653A0D0A446576696365732073657269616C206E756D6265723A200D0A3538303535353535353535292E0D0A536F6674776172652076657273696F6E3A0D0A56322E3030302C323031362F30382F32332031313A3137292429283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529")));
+
+ verifyNull(decoder.decode(null, null, binary("610D0A676172626167652540232A5E242D2B3C3E3F2429292924242D2D2838363437353535353535352C5A4330332C3139313131372C3233343432312C24294E6F746963653A0D0A446576696365732073657269616C206E756D6265723A200D0A3538303535353535353535292E0D0A536F6674776172652076657273696F6E3A0D0A56322E3030302C323031362F30382F32332031313A31372929283836343735353535353535353535352C5A4332302C3133313131372C3232333730362C362C3339342C36353533352C32353529")));
+
+ }
+
+}
diff --git a/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java b/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
index a69ff8856..c02da7ac2 100644
--- a/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
@@ -11,6 +11,9 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
Tk103ProtocolDecoder decoder = new Tk103ProtocolDecoder(new Tk103Protocol());
verifyPosition(decoder, text(
+ "(358511020000026,DW5B,310,6,29876,30393,0,041217,102211)"));
+
+ verifyPosition(decoder, text(
"(007611121184BR00170816A2401.5217N07447.0788E000.0221352232.340000004FL0030F14F)"));
verifyNull(decoder, text(
@@ -38,7 +41,7 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
"(087073104337BZ00,740,000,3bf7,0425,3bf7,0bf5,3bf7,09e7,3bf7,cbad,3bf7,0dcf,3bf7,c7b2,01000000)"));
verifyNull(decoder, text(
- "(087073005534BP00HSO"));
+ "(087073005534BP00HSO)"));
verifyNull(decoder, text(
"(027028258309BQ86,0,05550c21b10d1d0f431008bd114c0ea5078400010007a100423932,161117005322,01000001)"));
@@ -56,22 +59,22 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
"(088046338039BP05000088046338039160727A3354.7768N03540.7258E000.0140309065.1000000000L00BEB0D4+017.3)"));
verifyAttributes(decoder, text(
- "(013632651491,ZC20,180716,144222,6,392,65535,255"));
+ "(013632651491,ZC20,180716,144222,6,392,65535,255)"));
verifyAttributes(decoder, text(
- "(087072009461BR00000007V0000.0000N00000.0000E000.00014039900000000L00000000"));
+ "(087072009461BR00000007V0000.0000N00000.0000E000.00014039900000000L00000000)"));
verifyPosition(decoder, text(
- "(013612345678BO012061830A2934.0133N10627.2544E040.0080331309.6200000000L000770AD"));
+ "(013612345678BO012061830A2934.0133N10627.2544E040.0080331309.6200000000L000770AD)"));
verifyNotNull(decoder, text(
- "(088047194605BZ00,510,010,36e6,932c,43,36e6,766b,36,36e6,7668,32"));
+ "(088047194605BZ00,510,010,36e6,932c,43,36e6,766b,36,36e6,7668,32)"));
verifyAttributes(decoder, text(
- "(013632651491,ZC20,040613,040137,6,421,112,0"));
+ "(013632651491,ZC20,040613,040137,6,421,112,0)"));
verifyAttributes(decoder, text(
- "(864768010159785,ZC20,291015,030413,3,362,65535,255"));
+ "(864768010159785,ZC20,291015,030413,3,362,65535,255)"));
verifyPosition(decoder, text(
"(088047365460BR00151024A2555.3531S02855.3329E004.7055148276.1701000000L00009AA3)"),
@@ -90,50 +93,50 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
"(088048003342BR00150807A1352.9871N10030.9084E000.0110718000.0001010000L00000000)"));
verifyNull(decoder, text(
- "(090411121854BP0000001234567890HSO"));
+ "(090411121854BP0000001234567890HSO)"));
verifyPosition(decoder, text(
"(01029131573BR00150428A3801.6382N02351.0159E000.0080729278.7800000000LEF9ECB9C)"));
verifyPosition(decoder, text(
- "(035988863964BP05000035988863964110524A4241.7977N02318.7561E000.0123536356.5100000000L000946BB"));
+ "(035988863964BP05000035988863964110524A4241.7977N02318.7561E000.0123536356.5100000000L000946BB)"));
verifyPosition(decoder, text(
- "(013632782450BP05000013632782450120803V0000.0000N00000.0000E000.0174654000.0000000000L00000000"));
+ "(013632782450BP05000013632782450120803V0000.0000N00000.0000E000.0174654000.0000000000L00000000)"));
verifyPosition(decoder, text(
- "(013666666666BP05000013666666666110925A1234.5678N01234.5678W000.002033490.00000000000L000024DE"));
+ "(013666666666BP05000013666666666110925A1234.5678N01234.5678W000.002033490.00000000000L000024DE)"));
verifyPosition(decoder, text(
- "(013666666666BO012110925A1234.5678N01234.5678W000.0025948118.7200000000L000024DE"));
+ "(013666666666BO012110925A1234.5678N01234.5678W000.0025948118.7200000000L000024DE)"));
verifyPosition(decoder, text(
- "\n\n\n(088045133878BR00130228A5124.5526N00117.7152W000.0233614352.2200000000L01B0CF1C"));
+ "(088045133878BR00130228A5124.5526N00117.7152W000.0233614352.2200000000L01B0CF1C)"));
verifyPosition(decoder, text(
- "(008600410203BP05000008600410203130721A4152.5790N01239.2770E000.0145238173.870100000AL0000000"));
+ "(008600410203BP05000008600410203130721A4152.5790N01239.2770E000.0145238173.870100000AL0000000)"));
verifyPosition(decoder, text(
- "(013012345678BR00130515A4843.9703N01907.6211E000.019232800000000000000L00009239"));
+ "(013012345678BR00130515A4843.9703N01907.6211E000.019232800000000000000L00009239)"));
verifyPosition(decoder, text(
- "(012345678901BP05000012345678901130520A3439.9629S05826.3504W000.1175622323.8700000000L000450AC"));
+ "(012345678901BP05000012345678901130520A3439.9629S05826.3504W000.1175622323.8700000000L000450AC)"));
verifyPosition(decoder, text(
- "(012345678901BR00130520A3439.9629S05826.3504W000.1175622323.8700000000L000450AC"));
+ "(012345678901BR00130520A3439.9629S05826.3504W000.1175622323.8700000000L000450AC)"));
verifyPosition(decoder, text(
- "(352606090042050,BP05,240414,V,0000.0000N,00000.0000E,000.0,193133,000.0"));
+ "(352606090042050,BP05,240414,V,0000.0000N,00000.0000E,000.0,193133,000.0)"));
verifyPosition(decoder, text(
- "(352606090042050,BP05,240414,A,4527.3513N,00909.9758E,4.80,112825,155.49"),
+ "(352606090042050,BP05,240414,A,4527.3513N,00909.9758E,4.80,112825,155.49)"),
position("2014-04-24 11:28:25.000", true, 45.45586, 9.16626));
verifyPosition(decoder, text(
- "(013632782450,BP05,101201,A,2234.0297N,11405.9101E,000.0,040137,178.48,00000000,L00000000"));
+ "(013632782450,BP05,101201,A,2234.0297N,11405.9101E,000.0,040137,178.48,00000000,L00000000)"));
verifyPosition(decoder, text(
- "(864768010009188,BP05,271114,V,4012.19376N,00824.05638E,000.0,154436,000.0"));
+ "(864768010009188,BP05,271114,V,4012.19376N,00824.05638E,000.0,154436,000.0)"));
verifyPosition(decoder, text(
"(013632651491,BP05,040613,A,2234.0297N,11405.9101E,000.0,040137,178.48)"));
@@ -153,12 +156,39 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
verifyPosition(decoder, text(
"(013632651491,ZC17,040613,A,2234.0297N,11405.9101E,000.0,040137,178.48)"));
- verifyNull(decoder, text(
- "(013632651491,ZC20,040613,040137,6,42,112,0)"));
-
verifyPosition(decoder, text(
"(094050000111BP05000094050000111150808A3804.2418N04616.7468E000.0201447133.3501000011L0028019DT000)"));
+ verifyPosition(decoder, text(
+ "(864555555555555,DW3B,131117,A,5544.02870N,01315.08194E,1.597,223707,291.65,-0.10,4)"));
+
+ verifyPosition(decoder, text(
+ "(864555555555555,DW3B,131117,A,5544.02870N,01315.08194E,1.597,223707,291.65,0.10,8)"));
+
+ verifyPosition(decoder, text(
+ "(013632651491,ZC07,040613,A,2234.0297N,11405.9101E,000.0,040137,178.48)"));
+
+ verifyAttributes(decoder, text(
+ "(013632651491,ZC20,040613,040137,6,42,112,0)"));
+
+ verifyNotNull(decoder, text(
+ "(864555555555555,DW51,200,1,3215,43370,2,58:F3:BB:3B:AA:82*-65*1,1C:6A:BB:AA:81:95*-78*1,151117,154419)"));
+
+ verifyNotNull(decoder, text(
+ "(864555555555555,DW5B,210,6,5995,47701,5,30:EE:CC:E7:86:DD*-59*11,4C:60:CC:EA:BB:EE*-68*1,42:AA:DE:EA:BB:00*-69*1,32:CD:BB:C3:4F:CC*-86*3,10:00:43:BA:22:15*-88*1,151117,163722)"));
+
+ verifyNotNull(decoder, text(
+ "(013632651491,DW50,460,0,0,6,2,aa:bb:cc:dd:ee:ff*-8*0,aa:bb:cc:dd:ee:ff*-8*0,040613,040137)"));
+
+ verifyNotNull(decoder, text(
+ "(013632651491,DW50,460,0,0,6,0,040613,040137)"));
+
+ verifyNotNull(decoder, text(
+ "(864555555555555,ZC03,191117,234207,$Notice: Device version: 1.0$)"));
+
+ verifyNotNull(decoder, text(
+ "(864555555555555,ZC03,191117,234207,$1 .Sensor sensitivity: 1\r\n2 .Alert status: Off\r\n3 .Check interval is set to 240 minute(s).\r\n4 .Checkgsm interval is set to 60 minute(s).\r\n5 .SOS SMS Alert: On\r\n6 .SOS Call Alert: On\r\n7 . Power: 95%$)"));
+
}
}
diff --git a/test/org/traccar/protocol/Tk103ProtocolEncoderTest.java b/test/org/traccar/protocol/Tk103ProtocolEncoderTest.java
index afc3b2387..a99889e3b 100644
--- a/test/org/traccar/protocol/Tk103ProtocolEncoderTest.java
+++ b/test/org/traccar/protocol/Tk103ProtocolEncoderTest.java
@@ -3,7 +3,9 @@ package org.traccar.protocol;
import org.junit.Assert;
import org.junit.Test;
import org.traccar.ProtocolTest;
+import org.traccar.TestIdentityManager;
import org.traccar.model.Command;
+import org.traccar.model.Device;
public class Tk103ProtocolEncoderTest extends ProtocolTest {
@@ -99,4 +101,155 @@ public class Tk103ProtocolEncoderTest extends ProtocolTest {
}
+ @Test
+ public void testEncodePositionSingleAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_POSITION_SINGLE);
+
+ Assert.assertEquals("[begin]sms2,*getposl*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodePositionPeriodicAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_POSITION_PERIODIC);
+
+ Assert.assertEquals("[begin]sms2,*routetrack*99*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodePositionStopAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_POSITION_STOP);
+
+ Assert.assertEquals("[begin]sms2,*routetrackoff*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeGetVersionAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_GET_VERSION);
+
+ Assert.assertEquals("[begin]sms2,*about*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeRebootDeviceAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_REBOOT_DEVICE);
+
+ Assert.assertEquals("[begin]sms2,88888888,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeIdentificationAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_IDENTIFICATION);
+
+ Assert.assertEquals("[begin]sms2,999999,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeSosOnAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_ALARM_SOS);
+ command.set(Command.KEY_ENABLE, true);
+
+ Assert.assertEquals("[begin]sms2,*soson*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeSosOffAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_ALARM_SOS);
+ command.set(Command.KEY_ENABLE, false);
+
+ Assert.assertEquals("[begin]sms2,*sosoff*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeCustomAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_CUSTOM);
+ command.set(Command.KEY_DATA, "any text is ok");
+
+ Assert.assertEquals("[begin]sms2,any text is ok,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeSetConnectionAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_SET_CONNECTION);
+ command.set(Command.KEY_SERVER, "1.2.3.4");
+ command.set(Command.KEY_PORT, "5555");
+
+ Assert.assertEquals("[begin]sms2,*setip*1*2*3*4*5555*,[end]", encoder.encodeCommand(command));
+
+ }
+
+ @Test
+ public void testEncodeSosNumberAlternative() throws Exception {
+
+ Tk103ProtocolEncoder encoder = new Tk103ProtocolEncoder(true);
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_SOS_NUMBER);
+ command.set(Command.KEY_INDEX, "0");
+ command.set(Command.KEY_PHONE, "+55555555555");
+ command.set(Command.KEY_DEVICE_PASSWORD, "232323");
+
+ Assert.assertEquals("[begin]sms2,*master*232323*+55555555555*,[end]", encoder.encodeCommand(command));
+
+ }
+
}