Browse Source

将国标和1078、主动安全分开来,避免协议Id冲突

master
SmallChi(Koike) 5 years ago
parent
commit
adbe731d9a
4 changed files with 60 additions and 26 deletions
  1. +13
    -0
      src/JTTools/Configs/JT808_JT1078_Config.cs
  2. +13
    -0
      src/JTTools/Configs/JT808_JTActiveSafety_Config.cs
  3. +29
    -16
      src/JTTools/Pages/JT808Analyze.razor
  4. +5
    -10
      src/JTTools/Program.cs

+ 13
- 0
src/JTTools/Configs/JT808_JT1078_Config.cs View File

@@ -0,0 +1,13 @@
using JT808.Protocol.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace JTTools.Configs
{
public class JT808_JT1078_Config : GlobalConfigBase
{
public override string ConfigId { get; protected set; } = "JT808_JT1078_Config";
}
}

+ 13
- 0
src/JTTools/Configs/JT808_JTActiveSafety_Config.cs View File

@@ -0,0 +1,13 @@
using JT808.Protocol.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace JTTools.Configs
{
public class JT808_JTActiveSafety_Config : GlobalConfigBase
{
public override string ConfigId { get; protected set; } = "JT808_JTActiveSafety_Config";
}
}

+ 29
- 16
src/JTTools/Pages/JT808Analyze.razor View File

@@ -3,17 +3,20 @@
@using JT808.Protocol; @using JT808.Protocol;
@using JT808.Protocol.Extensions; @using JT808.Protocol.Extensions;
@using Newtonsoft.Json; @using Newtonsoft.Json;
@inject IJT808Config Config @using JTTools.Configs;

@inject IJT808Config config
@inject JT808_JT1078_Config jT808_JT1078_Config
@inject JT808_JTActiveSafety_Config jT808_JTActiveSafety_Config
<h3>jt808analyze</h3> <h3>jt808analyze</h3>


@*<select class="btn-success" onchange=@DoStuff> <select class="btn-success" @onchange="@OnSelectProtocolType">
<option value="JT808">国标</option> <option value="JT808">国标</option>
<option value="JT808_JT1078">国标扩展JT1078</option> <option value="JT808_JT1078">国标扩展JT1078</option>
<option value="JT808_JTAS">国标扩展主动安全(苏标)</option> <option value="JT808_JTAS">国标扩展主动安全(苏标)</option>
</select>*@ </select>


<p>@protocolType</p> <p>@protocolType</p>

<p>Hex: @HexData</p> <p>Hex: @HexData</p>


<button class="btn btn-primary" @onclick="Query">分析</button> <button class="btn btn-primary" @onclick="Query">分析</button>
@@ -22,19 +25,11 @@
@Json @Json
</div> </div>


@functions {
string selectedString = "JT808";

void DoStuff(ChangeEventArgs e)
{
selectedString = e.Value.ToString();
Console.WriteLine("It is definitely: " + selectedString);
}
}

@code { @code {


private JT808Serializer Serializer; private JT808Serializer Serializer;
private JT808Serializer JTAS_Serializer;
private JT808Serializer JT1078Serializer;


string protocolType = "JT808"; string protocolType = "JT808";


@@ -42,14 +37,32 @@


private string Json; private string Json;


private void OnSelectProtocolType(ChangeEventArgs e)
{
protocolType = e.Value.ToString();
}

protected override void OnInitialized() protected override void OnInitialized()
{ {
Serializer = Config.GetSerializer(); Serializer = config.GetSerializer();
JT1078Serializer = jT808_JT1078_Config.GetSerializer();
JTAS_Serializer = jT808_JTActiveSafety_Config.GetSerializer();
} }


private void Query() private void Query()
{ {
var data = HexData.ToHexBytes(); var data = HexData.ToHexBytes();
Json = Serializer.Analyze(data); switch (protocolType)
{
case "JT808":
Json = Serializer.Analyze(data);
break;
case "JT808_JT1078":
Json = JT1078Serializer.Analyze(data);
break;
case "JT808_JTAS":
Json = JTAS_Serializer.Analyze(data);
break;
}
} }
} }

+ 5
- 10
src/JTTools/Program.cs View File

@@ -1,23 +1,16 @@
using System; using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using JT808.Protocol; using JT808.Protocol;
using JT808.Protocol.Extensions.JT1078; using JT808.Protocol.Extensions.JT1078;
using JT808.Protocol.Extensions.JTActiveSafety; using JT808.Protocol.Extensions.JTActiveSafety;
using JT809.Protocol; using JT809.Protocol;
using JT809.Protocol.Extensions.JT1078; using JT809.Protocol.Extensions.JT1078;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
using JTTools.Configs;


namespace JTTools namespace JTTools
{ {
@@ -90,9 +83,11 @@ namespace JTTools
}) })
.ConfigureServices(services => .ConfigureServices(services =>
{ {
services.AddJT808Configure() services.AddJT808Configure();
.AddJT1078Configure() services.AddJT808Configure(new JT808_JTActiveSafety_Config())
.AddJTActiveSafetyConfigure(); .AddJTActiveSafetyConfigure();
services.AddJT808Configure(new JT808_JT1078_Config())
.AddJT1078Configure();
services.AddJT809Configure() services.AddJT809Configure()
.AddJT1078Configure(); .AddJT1078Configure();
}) })


||||||
x
 
000:0
Loading…
Cancel
Save