Kaynağa Gözat

完善单元测试

tags/v2.2.0
TK 5 yıl önce
ebeveyn
işleme
023713cc62
12 değiştirilmiş dosya ile 144 ekleme ve 63 silme
  1. +4
    -4
      src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs
  2. +4
    -4
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1201Test.cs
  3. +23
    -2
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1202Test.cs
  4. +59
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1203Test.cs
  5. +6
    -6
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs
  6. +6
    -6
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1403Test.cs
  7. +6
    -6
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9400_0x9402Test.cs
  8. +6
    -6
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9400_0x9403Test.cs
  9. +2
    -1
      src/JT809.Protocol/MessageBody/JT809_0x1200.cs
  10. +17
    -17
      src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1201.cs
  11. +7
    -7
      src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1202.cs
  12. +4
    -4
      src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs

+ 4
- 4
src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs Dosyayı Görüntüle

@@ -43,7 +43,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
//00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31
//00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32
//D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232
Assert.Equal("D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232", hex);
Assert.Equal("D4C1413132333435000000000000000000000000000112010000003D31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232", hex);
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32"
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 61 61 32 32 32 32 32 32 32 32 32 32 32 32"
}
@@ -51,7 +51,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
[Fact]
public void Test2()
{
var bytes = "D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32".ToHexBytes();
var bytes = "D4C1413132333435000000000000000000000000000112010000003D31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes();
JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize<JT809_0x1200>(bytes);
Assert.Equal("粤A12345", jT809_0X9001.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor);
@@ -84,13 +84,13 @@ namespace JT809.Protocol.Test.JT809MessageBody
};
jT809_0X1200.SubBodies = jT809_0X1200_0X1201;
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200).ToHexString();
Assert.Equal("D4C1413132333435000000000000000000000000000112010000006E00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232", hex);
Assert.Equal("D4C1413132333435000000000000000000000000000112010000006E3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "D4C1413132333435000000000000000000000000000112010000006E00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232".ToHexBytes();
var bytes = "D4C1413132333435000000000000000000000000000112010000006E3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200".ToHexBytes();
JT809_0x1200 jT809_0X9001 = JT809_2019_Serializer.Deserialize<JT809_0x1200>(bytes);
Assert.Equal("粤A12345", jT809_0X9001.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor);


+ 4
- 4
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1201Test.cs Dosyayı Görüntüle

@@ -31,13 +31,13 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
};
var hex = JT809Serializer.Serialize(jT809_0X1200_0X1201).ToHexString();
//"00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32"
Assert.Equal("00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232",hex);
Assert.Equal("31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232", hex);
}

[Fact]
public void Test2()
{
var bytes = "00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32".ToHexBytes();
var bytes = "31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes();
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809Serializer.Deserialize<JT809_0x1200_0x1201>(bytes);
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
@@ -59,13 +59,13 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
IMIEId="123456789"
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1201).ToHexString();
Assert.Equal("00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232", hex);
Assert.Equal("3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232".ToHexBytes();
var bytes = "3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200".ToHexBytes();
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1201>(bytes);
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);


+ 23
- 2
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1202Test.cs Dosyayı Görüntüle

@@ -22,6 +22,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
public void Test1()
{
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202.VehiclePosition = new Metadata.JT809VehiclePositionProperties();
jT809_0X1200_0X1202.VehiclePosition.Day = 19;
jT809_0X1200_0X1202.VehiclePosition.Month = 7;
jT809_0X1200_0X1202.VehiclePosition.Year = 2012;
@@ -66,13 +67,33 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
[Fact]
public void Test_2019_1()
{
// todo:JT809VehiclePositionProperties_2019
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202.GNSSData = new Metadata.JT809VehiclePositionProperties_2019();
jT809_0X1200_0X1202.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密;
//jT809_0X1200_0X1202.GNSSData.GnssData = new byte[20];
jT809_0X1200_0X1202.GNSSData.PlatformId1 = "11111111111";
jT809_0X1200_0X1202.GNSSData.Alarm1 = 1;
jT809_0X1200_0X1202.GNSSData.PlatformId2 = "22222222222";
jT809_0X1200_0X1202.GNSSData.Alarm2 = 2;
jT809_0X1200_0X1202.GNSSData.PlatformId3 = "33333333333";
jT809_0X1200_0X1202.GNSSData.Alarm3 = 3;
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1202).ToHexString();
Assert.Equal("0100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex);

}

[Fact]
public void Test_2019_2()
{
// todo:JT809VehiclePositionProperties_2019
var bytes = "0100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".ToHexBytes();
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1202>(bytes);
Assert.Equal( JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1202.GNSSData.Encrypt);
Assert.Equal("11111111111", jT809_0X1200_0X1202.GNSSData.PlatformId1);
Assert.Equal(1u, jT809_0X1200_0X1202.GNSSData.Alarm1);
Assert.Equal("22222222222", jT809_0X1200_0X1202.GNSSData.PlatformId2);
Assert.Equal(2u, jT809_0X1200_0X1202.GNSSData.Alarm2);
Assert.Equal("33333333333", jT809_0X1200_0X1202.GNSSData.PlatformId3);
Assert.Equal(3u, jT809_0X1200_0X1202.GNSSData.Alarm3);
}

}


+ 59
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1203Test.cs Dosyayı Görüntüle

@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums;
using JT809.Protocol.Internal;

namespace JT809.Protocol.Test.JT809SubMessageBody
{
public class JT809_0x1200_0x1203Test
{
private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact]
public void Test1()
{
@@ -20,6 +23,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>();

JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202_1.VehiclePosition = new Metadata.JT809VehiclePositionProperties();
jT809_0X1200_0X1202_1.VehiclePosition.Day = 19;
jT809_0X1200_0X1202_1.VehiclePosition.Month = 7;
jT809_0X1200_0X1202_1.VehiclePosition.Year = 2012;
@@ -37,6 +41,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
jT809_0X1200_0X1202_1.VehiclePosition.Alarm = 257;

JT809_0x1200_0x1202 jT809_0X1200_0X1202_2 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202_2.VehiclePosition = new Metadata.JT809VehiclePositionProperties();
jT809_0X1200_0X1202_2.VehiclePosition.Day = 19;
jT809_0X1200_0X1202_2.VehiclePosition.Month = 7;
jT809_0X1200_0X1202_2.VehiclePosition.Year = 2012;
@@ -54,6 +59,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
jT809_0X1200_0X1202_2.VehiclePosition.Alarm = 257;

JT809_0x1200_0x1202 jT809_0X1200_0X1202_3 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202_3.VehiclePosition = new Metadata.JT809VehiclePositionProperties();
jT809_0X1200_0X1202_3.VehiclePosition.Day = 19;
jT809_0X1200_0X1202_3.VehiclePosition.Month = 7;
jT809_0X1200_0X1202_3.VehiclePosition.Year = 2012;
@@ -134,5 +140,58 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.State);
Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Alarm);
}

[Fact]
public void Test_2019_1()
{
JT809_0x1200_0x1203 jT809_0X1200_0X1203 = new JT809_0x1200_0x1203();
jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>();
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202.GNSSData = new Metadata.JT809VehiclePositionProperties_2019();
jT809_0X1200_0X1202.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密;
//jT809_0X1200_0X1202.GNSSData.GnssData = new byte[20];
jT809_0X1200_0X1202.GNSSData.PlatformId1 = "11111111111";
jT809_0X1200_0X1202.GNSSData.Alarm1 = 1;
jT809_0X1200_0X1202.GNSSData.PlatformId2 = "22222222222";
jT809_0X1200_0X1202.GNSSData.Alarm2 = 2;
jT809_0X1200_0X1202.GNSSData.PlatformId3 = "33333333333";
jT809_0X1200_0X1202.GNSSData.Alarm3 = 3;
jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202);
JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202();
jT809_0X1200_0X1202_1.GNSSData = new Metadata.JT809VehiclePositionProperties_2019();
jT809_0X1200_0X1202_1.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密;
jT809_0X1200_0X1202_1.GNSSData.PlatformId1 = "11111111111";
jT809_0X1200_0X1202_1.GNSSData.Alarm1 = 1;
jT809_0X1200_0X1202_1.GNSSData.PlatformId2 = "22222222222";
jT809_0X1200_0X1202_1.GNSSData.Alarm2 = 2;
jT809_0X1200_0X1202_1.GNSSData.PlatformId3 = "33333333333";
jT809_0X1200_0X1202_1.GNSSData.Alarm3 = 3;
jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_1);
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1203).ToHexString();
Assert.Equal("0201000000003131313131313131313131000000013232323232323232323232000000023333333333333333333333000000030100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex);

}

[Fact]
public void Test_2019_2()
{
var bytes = "0201000000003131313131313131313131000000013232323232323232323232000000023333333333333333333333000000030100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".ToHexBytes();
JT809_0x1200_0x1203 jT809_0X1200_0X1203 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1203>(bytes);
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1203.GNSS[0].GNSSData.Encrypt);
Assert.Equal("11111111111", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId1);
Assert.Equal(1u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm1);
Assert.Equal("22222222222", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId2);
Assert.Equal(2u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm2);
Assert.Equal("33333333333", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId3);
Assert.Equal(3u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm3);

Assert.Equal(JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1203.GNSS[1].GNSSData.Encrypt);
Assert.Equal("11111111111", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId1);
Assert.Equal(1u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm1);
Assert.Equal("22222222222", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId2);
Assert.Equal(2u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm2);
Assert.Equal("33333333333", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId3);
Assert.Equal(3u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm3);
}
}
}

+ 6
- 6
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs Dosyayı Görüntüle

@@ -50,26 +50,26 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
{
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = new JT809_0x1400_0x1402
{
SourcePlatformId = "30313233343536373839",
SourcePlatformId = "12345678900",
WarnType = JT809WarnType.偏离路线报警,
WarnTime = DateTime.Parse("2020-04-23"),
StartTime= DateTime.Parse("2020-04-23"),
EndTime= DateTime.Parse("2020-04-24"),
VehicleNo="粤A11111",
VehicleColor= JT809VehicleColorType.蓝色,
DestinationPlatformId = "30313233343536373839",
DestinationPlatformId = "12345678900",
InfoContent = "gfdf454553",
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1402).ToHexString();
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533", hex);
Assert.Equal("3132333435363738393030000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000013132333435363738393030000000000000000A67666466343534353533", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533".ToHexBytes();
var bytes = "3132333435363738393030000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000013132333435363738393030000000000000000A67666466343534353533".ToHexBytes();
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1402>(bytes);
Assert.Equal("30313233343536373839", jT809_0x1400_0x1402.SourcePlatformId);
Assert.Equal("12345678900", jT809_0x1400_0x1402.SourcePlatformId);
Assert.Equal("gfdf454553", jT809_0x1400_0x1402.InfoContent);
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1402.WarnType);
Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength);
@@ -78,7 +78,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1402.EndTime);
Assert.Equal("粤A11111", jT809_0x1400_0x1402.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1402.VehicleColor);
Assert.Equal("30313233343536373839", jT809_0x1400_0x1402.DestinationPlatformId);
Assert.Equal("12345678900", jT809_0x1400_0x1402.DestinationPlatformId);
}
}
}

+ 6
- 6
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1403Test.cs Dosyayı Görüntüle

@@ -43,27 +43,27 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
{
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = new JT809_0x1400_0x1403
{
SourcePlatformId = "30313233343536373839",
SourcePlatformId = "12345678900",
WarnType = JT809WarnType.偏离路线报警,
WarnTime = DateTime.Parse("2020-04-23"),
StartTime = DateTime.Parse("2020-04-23"),
EndTime = DateTime.Parse("2020-04-24"),
VehicleNo = "粤A11111",
VehicleColor = JT809VehicleColorType.蓝色,
DestinationPlatformId = "30313233343536373839",
DestinationPlatformId = "12345678900",
InfoContent = "gfdf454553",
DRVLineId=55
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1403).ToHexString();
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533", hex);
Assert.Equal("00000000000002DFDC1C34000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C1413131313131000000000000000000000000000100000000000002DFDC1C34000000370000000A67666466343534353533", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533".ToHexBytes();
var bytes = "00000000000002DFDC1C34000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C1413131313131000000000000000000000000000100000000000002DFDC1C34000000370000000A67666466343534353533".ToHexBytes();
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1403>(bytes);
Assert.Equal("30313233343536373839", jT809_0x1400_0x1403.SourcePlatformId);
Assert.Equal("12345678900", jT809_0x1400_0x1403.SourcePlatformId);
Assert.Equal("gfdf454553", jT809_0x1400_0x1403.InfoContent);
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1403.WarnType);
Assert.Equal((uint)10, jT809_0x1400_0x1403.InfoLength);
@@ -72,7 +72,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1403.EndTime);
Assert.Equal("粤A11111", jT809_0x1400_0x1403.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1403.VehicleColor);
Assert.Equal("30313233343536373839", jT809_0x1400_0x1403.DestinationPlatformId);
Assert.Equal("12345678900", jT809_0x1400_0x1403.DestinationPlatformId);
Assert.Equal(55u, jT809_0x1400_0x1403.DRVLineId);
}
}


+ 6
- 6
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9400_0x9402Test.cs Dosyayı Görüntüle

@@ -47,25 +47,25 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
{
JT809_0x9400_0x9402 jT809_0x9400_0x9402 = new JT809_0x9400_0x9402
{
SourcePlatformId = "30313233343536373839",
SourcePlatformId = "12345678901",
WarnType = JT809WarnType.劫警,
WarnTime = DateTime.Parse("2020-04-26 18:23:00"),
StartTime = DateTime.Parse("2020-04-26 18:23:00"),
EndTime = DateTime.Parse("2020-04-26 19:23:00"),
VehicleNo= "粤A12345",
VehicleColor= JT809VehicleColorType.蓝色,
DestinationPlatformId = "30313233343536373839",
DestinationPlatformId = "12345678901",
DRVLineId=22,
WarnContent = "劫警",
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9402).ToHexString();
Assert.Equal("0000000000000000000000000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000000000000000000001600000004BDD9BEAF", hex);
Assert.Equal("00000000000002DFDC1C35000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000002DFDC1C350000001600000004BDD9BEAF", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0000000000000000000000000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000000000000000000001600000004BDD9BEAF".ToHexBytes();
var bytes = "00000000000002DFDC1C35000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000002DFDC1C350000001600000004BDD9BEAF".ToHexBytes();
JT809_0x9400_0x9402 jT809_0x9400_0x9402 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9402>(bytes);
Assert.Equal(JT809WarnType.劫警, jT809_0x9400_0x9402.WarnType);
Assert.Equal(DateTime.Parse("2020-04-26 18:23:00"), jT809_0x9400_0x9402.WarnTime);
@@ -74,8 +74,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(DateTime.Parse("2020-04-26 19:23:00"), jT809_0x9400_0x9402.EndTime);
Assert.Equal("粤A12345", jT809_0x9400_0x9402.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x9400_0x9402.VehicleColor);
Assert.Equal("30313233343536373839", jT809_0x9400_0x9402.DestinationPlatformId);
Assert.Equal("30313233343536373839", jT809_0x9400_0x9402.SourcePlatformId);
Assert.Equal("12345678901", jT809_0x9400_0x9402.DestinationPlatformId);
Assert.Equal("12345678901", jT809_0x9400_0x9402.SourcePlatformId);
Assert.Equal(22u, jT809_0x9400_0x9402.DRVLineId);
Assert.Equal(4u, jT809_0x9400_0x9402.WarnLength);
}


+ 6
- 6
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9400_0x9403Test.cs Dosyayı Görüntüle

@@ -47,24 +47,24 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
{
JT809_0x9400_0x9403 jT809_0x9400_0x9403 = new JT809_0x9400_0x9403
{
SourcePlatformId = "30313233343536373839",
SourcePlatformId = "12345678901",
WarnType = JT809WarnType.疲劳驾驶报警,
WarnTime = DateTime.Parse("2020-04-26 18:24:00"),
StartTime = DateTime.Parse("2020-04-26 18:24:00"),
EndTime = DateTime.Parse("2020-04-26 19:24:00"),
VehicleNo = "粤A5647",
VehicleColor = JT809VehicleColorType.黄色,
DestinationPlatformId = "30313233343536373839",
DestinationPlatformId = "12345678901",
WarnContent = "疲劳驾驶报警",
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9403).ToHexString();
Assert.Equal("00000000000000000000000002000000005EA56140000000005EA56140000000005EA56F50D4C141353634370000000000000000000000000000020000000000000000000000000000000000000CC6A3C0CDBCDDCABBB1A8BEAF", hex);
Assert.Equal("00000000000002DFDC1C350002000000005EA56140000000005EA56140000000005EA56F50D4C1413536343700000000000000000000000000000200000000000002DFDC1C35000000000000000CC6A3C0CDBCDDCABBB1A8BEAF", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00000000000000000000000002000000005EA56140000000005EA56140000000005EA56F50D4C141353634370000000000000000000000000000020000000000000000000000000000000000000CC6A3C0CDBCDDCABBB1A8BEAF".ToHexBytes();
var bytes = "00000000000002DFDC1C350002000000005EA56140000000005EA56140000000005EA56F50D4C1413536343700000000000000000000000000000200000000000002DFDC1C35000000000000000CC6A3C0CDBCDDCABBB1A8BEAF".ToHexBytes();
JT809_0x9400_0x9403 jT809_0x9400_0x9403 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9403>(bytes);
Assert.Equal(JT809WarnType.疲劳驾驶报警, jT809_0x9400_0x9403.WarnType);
Assert.Equal(DateTime.Parse("2020-04-26 18:24:00"), jT809_0x9400_0x9403.WarnTime);
@@ -72,8 +72,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(DateTime.Parse("2020-04-26 19:24:00"), jT809_0x9400_0x9403.EndTime);
Assert.Equal("疲劳驾驶报警", jT809_0x9400_0x9403.WarnContent);
Assert.Equal((uint)12, jT809_0x9400_0x9403.WarnLength);
Assert.Equal("30313233343536373839", jT809_0x9400_0x9403.DestinationPlatformId);
Assert.Equal("30313233343536373839", jT809_0x9400_0x9403.SourcePlatformId);
Assert.Equal("12345678901", jT809_0x9400_0x9403.DestinationPlatformId);
Assert.Equal("12345678901", jT809_0x9400_0x9403.SourcePlatformId);
}
}
}

+ 2
- 1
src/JT809.Protocol/MessageBody/JT809_0x1200.cs Dosyayı Görüntüle

@@ -4,6 +4,7 @@ using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;

namespace JT809.Protocol.MessageBody
{
@@ -70,7 +71,7 @@ namespace JT809.Protocol.MessageBody
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
catch(Exception ex)
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}


+ 17
- 17
src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1201.cs Dosyayı Görüntüle

@@ -49,21 +49,21 @@ namespace JT809.Protocol.SubMessageBody
JT809_0x1200_0x1201 value = new JT809_0x1200_0x1201();
if(config.Version== JT809Version.JTT2011)
{
value.PlateformId = reader.ReadBigNumber(11);
value.ProducerId = reader.ReadBigNumber(11);
value.PlateformId = reader.ReadString(11);
value.ProducerId = reader.ReadString(11);
#warning 此处应该改成大端模式读取数据吧
value.TerminalModelType = reader.ReadBigNumber(20);
value.TerminalId = reader.ReadBigNumber(7);
value.TerminalModelType = reader.ReadString(20);
value.TerminalId = reader.ReadString(7);
value.TerminalId = value.TerminalId.ToUpper();
value.TerminalSimCode = reader.ReadString(12);
}
else
{
value.PlateformId = reader.ReadBigNumber(11);
value.ProducerId = reader.ReadBigNumber(11);
value.TerminalModelType = reader.ReadBigNumber(30);
value.PlateformId = reader.ReadString(11);
value.ProducerId = reader.ReadString(11);
value.TerminalModelType = reader.ReadString(30);
value.IMIEId = reader.ReadString(15);
value.TerminalId = reader.ReadBigNumber(30);
value.TerminalId = reader.ReadString(30);
value.TerminalId = value.TerminalId.ToUpper();
value.TerminalSimCode = reader.ReadString(13);
}
@@ -74,21 +74,21 @@ namespace JT809.Protocol.SubMessageBody
{
if(config.Version== JT809Version.JTT2011)
{
writer.WriteBigNumber(value.PlateformId, 11);
writer.WriteBigNumber(value.ProducerId, 11);
writer.WriteStringPadRight(value.PlateformId, 11);
writer.WriteStringPadRight(value.ProducerId, 11);
#warning 此处应该改成大端模式读取数据吧
writer.WriteBigNumber(value.TerminalModelType, 20);
writer.WriteBigNumber(value.TerminalId.ToUpper(), 7);
writer.WriteStringPadRight(value.TerminalModelType, 20);
writer.WriteStringPadRight(value.TerminalId.ToUpper(), 7);
writer.WriteStringPadLeft(value.TerminalSimCode, 12);
}
else
{
writer.WriteBigNumber(value.PlateformId, 11);
writer.WriteBigNumber(value.ProducerId, 11);
writer.WriteBigNumber(value.TerminalModelType, 30);
writer.WriteStringPadRight(value.PlateformId, 11);
writer.WriteStringPadRight(value.ProducerId, 11);
writer.WriteStringPadRight(value.TerminalModelType, 30);
writer.WriteStringPadRight(value.IMIEId, 15);
writer.WriteBigNumber(value.TerminalId.ToUpper(), 30);
writer.WriteStringPadLeft(value.TerminalSimCode, 13);
writer.WriteStringPadRight(value.TerminalId.ToUpper(), 30);
writer.WriteStringPadRight(value.TerminalSimCode, 13);
}
}
}


+ 7
- 7
src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1202.cs Dosyayı Görüntüle

@@ -54,11 +54,11 @@ namespace JT809.Protocol.SubMessageBody
value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte();
value.GNSSData.DataLength = reader.ReadUInt32();
value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray();
value.GNSSData.PlatformId1 = reader.ReadBigNumber(11);
value.GNSSData.PlatformId1 = reader.ReadString(11);
value.GNSSData.Alarm1 = reader.ReadUInt32();
value.GNSSData.PlatformId2 = reader.ReadBigNumber(11);
value.GNSSData.PlatformId2 = reader.ReadString(11);
value.GNSSData.Alarm2 = reader.ReadUInt32();
value.GNSSData.PlatformId3 = reader.ReadBigNumber(11);
value.GNSSData.PlatformId3 = reader.ReadString(11);
value.GNSSData.Alarm3 = reader.ReadUInt32();
}
return value;
@@ -90,13 +90,13 @@ namespace JT809.Protocol.SubMessageBody
writer.WriteByte((byte)value.GNSSData.Encrypt);
writer.Skip(4, out int position);
writer.WriteArray(value.GNSSData.GnssData);
writer.WriteBigNumber(value.GNSSData.PlatformId1,11);
writer.WriteUInt32Return((uint)(writer.GetCurrentPosition() - position - 4), position);
writer.WriteStringPadRight(value.GNSSData.PlatformId1,11);
writer.WriteUInt32(value.GNSSData.Alarm1);
writer.WriteBigNumber(value.GNSSData.PlatformId2,11);
writer.WriteStringPadRight(value.GNSSData.PlatformId2,11);
writer.WriteUInt32(value.GNSSData.Alarm2);
writer.WriteBigNumber(value.GNSSData.PlatformId3,11);
writer.WriteStringPadRight(value.GNSSData.PlatformId3,11);
writer.WriteUInt32(value.GNSSData.Alarm3);
writer.WriteUInt32Return((uint)(writer.GetCurrentPosition() - position - 4), position);
}
}
}


+ 4
- 4
src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs Dosyayı Görüntüle

@@ -80,7 +80,7 @@ namespace JT809.Protocol.SubMessageBody
}
else
{
value.SourcePlatformId = reader.ReadBigNumber(11);
value.SourcePlatformId = reader.ReadString(11);
}
value.WarnType = (JT809WarnType)reader.ReadUInt16();
value.WarnTime = reader.ReadUTCDateTime();
@@ -95,7 +95,7 @@ namespace JT809.Protocol.SubMessageBody
#warning 此处车牌号文档长度有误,使用旧版长度21
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.DestinationPlatformId = reader.ReadBigNumber(11);
value.DestinationPlatformId = reader.ReadString(11);
value.DRVLineId = reader.ReadUInt32();
}
value.InfoLength = reader.ReadUInt32();
@@ -111,7 +111,7 @@ namespace JT809.Protocol.SubMessageBody
}
else
{
writer.WriteBigNumber(value.SourcePlatformId,11);
writer.WriteStringPadRight(value.SourcePlatformId,11);
}
writer.WriteUInt16((ushort)value.WarnType);
writer.WriteUTCDateTime(value.WarnTime);
@@ -125,7 +125,7 @@ namespace JT809.Protocol.SubMessageBody
writer.WriteUTCDateTime(value.EndTime);
writer.WriteStringPadRight(value.VehicleNo,21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteBigNumber(value.DestinationPlatformId,11);
writer.WriteStringPadRight(value.DestinationPlatformId,11);
writer.WriteUInt32(value.DRVLineId);
}
// 先计算内容长度(汉字为两个字节)


Yükleniyor…
İptal
Kaydet