|
@@ -6,8 +6,15 @@ |
|
|
@using JT809.Protocol.Configs; |
|
|
@using JT809.Protocol.Configs; |
|
|
@using JT809.Protocol.Interfaces; |
|
|
@using JT809.Protocol.Interfaces; |
|
|
@using JT809.Protocol.Exceptions; |
|
|
@using JT809.Protocol.Exceptions; |
|
|
@inject IJT809Config Config |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@using JTTools.Configs; |
|
|
|
|
|
@using JT809.Protocol.Enums; |
|
|
|
|
|
@inject JT809_2011_Config Config2011 |
|
|
|
|
|
@inject JT809_2019_Config Config2019 |
|
|
|
|
|
|
|
|
|
|
|
<select class="form-control" @onchange="@OnSelectVersion"> |
|
|
|
|
|
<option value="v2011">2011版本</option> |
|
|
|
|
|
<option value="v2019">2019版本</option> |
|
|
|
|
|
</select> |
|
|
<select class="form-control" @onchange="@OnSelectEncryptType"> |
|
|
<select class="form-control" @onchange="@OnSelectEncryptType"> |
|
|
<option value="none">未加密</option> |
|
|
<option value="none">未加密</option> |
|
|
<option value="encrypt">加密</option> |
|
|
<option value="encrypt">加密</option> |
|
@@ -33,14 +40,21 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
@code { |
|
|
@code { |
|
|
private JT809Serializer Serializer; |
|
|
|
|
|
|
|
|
private JT809Serializer Serializer2011; |
|
|
|
|
|
private JT809Serializer Serializer2019; |
|
|
|
|
|
|
|
|
|
|
|
private string HexData2011 = "5B 00 00 00 92 00 00 06 82 94 00 01 33 EF B8 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 94 01 00 00 00 5C 01 00 02 00 00 00 00 5A 01 AC 3F 40 12 3F FA A1 00 00 00 00 5A 01 AC 4D 50 03 73 6D 61 6C 6C 63 68 69 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 30 31 00 00 00 00 00 00 00 00 00 31 32 33 34 35 36 40 71 71 2E 63 6F 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA D8 5D"; |
|
|
|
|
|
|
|
|
private string HexData = "5B 00 00 00 92 00 00 06 82 94 00 01 33 EF B8 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 94 01 00 00 00 5C 01 00 02 00 00 00 00 5A 01 AC 3F 40 12 3F FA A1 00 00 00 00 5A 01 AC 4D 50 03 73 6D 61 6C 6C 63 68 69 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 30 31 00 00 00 00 00 00 00 00 00 31 32 33 34 35 36 40 71 71 2E 63 6F 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA D8 5D"; |
|
|
|
|
|
|
|
|
private string HexData2019 = "5B 00 00 00 C9 00 00 06 82 17 00 01 34 15 F4 01 00 00 00 00 00 27 0F 00 00 00 00 5E 02 A5 07 B8 D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 17 01 00 00 00 8B 01 02 03 04 05 06 07 08 09 10 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E7 D3 5D"; |
|
|
|
|
|
|
|
|
|
|
|
private string HexData = ""; |
|
|
|
|
|
|
|
|
private string Json; |
|
|
private string Json; |
|
|
|
|
|
|
|
|
string encryptType = "none"; |
|
|
string encryptType = "none"; |
|
|
|
|
|
|
|
|
|
|
|
string version = "v2011"; |
|
|
|
|
|
|
|
|
JT809EncryptOptions EncryptOptions; |
|
|
JT809EncryptOptions EncryptOptions; |
|
|
|
|
|
|
|
|
private string ErrerMessage; |
|
|
private string ErrerMessage; |
|
@@ -53,6 +67,20 @@ |
|
|
StateHasChanged(); |
|
|
StateHasChanged(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void OnSelectVersion(ChangeEventArgs e) |
|
|
|
|
|
{ |
|
|
|
|
|
version = e.Value.ToString(); |
|
|
|
|
|
switch (version) |
|
|
|
|
|
{ |
|
|
|
|
|
case "v2011": |
|
|
|
|
|
HexData = HexData2011; |
|
|
|
|
|
break; |
|
|
|
|
|
case "v2019": |
|
|
|
|
|
HexData = HexData2019; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void OnSelectEncryptType(ChangeEventArgs e) |
|
|
private void OnSelectEncryptType(ChangeEventArgs e) |
|
|
{ |
|
|
{ |
|
|
encryptType = e.Value.ToString(); |
|
|
encryptType = e.Value.ToString(); |
|
@@ -60,8 +88,10 @@ |
|
|
|
|
|
|
|
|
protected override void OnInitialized() |
|
|
protected override void OnInitialized() |
|
|
{ |
|
|
{ |
|
|
Serializer = Config.GetSerializer(); |
|
|
|
|
|
|
|
|
Serializer2011 = JT809ConfigExtensions.GetSerializer(Config2011); |
|
|
|
|
|
Serializer2019 = JT809ConfigExtensions.GetSerializer(Config2019); |
|
|
EncryptOptions = new JT809EncryptOptions(); |
|
|
EncryptOptions = new JT809EncryptOptions(); |
|
|
|
|
|
HexData = HexData2011; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void Query() |
|
|
private void Query() |
|
@@ -70,25 +100,44 @@ |
|
|
{ |
|
|
{ |
|
|
isOpen = false; |
|
|
isOpen = false; |
|
|
var data = HexData.ToHexBytes(); |
|
|
var data = HexData.ToHexBytes(); |
|
|
if (encryptType == "none") |
|
|
|
|
|
|
|
|
switch (version) |
|
|
{ |
|
|
{ |
|
|
Json = JsonConvert.SerializeObject(Serializer.Deserialize(data), Formatting.Indented); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
IJT809Config jt809ConfigInternal = new JT809Config(Guid.NewGuid().ToString()); |
|
|
|
|
|
jt809ConfigInternal.EncryptOptions = EncryptOptions; |
|
|
|
|
|
JT809Serializer jT809SerializerInternal = new JT809Serializer(jt809ConfigInternal); |
|
|
|
|
|
Json = JsonConvert.SerializeObject(jT809SerializerInternal.Deserialize(data), Formatting.Indented); |
|
|
|
|
|
|
|
|
case "v2011": |
|
|
|
|
|
if (encryptType == "none") |
|
|
|
|
|
{ |
|
|
|
|
|
Json = Serializer2011.Analyze(data, JTJsonWriterOptions.Instance); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
IJT809Config jt809ConfigInternal = new JT809Config2011(Guid.NewGuid().ToString()); |
|
|
|
|
|
jt809ConfigInternal.EncryptOptions = EncryptOptions; |
|
|
|
|
|
JT809Serializer jT809SerializerInternal = new JT809Serializer(jt809ConfigInternal); |
|
|
|
|
|
Json = jT809SerializerInternal.Analyze(data, JTJsonWriterOptions.Instance); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case "v2019": |
|
|
|
|
|
if (encryptType == "none") |
|
|
|
|
|
{ |
|
|
|
|
|
Json = Serializer2019.Analyze(data, JTJsonWriterOptions.Instance); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
IJT809Config jt809ConfigInternal = new JT809Config2019(Guid.NewGuid().ToString()); |
|
|
|
|
|
jt809ConfigInternal.EncryptOptions = EncryptOptions; |
|
|
|
|
|
JT809Serializer jT809SerializerInternal = new JT809Serializer(jt809ConfigInternal); |
|
|
|
|
|
Json = jT809SerializerInternal.Analyze(data, JTJsonWriterOptions.Instance); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
catch(JT809Exception ex) |
|
|
|
|
|
|
|
|
catch (JT809Exception ex) |
|
|
{ |
|
|
{ |
|
|
isOpen = !isOpen; |
|
|
isOpen = !isOpen; |
|
|
Json = ""; |
|
|
Json = ""; |
|
|
ErrerMessage = ex.Message; |
|
|
ErrerMessage = ex.Message; |
|
|
} |
|
|
} |
|
|
catch(Exception ex) |
|
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
{ |
|
|
{ |
|
|
isOpen = !isOpen; |
|
|
isOpen = !isOpen; |
|
|
Json = ""; |
|
|
Json = ""; |
|
@@ -96,11 +145,22 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
class JT809Config : JT809GlobalConfigBase |
|
|
|
|
|
|
|
|
class JT809Config2011 : JT809GlobalConfigBase |
|
|
|
|
|
{ |
|
|
|
|
|
public JT809Config2011(string configId) |
|
|
|
|
|
{ |
|
|
|
|
|
ConfigId = configId; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public override string ConfigId { get; } |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class JT809Config2019 : JT809GlobalConfigBase |
|
|
{ |
|
|
{ |
|
|
public JT809Config(string configId) |
|
|
|
|
|
|
|
|
public JT809Config2019(string configId) |
|
|
{ |
|
|
{ |
|
|
ConfigId = configId; |
|
|
ConfigId = configId; |
|
|
|
|
|
Version = JT809Version.JTT2019; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public override string ConfigId { get; } |
|
|
public override string ConfigId { get; } |
|
|