public void Test1() { //"126 131 0 0 13 18 52 86 120 144 1 0 11 5 115 109 97 108 108 99 104 105 32 53 49 56 24 126" jT808SessionServiceDefaultImpl = ServiceProvider.GetService <IJT808SessionService>(); jT808UnificationSendService = ServiceProvider.GetService <IJT808UnificationSendService>(); jT808SessionServiceDefaultImpl.GetUdpAll(); string no = "123456789001"; // 文本信息包 JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create(no, new JT808_0x8300 { TextFlag = 5, TextInfo = "smallchi 518" }); var data = JT808Serializer.Serialize(jT808Package2); JT808ResultDto <bool> jt808Result = jT808UnificationSendService.Send(no, data); Thread.Sleep(1000); Assert.AreEqual(200, jt808Result.Code); Assert.IsTrue(jt808Result.Data); }
public void Test1_1() { byte[] bytes = "7E0104000C000123456789000A00140100000001040000000A907E".ToHexBytes(); JT808Package jT808_0X8104 = JT808Serializer.Deserialize <JT808Package>(bytes); Assert.Equal(Enums.JT808MsgId.查询终端参数应答.ToUInt16Value(), jT808_0X8104.Header.MsgId); Assert.Equal(10, jT808_0X8104.Header.MsgNum); Assert.Equal("123456789", jT808_0X8104.Header.TerminalPhoneNo); JT808_0x0104 JT808Bodies = (JT808_0x0104)jT808_0X8104.Bodies; Assert.Equal(20, JT808Bodies.MsgNum); Assert.Equal(1, JT808Bodies.AnswerParamsCount); foreach (var item in JT808Bodies.ParamList) { Assert.Equal(0x0001u, ((JT808_0x8103_0x0001)item).ParamId); Assert.Equal(4, ((JT808_0x8103_0x0001)item).ParamLength); Assert.Equal(10u, ((JT808_0x8103_0x0001)item).ParamValue); } }
public void Test1() { JT808Package dt1Package = new JT808Package(); dt1Package.Header = new JT808Header { MsgId = 0x93, ManualMsgNum = 126, TerminalPhoneNo = "1234567891" }; DT1Demo8 dT1Demo8 = new DT1Demo8(); dT1Demo8.Age1 = 18; dT1Demo8.Sex1 = 2; dt1Package.Bodies = dT1Demo8; byte[] dt1Data = JT808Serializer.Serialize(dt1Package); var dt1Hex = dt1Data.ToHexString(); Assert.Equal("7E00930003001234567891007D02020012677E", dt1Hex); }
public void Test1_1_1() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = Enums.JT808MsgId.位置信息汇报.ToUInt16Value(), ManualMsgNum = 1, TerminalPhoneNo = "1122334455", }; JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 { AlarmFlag = 1, Altitude = 40, GPSTime = DateTime.Parse("2021-08-30 18:17:10"), Lat = 12222222, Lng = 132444444, Speed = 60, Direction = 0, StatusFlag = 2, BasicLocationAttachData = new Dictionary <byte, JT808_0x0200_BodyBase>(), CustomLocationAttachData = new Dictionary <byte, JT808_0x0200_CustomBodyBase>() }; jT808UploadLocationRequest.BasicLocationAttachData.Add(JT808Constants.JT808_0x0200_0x01, new JT808_0x0200_0x01 { Mileage = 100 }); jT808UploadLocationRequest.BasicLocationAttachData.Add(JT808Constants.JT808_0x0200_0x02, new JT808_0x0200_0x02 { Oil = 55 }); jT808UploadLocationRequest.CustomLocationAttachData.Add(0xDF, new JT808LocationAttachImpl0xDF { TestValue = new byte[66] }); jT808Package.Bodies = jT808UploadLocationRequest; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E0200006A0011223344550001000000010000000200BA7F0E07E4F11C0028003C000021083018171001040000006402020037DF42000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000677E", hex); }
public void Test1() { JT808Package jT808Package = new JT808Package { Header = new JT808Header { MsgId = Enums.JT808MsgId.车辆控制应答.ToUInt16Value(), MsgNum = 8888, TerminalPhoneNo = "112233445566", } }; JT808_0x0500 jT808_0X0500 = new JT808_0x0500(); JT808_0x0200 JT808_0x0200_1 = new JT808_0x0200 { AlarmFlag = 1, Altitude = 40, GPSTime = DateTime.Parse("2018-07-15 10:10:10"), Lat = 12222222, Lng = 132444444, Speed = 60, Direction = 0, StatusFlag = 2, JT808LocationAttachData = new Dictionary <byte, JT808_0x0200_BodyBase>() }; JT808_0x0200_1.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x01, new JT808_0x0200_0x01 { Mileage = 100 }); JT808_0x0200_1.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x02, new JT808_0x0200_0x02 { Oil = 55 }); jT808_0X0500.JT808_0x0200 = JT808_0x0200_1; jT808_0X0500.MsgNum = 1000; jT808Package.Bodies = jT808_0X0500; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E0500002811223344556622B803E8000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037B57E".Length, hex.Length); Assert.Equal("7E0500002811223344556622B803E8000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037B57E", hex); }
public void Test2() { // 心跳会话包 JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789001"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1)); // 心跳会话包 JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789002"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package2)); // 心跳会话包 JT808Package jT808Package3 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789003"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package3)); // 心跳会话包 JT808Package jT808Package4 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789004"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package4)); // 心跳会话包 JT808Package jT808Package5 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789005"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package5)); // 异步的需要延时下 Thread.Sleep(1000); HttpClient httpClient = new HttpClient(); // 调用内置的http服务接收文本信息下发 var result = httpClient.GetAsync("http://127.0.0.1:828/jt808api/GetAtomicCounter").Result; string content = result.Content.ReadAsStringAsync().Result; JT808ResultDto <JT808AtomicCounterDto> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <JT808AtomicCounterDto> >(content); Assert.Equal(200, jt808Result.Code); Assert.Equal(5, jt808Result.Data.MsgSuccessCount); Assert.Equal(0, jt808Result.Data.MsgFailCount); SimpleTcpClient.Down(); }
public void Test2() { byte[] bytes = "7E 05 00 00 2A 11 22 33 44 55 66 22 B8 03 E8 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 07 15 10 10 10 01 04 00 00 00 64 02 02 00 37 00 00 B7 7E".ToHexBytes(); JT808Package jT808Package = JT808Serializer.Deserialize <JT808Package>(bytes); Assert.Equal(Enums.JT808MsgId.车辆控制应答.ToUInt16Value(), jT808Package.Header.MsgId); Assert.Equal(8888, jT808Package.Header.MsgNum); Assert.Equal("112233445566", jT808Package.Header.TerminalPhoneNo); JT808_0x0500 JT808Bodies = (JT808_0x0500)jT808Package.Bodies; Assert.Equal(1000, JT808Bodies.MsgNum); Assert.Equal((uint)1, JT808Bodies.JT808_0x0200.AlarmFlag); Assert.Equal(DateTime.Parse("2018-07-15 10:10:10"), JT808Bodies.JT808_0x0200.GPSTime); Assert.Equal(12222222, JT808Bodies.JT808_0x0200.Lat); Assert.Equal(132444444, JT808Bodies.JT808_0x0200.Lng); Assert.Equal(0, JT808Bodies.JT808_0x0200.Direction); Assert.Equal(60, JT808Bodies.JT808_0x0200.Speed); Assert.Equal((uint)2, JT808Bodies.JT808_0x0200.StatusFlag); Assert.Equal(100, ((JT808LocationAttachImpl0x01)JT808Bodies.JT808_0x0200.JT808LocationAttachData[JT808LocationAttachBase.AttachId0x01]).Mileage); Assert.Equal(55, ((JT808LocationAttachImpl0x02)JT808Bodies.JT808_0x0200.JT808LocationAttachData[JT808LocationAttachBase.AttachId0x02]).Oil); }
public void Test2() { var bytes = "7E01000021000123456789000A002800323132333400746B3132333435004348493132330001D4C1413132333435857E".ToHexBytes(); JT808Package jT808_0X0100 = JT808Serializer.Deserialize <JT808Package>(bytes); // 采用2011协议 的终端注册消息解析 Assert.Equal(JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId); Assert.Equal(1, jT808_0X0100.Header.ProtocolVersion); Assert.Equal(10, jT808_0X0100.Header.MsgNum); Assert.Equal("123456789", jT808_0X0100.Header.TerminalPhoneNo); JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies; Assert.Equal(40, JT808Bodies.AreaID); Assert.Equal(50, JT808Bodies.CityOrCountyId); Assert.Equal("1234", JT808Bodies.MakerId); Assert.Equal(1, JT808Bodies.PlateColor); Assert.Equal("粤A12345", JT808Bodies.PlateNo); Assert.Equal("CHI123", JT808Bodies.TerminalId); Assert.Equal("tk12345", JT808Bodies.TerminalModel); }
public void Test5() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = Enums.JT808MsgId.终端注册应答.ToUInt16Value(), MsgNum = 10, TerminalPhoneNo = "12345678900", }; jT808Package.Bodies = new JT808_0x8100 { Code = "zssdaf23124sfdsc", JT808TerminalRegisterResult = Enums.JT808TerminalRegisterResult.成功, MsgNum = 100 }; //"7E 81 00 00 13 01 23 45 67 89 00 00 0A 00 64 00 7A 73 73 64 61 66 32 33 31 32 34 73 66 64 73 63 3B 7E" var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E81000013012345678900000A0064007A7373646166323331323473666473633B7E", hex); }
public void Test3() { JT808Package jT808Package = new JT808Package(); JT808Header header = new JT808Header(); header.MsgId = 0x9102; header.ManualMsgNum = 1; header.TerminalPhoneNo = "12345679810"; jT808Package.Header = header; JT808_0x9102 jT808_0X9102 = new JT808_0x9102(); jT808_0X9102.ChannelNo = 1; jT808_0X9102.ControlCmd = 1; jT808_0X9102.CloseAVData = 0; jT808_0X9102.StreamType = 0; jT808Package.Bodies = jT808_0X9102; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); //7E910200040123456798100001010100001E7E Assert.Equal("7E910200040123456798100001010100001E7E", hex); }
public void Test1() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = Enums.JT808MsgId.终端通用应答.ToUInt16Value(), MsgNum = 1203, TerminalPhoneNo = "012345678900" }; jT808Package.Bodies = new JT808_0x0001 { MsgId = Enums.JT808MsgId.终端心跳.ToUInt16Value(), MsgNum = 1000, JT808TerminalResult = Enums.JT808TerminalResult.Success }; //"7E 00 01 00 05 01 23 45 67 89 00 04 B3 03 E8 00 02 00 D3 7E" var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E0001000501234567890004B303E8000200D37E", hex); }
public void Test1() { //"7E 02 01 00 2A 11 22 33 44 55 66 22 B8 30 39 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 07 15 10 10 10 01 04 00 00 00 64 02 02 00 37 00 00 53 7E" JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = Enums.JT808MsgId.位置信息查询应答.ToUInt16Value(), MsgNum = 8888, TerminalPhoneNo = "112233445566", }; JT808_0x0201 jT808_0X0201 = new JT808_0x0201(); jT808_0X0201.MsgNum = 12345; JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200(); jT808UploadLocationRequest.AlarmFlag = 1; jT808UploadLocationRequest.Altitude = 40; jT808UploadLocationRequest.GPSTime = DateTime.Parse("2018-07-15 10:10:10"); jT808UploadLocationRequest.Lat = 12222222; jT808UploadLocationRequest.Lng = 132444444; jT808UploadLocationRequest.Speed = 60; jT808UploadLocationRequest.Direction = 0; jT808UploadLocationRequest.StatusFlag = 2; jT808UploadLocationRequest.JT808LocationAttachData = new Dictionary <byte, JT808LocationAttachBase>(); jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808LocationAttachBase.AttachId0x01, new JT808LocationAttachImpl0x01 { Mileage = 100 }); jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808LocationAttachBase.AttachId0x02, new JT808LocationAttachImpl0x02 { Oil = 55 }); jT808_0X0201.Position = jT808UploadLocationRequest; jT808Package.Bodies = jT808_0X0201; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E0201002A11223344556622B83039000000010000000200BA7F0E07E4F11C0028003C0000180715101010010400000064020200370000537E", hex); }
public void Test1() { IJT808Config jT808Config = new DefaultGlobalConfig(); jT808Config.JT808_0X0200_Custom_Factory.SetMap <JT808_0x0200_DT1_0x81>(); JT808Serializer demo5JT808Serializer = new JT808Serializer(jT808Config); JT808Package jT808Package = JT808MsgId.位置信息汇报.Create("123456789012", new JT808_0x0200 { AlarmFlag = 1, Altitude = 40, GPSTime = DateTime.Parse("2018-12-20 20:10:10"), Lat = 12222222, Lng = 132444444, Speed = 60, Direction = 0, StatusFlag = 2, JT808CustomLocationAttachData = new Dictionary <byte, JT808_0x0200_CustomBodyBase> { { 0x81, new JT808_0x0200_DT1_0x81 { Age = 15, Gender = 1, UserName = "******" } } } }); byte[] data = demo5JT808Serializer.Serialize(jT808Package); var jT808PackageResult = demo5JT808Serializer.Deserialize <JT808Package>(data); JT808_0x0200 jT808_0X0200 = jT808PackageResult.Bodies as JT808_0x0200; var attach = DeviceTypeFactory.Create(cache[jT808PackageResult.Header.TerminalPhoneNo], jT808_0X0200.JT808CustomLocationAttachData); var extJson = attach.ExtData.Data.ToString(Formatting.None); var attachinfo81 = (JT808_0x0200_DT1_0x81)attach.JT808CustomLocationAttachData[0x81]; Assert.Equal((uint)15, attachinfo81.Age); Assert.Equal(1, attachinfo81.Gender); Assert.Equal("smallchi", attachinfo81.UserName); }
public void Test1() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = Enums.JT808MsgId.车辆控制应答.ToUInt16Value(), MsgNum = 8888, TerminalPhoneNo = "112233445566", }; JT808_0x0500 jT808_0X0500 = new JT808_0x0500(); JT808_0x0200 JT808_0x0200_1 = new JT808_0x0200(); JT808_0x0200_1.AlarmFlag = 1; JT808_0x0200_1.Altitude = 40; JT808_0x0200_1.GPSTime = DateTime.Parse("2018-07-15 10:10:10"); JT808_0x0200_1.Lat = 12222222; JT808_0x0200_1.Lng = 132444444; JT808_0x0200_1.Speed = 60; JT808_0x0200_1.Direction = 0; JT808_0x0200_1.StatusFlag = 2; JT808_0x0200_1.JT808LocationAttachData = new Dictionary <byte, JT808LocationAttachBase>(); JT808_0x0200_1.JT808LocationAttachData.Add(JT808LocationAttachBase.AttachId0x01, new JT808LocationAttachImpl0x01 { Mileage = 100 }); JT808_0x0200_1.JT808LocationAttachData.Add(JT808LocationAttachBase.AttachId0x02, new JT808LocationAttachImpl0x02 { Oil = 55 }); jT808_0X0500.JT808_0x0200 = JT808_0x0200_1; jT808_0X0500.MsgNum = 1000; jT808Package.Bodies = jT808_0X0500; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); //"7E0500002A11223344556622B803E8000000010000000200BA7F0E07E4F11C0028003C0000180715101010010400000064020200370000B77E" Console.WriteLine(hex); Trace.WriteLine(hex); Assert.Equal("7E0500002A11223344556622B803E8000000010000000200BA7F0E07E4F11C0028003C0000180715101010010400000064020200370000B77E", hex); }
public void Test1() { JT808Package jT808_0X0900 = new JT808Package(); jT808_0X0900.Header = new JT808Header { MsgId = Enums.JT808MsgId.数据上行透传.ToUInt16Value(), MsgNum = 10, TerminalPhoneNo = "123456789", }; jT808_0X0900.Bodies = new JT808_0x0900 { JT808_0x0900_BodyBase = new JT808_0x0900_0x83() { PassthroughContent = "smallchi" }, PassthroughType = 0x83 }; var hex = JT808Serializer.Serialize(jT808_0X0900).ToHexString(); Assert.Equal("7E09000009000123456789000A83736D616C6C6368691D7E", hex); }
public void Test1() { JT808Package jT808Package = new JT808Package { Header = new JT808Header { MsgId = Enums.JT808MsgId.终端通用应答.ToUInt16Value(), ManualMsgNum = 1203, TerminalPhoneNo = "012345678900", }, Bodies = new JT808_0x0001_Replace { ReplyMsgId = Enums.JT808MsgId.终端心跳.ToUInt16Value(), ReplyMsgNum = 1000, TerminalResult = Enums.JT808TerminalResult.Success, Test = 168 } }; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E0001000701234567890004B303E800020000A8797E", hex); }
/// <summary> /// 平台通用应答 /// </summary> /// <returns></returns> public byte[] Response(string phoneno) { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = JT808MsgId.平台通用应答.ToUInt16Value(), MsgNum = 126, TerminalPhoneNo = phoneno }; JT808_0x8001 jT808_0x0200 = new JT808_0x8001 { MsgNum = 126, MsgId = JT808MsgId.平台通用应答.ToUInt16Value(), JT808PlatformResult = JT808PlatformResult.成功 }; jT808Package.Bodies = jT808_0x0200; return(_JT808Serializer.Serialize(jT808Package)); }
public void Test2019_2() { byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes(); JT808Package jT808_0X0100 = JT808Serializer.Deserialize <JT808Package>(bytes); Assert.Equal(JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId); Assert.Equal(1, jT808_0X0100.Header.ProtocolVersion); Assert.Equal(JT808Version.JTT2019, jT808_0X0100.Version); Assert.True(jT808_0X0100.Header.MessageBodyProperty.VersionFlag); Assert.Equal(10, jT808_0X0100.Header.MsgNum); Assert.Equal("123456789", jT808_0X0100.Header.TerminalPhoneNo); JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies; Assert.Equal(40, JT808Bodies.AreaID); Assert.Equal(50, JT808Bodies.CityOrCountyId); Assert.Equal("1234".PadLeft(11, '0'), JT808Bodies.MakerId); Assert.Equal(1, JT808Bodies.PlateColor); Assert.Equal("粤A12345", JT808Bodies.PlateNo); Assert.Equal("CHI123".PadLeft(30, '0'), JT808Bodies.TerminalId); Assert.Equal("smallchi123".PadLeft(30, '0'), JT808Bodies.TerminalModel); }
public void Test1() { JT808Package jT808_0X0100 = new JT808Package(); jT808_0X0100.Header = new JT808Header { MsgId = Enums.JT808MsgId.终端注册, MsgNum = 10, TerminalPhoneNo = "123456789", }; jT808_0X0100.Bodies = new JT808_0x0100 { AreaID = 40, CityOrCountyId = 50, MakerId = "1234", PlateColor = 1, PlateNo = "粤A12345", TerminalId = "CHI123", TerminalModel = "smallchi123" }; var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString(); }
public byte[] ReportPosition() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = JT808.Protocol.Enums.JT808MsgId.位置信息汇报.ToUInt16Value(), MsgNum = 126, TerminalPhoneNo = "123456789012" }; JT808_0x0200 jT808_0x0200 = new JT808_0x0200 { AlarmFlag = 1, Altitude = 40, GPSTime = DateTime.Parse("2018-10-15 10:10:10"), Lat = 12222222, Lng = 132444444, Speed = 60, Direction = 0, StatusFlag = 2, JT808LocationAttachData = new Dictionary <byte, JT808_0x0200_BodyBase>() }; jT808_0x0200.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x01, new JT808_0x0200_0x01 { Mileage = 100 }); jT808_0x0200.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x02, new JT808_0x0200_0x02 { Oil = 125 }); jT808Package.Bodies = jT808_0x0200; return(_JT808Serializer.Serialize(jT808Package)); }
public void Test1() { JT808Package jT808Package = new JT808Package { Header = new JT808Header { MsgId = Enums.JT808MsgId.终端控制.ToUInt16Value(), ManualMsgNum = 1, TerminalPhoneNo = "12345678900", }, Bodies = new JT808_0x8105 { CommandWord = 1, CustomCommandParameters = new List <ICommandParameter> { new Koike1CommandParameter { Value = 23 }, new Koike2CommandParameter { Value = "SmallChi" }, new Koike3CommandParameter { Value = new Koike3Object { Value1 = 0xff, Value2 = "Happy" } } } } }; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E8105002A0123456789000001013B3B3B3B3B3B3B3B3B3B3B3B3B000000173B536D616C6C43686900003BFF486170707900000000003B827E", hex); }
public static void CreateMain(string terminalPhoneNo, string serverIPAddress, JT808Serializer JT808Serializer, IJT808DotNettyWebApi JT808DotNettyWebApiClient) { JT808Package jT808Package = new JT808Package(); JT808Header header = new JT808Header(); header.MsgId = 0x9101; header.MsgNum = 2; header.TerminalPhoneNo = terminalPhoneNo; jT808Package.Header = header; JT808_0x9101 jT808_0X9101 = new JT808_0x9101(); jT808_0X9101.ServerIPAddress = serverIPAddress; jT808_0X9101.ServerVideoChannelTcpPort = 1808; jT808_0X9101.ServerVideoChannelUdpPort = 0; jT808_0X9101.LogicalChannelNo = 1; jT808_0X9101.DataType = 1; jT808_0X9101.StreamType = 0; jT808Package.Bodies = jT808_0X9101; var data = JT808Serializer.Serialize(jT808Package); Console.WriteLine(JsonConvert.SerializeObject(data.ToHexString())); var tmpSend = JsonConvert.SerializeObject(new JT808UnificationSendRequestDto { TerminalPhoneNo = terminalPhoneNo, Data = data }); //var result = JT808DotNettyWebApiClient.UnificationTcpSend(new JT808UnificationSendRequestDto //{ // TerminalPhoneNo = terminalPhoneNo, // Data = data //}).GetAwaiter().GetResult(); //Console.WriteLine(JsonConvert.SerializeObject(result)); Console.WriteLine(tmpSend); }
public void TestJT808_0x0100_Serialize() { for (int i = 0; i < N; i++) { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = MsgId0x0100, MsgNum = (ushort)(i + 1), TerminalPhoneNo = "112233445566", }; JT808_0x0100 jT808_0X0100 = new JT808_0x0100(); jT808_0X0100.AreaID = 12345; jT808_0X0100.CityOrCountyId = 23454; jT808_0X0100.PlateColor = 0x02; jT808_0X0100.PlateNo = "测A123456"; jT808_0X0100.TerminalId = "1234567"; jT808_0X0100.TerminalModel = "1234567890000"; jT808_0X0100.MakerId = "12345"; jT808Package.Bodies = jT808_0X0100; var result = JT808Serializer.Serialize(jT808Package); } }
public void Test1() { //"7E 83 00 00 0D 01 23 45 67 89 00 00 01 05 73 6D 61 6C 6C 63 68 69 20 35 31 38 02 7E" JT808Package jT808Package = new JT808Package { Header = new JT808Header { MsgId = Enums.JT808MsgId.文本信息下发.ToUInt16Value(), MsgNum = 1, TerminalPhoneNo = "012345678900", } }; JT808_0x8300 jT808TextSend = new JT808_0x8300 { TextInfo = "smallchi 518", TextFlag = 5 }; jT808Package.Bodies = jT808TextSend; string hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E8300000D012345678900000105736D616C6C63686920353138027E", hex); }
public void Test3() { JT808Package jT808Package = new JT808Package(); JT808Header header = new JT808Header(); header.MsgId = 0x9101; header.MsgNum = 1; header.TerminalPhoneNo = "12345679810"; jT808Package.Header = header; JT808_0x9101 jT808_0X9101 = new JT808_0x9101(); jT808_0X9101.ServerIPAddress = "127.0.0.1"; jT808_0X9101.ServerVideoChannelTcpPort = 1888; jT808_0X9101.ServerVideoChannelUdpPort = 0; jT808_0X9101.LogicalChannelNo = 1; jT808_0X9101.DataType = 1; jT808_0X9101.StreamType = 1; jT808Package.Bodies = jT808_0X9101; var hex = JT808Serializer.Serialize(jT808Package).ToHexString(); Assert.Equal("7E910100110123456798100001093132372E302E302E31076000000101014C7E", hex); //7E910100110123456798100001093132372E302E302E31076000000101014C7E }
/// <summary> /// 位置信息汇报 /// </summary> /// <returns></returns> static JT808Package GetJT808PositionData() { JT808Package jT808Package = new JT808Package(); jT808Package.Header = new JT808Header { MsgId = (ushort)JT808.Protocol.Enums.JT808MsgId.位置信息汇报, ManualMsgNum = 0, TerminalPhoneNo = "123456789012" }; JT808_0x0200 jT808_0x0200 = new JT808_0x0200(); jT808_0x0200.AlarmFlag = 1; jT808_0x0200.Altitude = 40; jT808_0x0200.GPSTime = DateTime.Parse("2018-10-15 10:10:10"); jT808_0x0200.Lat = 12222222; jT808_0x0200.Lng = 132444444; jT808_0x0200.Speed = 60; jT808_0x0200.Direction = 0; jT808_0x0200.StatusFlag = 2; jT808_0x0200.JT808LocationAttachData = new Dictionary <byte, JT808_0x0200_BodyBase>(); jT808_0x0200.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x01, new JT808_0x0200_0x01 { Mileage = 100 }); jT808_0x0200.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x02, new JT808_0x0200_0x02 { Oil = 125 }); jT808Package.Bodies = jT808_0x0200; return(jT808Package); }
public void ReadOnlySpanTest1() { IJT808Config jT808Config = new DefaultGlobalConfig(); JT808Serializer jT808Serializer = new JT808Serializer(jT808Config); JT808Package jT808Package = new JT808Package { Header = new JT808Header { MsgId = Enums.JT808MsgId.终端通用应答.ToUInt16Value(), MsgNum = 1203, TerminalPhoneNo = "012345678900", MessageBodyProperty = new JT808HeaderMessageBodyProperty() }, Bodies = new JT808_0x0001 { ReplyMsgId = Enums.JT808MsgId.终端心跳.ToUInt16Value(), ReplyMsgNum = 1000, JT808TerminalResult = Enums.JT808TerminalResult.Success } }; var hexSpan = jT808Serializer.SerializeReadOnlySpan(jT808Package); Assert.Equal(0x7e, hexSpan[0]); }
public void SendTest() { //"126 131 0 0 13 18 52 86 120 144 1 0 11 5 115 109 97 108 108 99 104 105 32 53 49 56 24 126" var jT808UnificationSendService = ServiceProvider.GetService <IJT808UnificationSendService>(); string no = "123456789001"; // 文本信息包 JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create(no, new JT808_0x8300 { TextFlag = 5, TextInfo = "smallchi 518" }); var data = JT808Serializer.Serialize(jT808Package2); JT808ResultDto <bool> jt808Result = jT808UnificationSendService.Send(no, data); Assert.Equal(JT808ResultCode.Ok, jt808Result.Code); Assert.True(jt808Result.Data); if (Channels.TryGetValue(no, out var channel)) { var package = channel.ReadOutbound <IByteBuffer>(); byte[] recevie = new byte[package.Capacity]; package.ReadBytes(recevie); Assert.Equal(data, recevie); } }
public void Test1() { // 文本信息包 JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create("123456789012", new JT808_0x8300 { TextFlag = 5, TextInfo = "smallchi 518" }); var data = JT808Serializer.Serialize(jT808Package2); JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto(); jT808UnificationSendRequestDto.TerminalPhoneNo = "123456789012"; jT808UnificationSendRequestDto.Data = data; HttpClient httpClient = new HttpClient(); // 调用内置的http服务接收文本信息下发 var result = httpClient.PostAsync("http://127.0.0.1:828/jt808api/UnificationSend", new StringContent(JsonConvert.SerializeObject(jT808UnificationSendRequestDto))).Result; string content = result.Content.ReadAsStringAsync().Result; JT808ResultDto <bool> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <bool> >(content); Assert.Equal(200, jt808Result.Code); Assert.False(jt808Result.Data); }
public void Test1() { JT808Package jT808_0X0100 = new JT808Package(); jT808_0X0100.Header = new JT808Header { MsgId = Enums.JT808MsgId.终端注册.ToUInt16Value(), MsgNum = 10, TerminalPhoneNo = "123456789", }; jT808_0X0100.Bodies = new JT808_0x0100 { AreaID = 40, CityOrCountyId = 50, MakerId = "1234", PlateColor = 1, PlateNo = "粤A12345", TerminalId = "CHI123", TerminalModel = "smallchi123" }; var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString(); Assert.Equal("7E0100002D000123456789000A002800323132333430736D616C6C6368693132333030303030303030304348493132333001D4C1413132333435BA7E", hex); }