Browse Source

修改老的版本接口及增加新页面开发

master
SmallChi(Koike) 5 years ago
parent
commit
5843420d9a
17 changed files with 236 additions and 135 deletions
  1. +1
    -1
      src/JTTools.Bak.Test/JTTools.Test.csproj
  2. +12
    -2
      src/JTTools.Bak.Test/JTToolsControllerTest.cs
  3. +54
    -1
      src/JTTools.Bak/Controllers/JTToolsController.cs
  4. +2
    -2
      src/JTTools.Bak/JTTools.csproj
  5. +16
    -7
      src/JTTools.Bak/Program.cs
  6. +5
    -5
      src/JTTools.sln
  7. +0
    -15
      src/JTTools/Data/WeatherForecast.cs
  8. +0
    -25
      src/JTTools/Data/WeatherForecastService.cs
  9. +0
    -16
      src/JTTools/Pages/Counter.razor
  10. +0
    -46
      src/JTTools/Pages/FetchData.razor
  11. +30
    -0
      src/JTTools/Pages/JT1078Parse.razor
  12. +48
    -0
      src/JTTools/Pages/JT19056Analyze.razor
  13. +22
    -2
      src/JTTools/Pages/JT808Analyze.razor
  14. +2
    -2
      src/JTTools/Pages/JT808Parse.razor
  15. +35
    -0
      src/JTTools/Pages/JT809Parse.razor
  16. +0
    -2
      src/JTTools/Program.cs
  17. +9
    -9
      src/JTTools/Shared/NavMenu.razor

+ 1
- 1
src/JTTools.Bak.Test/JTTools.Test.csproj View File

@@ -17,7 +17,7 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\JTTools\JTTools.csproj" />
<ProjectReference Include="..\JTTools.Bak\JTTools.csproj" />
</ItemGroup>

</Project>

+ 12
- 2
src/JTTools.Bak.Test/JTToolsControllerTest.cs View File

@@ -21,8 +21,8 @@ namespace JTTools.Test

public JTToolsControllerTest()
{
serviceDescriptors.AddJT808Configure()
.AddJT1078Configure();
serviceDescriptors.AddJT808Configure();
//.AddJT1078Configure();
serviceDescriptors.AddJT809Configure()
.AddJT1078Configure();
serviceDescriptors.AddSingleton<JTToolsController>();
@@ -51,5 +51,15 @@ namespace JTTools.Test
Assert.Equal("ÔÁSEB408²â", jT809_0X1200.VehicleNo);
Assert.Equal(JT809VehicleColorType.»ÆÉ«, jT809_0X1200.VehicleColor);
}
[Fact]
public void Parse808Test1()
{
var result=jTToolsController.Parse808(new JT809RequestDto()
{
IsEncrypt=true,
HexData= "7E 02 00 00 57 00 00 00 00 77 77 62 F7 00 08 00 00 00 04 00 03 01 66 53 A7 06 A2 55 F8 00 9E 00 00 00 00 20 03 31 07 00 35 01 04 00 00 00 00 03 02 00 00 21 08 00 00 00 A0 00 05 6F 67 25 04 00 00 00 00 2B 04 00 00 00 00 30 01 03 31 01 0C 16 04 00 00 0B FE 17 01 02 18 04 01 1D 00 00 14 04 00 00 00 02 8A 7E"
});

}
}
}

+ 54
- 1
src/JTTools.Bak/Controllers/JTToolsController.cs View File

@@ -26,15 +26,21 @@ namespace JTTools.Controllers
private readonly IJT809Config jT809Config;
private readonly IJT808Config jT808Config;
private readonly JT808Serializer jT808Serializer;
private readonly JT808Serializer jT808_JTAS_Serializer;
private readonly JT808Serializer jT808_JT1078Serializer;
private readonly JT809Serializer jT809Serializer;

public JTToolsController(
JT808_JTActiveSafety_Config jT808_JTActiveSafety_Config,
JT808_JT1078_Config jT808_JT1078_Config,
IJT809Config jT809Config,
IJT808Config jT808Config)
{
this.jT809Config = jT809Config;
this.jT808Config = jT808Config;
jT808Serializer = jT808Config.GetSerializer();
jT808_JTAS_Serializer = jT808_JTActiveSafety_Config.GetSerializer();
jT808_JT1078Serializer = jT808_JT1078_Config.GetSerializer();
jT809Serializer = jT809Config.GetSerializer();
}

@@ -46,7 +52,8 @@ namespace JTTools.Controllers
try
{
jTResultDto.Code = 200;
jTResultDto.Data =jT808Serializer.Deserialize(parameter.HexData.ToHexBytes());
var a = parameter.HexData.ToHexBytes();
jTResultDto.Data =jT808Serializer.Deserialize(a);
}
catch(JT808Exception ex)
{
@@ -84,6 +91,52 @@ namespace JTTools.Controllers
return jTResultDto;
}

[Route("Analyze808ExtJTAS")]
[HttpPost]
public ActionResult<JTResultDto> Analyze808ExtJTAS([FromBody]JTRequestDto parameter)
{
JTResultDto jTResultDto = new JTResultDto();
try
{
jTResultDto.Code = 200;
jTResultDto.Data = jT808_JTAS_Serializer.Analyze(parameter.HexData.ToHexBytes());
}
catch (JT808Exception ex)
{
jTResultDto.Code = 500;
jTResultDto.Message = $"{ex.ErrorCode}-{ex.Message}";
}
catch (Exception ex)
{
jTResultDto.Code = 500;
jTResultDto.Message = ex.Message;
}
return jTResultDto;
}

[Route("Analyze808ExtJT1078")]
[HttpPost]
public ActionResult<JTResultDto> Analyze808ExtJT1078([FromBody]JTRequestDto parameter)
{
JTResultDto jTResultDto = new JTResultDto();
try
{
jTResultDto.Code = 200;
jTResultDto.Data = jT808_JT1078Serializer.Analyze(parameter.HexData.ToHexBytes());
}
catch (JT808Exception ex)
{
jTResultDto.Code = 500;
jTResultDto.Message = $"{ex.ErrorCode}-{ex.Message}";
}
catch (Exception ex)
{
jTResultDto.Code = 500;
jTResultDto.Message = ex.Message;
}
return jTResultDto;
}

[Route("Parse809")]
[HttpPost]
public ActionResult<JTResultDto> Parse809([FromBody]JT809RequestDto parameter)


+ 2
- 2
src/JTTools.Bak/JTTools.csproj View File

@@ -13,8 +13,8 @@
<!--<PackageReference Include="JT1078" Version="1.0.0" />-->
<PackageReference Include="JT1078" Version="1.0.2" />
<PackageReference Include="JT808" Version="2.2.9" />
<PackageReference Include="JT808.Protocol.Extensions.JT1078" Version="2.2.7" />
<PackageReference Include="JT808.Protocol.Extensions.JTActiveSafety" Version="1.0.2" />
<PackageReference Include="JT808.Protocol.Extensions.JT1078" Version="2.2.8" />
<PackageReference Include="JT808.Protocol.Extensions.JTActiveSafety" Version="1.0.3" />
<PackageReference Include="JT809" Version="2.1.3" />
<PackageReference Include="JT809.Protocol.Extensions.JT1078" Version="2.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.3" />


+ 16
- 7
src/JTTools.Bak/Program.cs View File

@@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using JT808.Protocol;
using JT808.Protocol.Interfaces;
using JT809.Protocol;
using JT808.Protocol.Extensions.JT1078;
using JT808.Protocol.Extensions.JTActiveSafety;
@@ -27,8 +28,6 @@ namespace JTTools
{
webBuilder.ConfigureServices((hostingContext, services) =>
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddControllers()
//Microsoft.AspNetCore.Mvc.NewtonsoftJson
.AddNewtonsoftJson(jsonOptions =>
@@ -79,16 +78,16 @@ namespace JTTools
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
});
})
.ConfigureServices(services =>
{
services.AddJT808Configure()
.AddJT1078Configure()
.AddJTActiveSafetyConfigure();
services.AddJT808Configure();
services.AddJT808Configure(new JT808_JTActiveSafety_Config())
.AddJTActiveSafetyConfigure();
services.AddJT808Configure(new JT808_JT1078_Config())
.AddJT1078Configure();
services.AddJT809Configure()
.AddJT1078Configure();
})
@@ -96,4 +95,14 @@ namespace JTTools
.Run();
}
}

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

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

+ 5
- 5
src/JTTools.sln View File

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29123.88
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JTTools", "JTTools\JTTools.csproj", "{BBDC3FB3-B267-4BFB-803E-71287D361300}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JTTools", "JTTools\JTTools.csproj", "{295AB139-27E0-45AE-8E95-A3D0F1E4161F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BBDC3FB3-B267-4BFB-803E-71287D361300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BBDC3FB3-B267-4BFB-803E-71287D361300}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BBDC3FB3-B267-4BFB-803E-71287D361300}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BBDC3FB3-B267-4BFB-803E-71287D361300}.Release|Any CPU.Build.0 = Release|Any CPU
{295AB139-27E0-45AE-8E95-A3D0F1E4161F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{295AB139-27E0-45AE-8E95-A3D0F1E4161F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{295AB139-27E0-45AE-8E95-A3D0F1E4161F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{295AB139-27E0-45AE-8E95-A3D0F1E4161F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE


+ 0
- 15
src/JTTools/Data/WeatherForecast.cs View File

@@ -1,15 +0,0 @@
using System;

namespace JTTools.Data
{
public class WeatherForecast
{
public DateTime Date { get; set; }

public int TemperatureC { get; set; }

public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);

public string Summary { get; set; }
}
}

+ 0
- 25
src/JTTools/Data/WeatherForecastService.cs View File

@@ -1,25 +0,0 @@
using System;
using System.Linq;
using System.Threading.Tasks;

namespace JTTools.Data
{
public class WeatherForecastService
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
{
var rng = new Random();
return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
}).ToArray());
}
}
}

+ 0
- 16
src/JTTools/Pages/Counter.razor View File

@@ -1,16 +0,0 @@
@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
private int currentCount = 0;

private void IncrementCount()
{
currentCount++;
}
}

+ 0
- 46
src/JTTools/Pages/FetchData.razor View File

@@ -1,46 +0,0 @@
@page "/fetchdata"

@using JTTools.Data
@inject WeatherForecastService ForecastService

<h1>Weather forecast</h1>

<p>This component demonstrates fetching data from a service.</p>

@if (forecasts == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
</tr>
}
</tbody>
</table>
}

@code {
private WeatherForecast[] forecasts;

protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}

+ 30
- 0
src/JTTools/Pages/JT1078Parse.razor View File

@@ -0,0 +1,30 @@
@page "/jt1078"

@using JT1078.Protocol;
@using JT1078.Protocol.Extensions;
@using Newtonsoft.Json;


<h3>JT1078Parse</h3>

<p>Hex: @HexData</p>

<button class="btn btn-primary" @onclick="Query">解析</button>

<div class="right">
@Json
</div>

@code {

private string HexData = "30 31 63 64 81 E2 10 88 01 12 34 56 78 10 01 10 00 00 01 6B B3 92 CA 7C 02 80 00 28 00 2E 00 00 00 01 61 E1 A2 BF 00 98 CF C0 EE 1E 17 28 34 07 78 8E 39 A4 03 FD DB D1 D5 46 BF B0 63 01 3F 59 AC 34 C9 7A 02 1A B9 6A 28 A4 2C 08";

private string Json;


private void Query()
{
var data = HexData.ToHexBytes();
Json = JsonConvert.SerializeObject(JT1078Serializer.Deserialize(data));
}
}

+ 48
- 0
src/JTTools/Pages/JT19056Analyze.razor View File

@@ -0,0 +1,48 @@
@page "/jt19056analyze"

@using JT808.Protocol;
@using JT808.Protocol.Extensions;
@using Newtonsoft.Json;
@inject IJT808Config Config

<h3>jt808analyze</h3>

<p>Up Hex: @UpHexData</p>
<p>Down Hex: @DownHexData</p>

<button class="btn btn-primary" @onclick="UpQuery">上行分析</button>
<button class="btn btn-primary" @onclick="DownQuery">下行分析</button>

<div class="right">
@UpJson
<br />
@DownJson
</div>

@code {
private JT808CarDVRSerializer Serializer;

private string UpHexData = "7E 02 00 00 26 12 34 56 78 90 12 00 7D 02 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 10 15 10 10 10 01 04 00 00 00 64 02 02 00 7D 01 13 7E";
private string DownHexData = "7E 02 00 00 26 12 34 56 78 90 12 00 7D 02 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 10 15 10 10 10 01 04 00 00 00 64 02 02 00 7D 01 13 7E";

private string UpJson;
private string DownJson;

protected override void OnInitialized()
{
Serializer = Config.GetCarDVRSerializer();
}

private void UpQuery()
{
var data = UpHexData.ToHexBytes();
UpJson = Serializer.UpAnalyze(data);
}

private void DownQuery()
{
var data = DownHexData.ToHexBytes();
DownJson = Serializer.UpAnalyze(data);
}

}

+ 22
- 2
src/JTTools/Pages/JT808Analyze.razor View File

@@ -3,10 +3,17 @@
@using JT808.Protocol;
@using JT808.Protocol.Extensions;
@using Newtonsoft.Json;
@inject IJT808Config JT808Config
@inject IJT808Config Config

<h3>jt808analyze</h3>

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

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

<button class="btn btn-primary" @onclick="Query">分析</button>
@@ -15,16 +22,29 @@
@Json
</div>

@functions {
string selectedString = "JT808";

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

@code {

private JT808Serializer Serializer;

string protocolType = "JT808";

private string HexData = "7E 02 00 00 26 12 34 56 78 90 12 00 7D 02 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 10 15 10 10 10 01 04 00 00 00 64 02 02 00 7D 01 13 7E";

private string Json;

protected override void OnInitialized()
{
Serializer = JT808Config.GetSerializer();
Serializer = Config.GetSerializer();
}

private void Query()


+ 2
- 2
src/JTTools/Pages/JT808Parse.razor View File

@@ -3,7 +3,7 @@
@using JT808.Protocol;
@using JT808.Protocol.Extensions;
@using Newtonsoft.Json;
@inject IJT808Config JT808Config
@inject IJT808Config Config

<h3>JT808Parse</h3>

@@ -24,7 +24,7 @@

protected override void OnInitialized()
{
Serializer = JT808Config.GetSerializer();
Serializer = Config.GetSerializer();
}

private void Query()


+ 35
- 0
src/JTTools/Pages/JT809Parse.razor View File

@@ -0,0 +1,35 @@
@page "/jt809"

@using JT809.Protocol;
@using JT809.Protocol.Extensions;
@using Newtonsoft.Json;
@inject IJT809Config Config

<h3>JT809Parse</h3>

<p>Hex: @HexData</p>

<button class="btn btn-primary" @onclick="Query">解析</button>

<div class="right">
@Json
</div>

@code {
private JT809Serializer Serializer;

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 Json;

protected override void OnInitialized()
{
Serializer = Config.GetSerializer();
}

private void Query()
{
var data = HexData.ToHexBytes();
Json = JsonConvert.SerializeObject(Serializer.Deserialize(data));
}
}

+ 0
- 2
src/JTTools/Program.cs View File

@@ -17,7 +17,6 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.DependencyInjection;
using JTTools.Data;
using Newtonsoft.Json.Serialization;

namespace JTTools
@@ -33,7 +32,6 @@ namespace JTTools
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddSingleton<WeatherForecastService>();
services.AddControllers()
//Microsoft.AspNetCore.Mvc.NewtonsoftJson
.AddNewtonsoftJson(jsonOptions =>


+ 9
- 9
src/JTTools/Shared/NavMenu.razor View File

@@ -13,23 +13,23 @@
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="jt808">
<span class="oi oi-plus" aria-hidden="true"></span> JT808解析工具
<NavLink class="nav-link" href="jt808analyze">
<span class="oi oi-plus" aria-hidden="true"></span>JT808分析工具
</NavLink>
</li>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="jt808analyze">
<span class="oi oi-plus" aria-hidden="true"></span> JT808分析工具
<NavLink class="nav-link" href="jt809">
<span class="oi oi-plus" aria-hidden="true"></span>JT809解析工具
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true"></span> Counter
<NavLink class="nav-link" href="jt1078">
<span class="oi oi-plus" aria-hidden="true"></span>JT1078解析工具
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
<NavLink class="nav-link" href="jt19056analyze">
<span class="oi oi-plus" aria-hidden="true"></span>JT19056分析工具
</NavLink>
</li>
</ul>


Loading…
Cancel
Save