-
Notifications
You must be signed in to change notification settings - Fork 277
Expand file tree
/
Copy pathDemo16.cs
More file actions
101 lines (97 loc) · 3.77 KB
/
Demo16.cs
File metadata and controls
101 lines (97 loc) · 3.77 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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 Demo16
{
JT808Serializer JT808Serializer;
IJT808Config JT808Config;
public Demo16()
{
IServiceCollection serviceDescriptors = new ServiceCollection();
serviceDescriptors.AddJT808Configure();
//通常在startup中使用app的Use进行扩展
IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
JT808Config = serviceProvider.GetRequiredService<IJT808Config>();
JT808Serializer = JT808Config.GetSerializer();
}
[Fact]
public void Test1()
{
var upgradePackage = new byte[1024 * 10];
var splitPackage = JT808Config.SplitPackageStrategy.Processor(upgradePackage).ToList();
ushort packgeCount = (ushort)splitPackage.Count();
List<string> hexs = new List<string>();
for (ushort i = 1; i <= packgeCount; i++)
{
if (i == 1)
{
var bodies = new JT808_0x8108
{
UpgradeType = JT808UpgradeType.terminal,
VersionNum = "v1.2.1",
MakerId = "1234",
UpgradePackage = splitPackage[i - 1].Data
};
var firstBodies = JT808Serializer.Serialize(bodies);
JT808Package package = new JT808Package
{
Header = new JT808Header
{
MsgId = Enums.JT808MsgId._0x8108.ToUInt16Value(),
ManualMsgNum = 10,
TerminalPhoneNo = "123456789",
MessageBodyProperty = new JT808HeaderMessageBodyProperty()
{
IsPackage = true,
},
PackgeCount = packgeCount,
PackageIndex = i
},
SubDataBodies = firstBodies
};
var hex = JT808Serializer.Serialize(package).ToHexString();
hexs.Add(hex);
}
else
{
JT808Package package = new JT808Package
{
Header = new JT808Header
{
MsgId = Enums.JT808MsgId._0x8108.ToUInt16Value(),
ManualMsgNum = 10,
TerminalPhoneNo = "123456789",
MessageBodyProperty = new JT808HeaderMessageBodyProperty()
{
IsPackage = true,
},
PackgeCount = packgeCount,
PackageIndex = i
},
SubDataBodies = splitPackage[i - 1].Data
};
var hex = JT808Serializer.Serialize(package).ToHexString();
hexs.Add(hex);
}
}
}
}
}