-
Notifications
You must be signed in to change notification settings - Fork 249
/
Demo15.cs
83 lines (78 loc) · 3.15 KB
/
Demo15.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using JT808.Protocol.Enums;
using JT808.Protocol.Interfaces;
using JT808.Protocol.Internal;
using JT808.Protocol.Extensions;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using JT808.Protocol.MessageBody;
using JT808.Protocol.Formatters;
using JT808.Protocol.MessagePack;
using System.Text.Json;
using JT808.Protocol.MessageBody.CarDVR;
using System.Linq;
using JT808.Protocol.Test.JT808LocationAttach;
using static JT808.Protocol.MessageBody.JT808_0x8105;
using System.Buffers.Binary;
using Newtonsoft.Json;
namespace JT808.Protocol.Test.Simples
{
public class Demo15
{
JT808Serializer JT808Serializer;
public Demo15()
{
IServiceCollection serviceDescriptors = new ServiceCollection();
serviceDescriptors.AddJT808Configure();
//通常在startup中使用app的Use进行扩展
IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
JT808Serializer = serviceProvider.GetRequiredService<IJT808Config>().GetSerializer();
}
[Fact]
public void Test1()
{
JT808Package jT808_0X0100 = new JT808Package
{
Header = new JT808Header
{
MsgId = Enums.JT808MsgId._0x0100.ToUInt16Value(),
ManualMsgNum = 10,
TerminalPhoneNo = "123456789",
},
Bodies = new JT808_0x0100
{
AreaID = 40,
CityOrCountyId = 50,
MakerId = "1234",
PlateColor = 1,
PlateNo = "粤A12345",
TerminalId = "CHI123",
TerminalModel = "tk12345"
}
};
var hex = JT808Serializer.Serialize(jT808_0X0100, JT808Version.JTT2011).ToHexString();
Assert.Equal("7E01000021000123456789000A002800323132333400746B3132333435004348493132330001D4C1413132333435857E", hex);
}
[Fact]
public void Test2()
{
var bytes = "7E01000021000123456789000A002800323132333400746B3132333435004348493132330001D4C1413132333435857E".ToHexBytes();
JT808Package jT808_0X0100 = JT808Serializer.Deserialize<JT808Package>(bytes);
// 采用2011协议 的终端注册消息解析
Assert.Equal(JT808MsgId._0x0100.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);
}
}
}