diff --git a/src/JTTools.Bak.Test/JTTools.Test.csproj b/src/JTTools.Bak.Test/JTTools.Test.csproj index 2a6a019..f273c1b 100644 --- a/src/JTTools.Bak.Test/JTTools.Test.csproj +++ b/src/JTTools.Bak.Test/JTTools.Test.csproj @@ -17,7 +17,7 @@ - + diff --git a/src/JTTools.Bak.Test/JTToolsControllerTest.cs b/src/JTTools.Bak.Test/JTToolsControllerTest.cs index 0ea2484..dbfc26c 100644 --- a/src/JTTools.Bak.Test/JTToolsControllerTest.cs +++ b/src/JTTools.Bak.Test/JTToolsControllerTest.cs @@ -21,8 +21,8 @@ namespace JTTools.Test public JTToolsControllerTest() { - serviceDescriptors.AddJT808Configure() - .AddJT1078Configure(); + serviceDescriptors.AddJT808Configure(); + //.AddJT1078Configure(); serviceDescriptors.AddJT809Configure() .AddJT1078Configure(); serviceDescriptors.AddSingleton(); @@ -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" + }); + + } } } diff --git a/src/JTTools.Bak/Controllers/JTToolsController.cs b/src/JTTools.Bak/Controllers/JTToolsController.cs index 4f0ef07..88a716b 100644 --- a/src/JTTools.Bak/Controllers/JTToolsController.cs +++ b/src/JTTools.Bak/Controllers/JTToolsController.cs @@ -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 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 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 Parse809([FromBody]JT809RequestDto parameter) diff --git a/src/JTTools.Bak/JTTools.csproj b/src/JTTools.Bak/JTTools.csproj index 61de3aa..7e6ff74 100644 --- a/src/JTTools.Bak/JTTools.csproj +++ b/src/JTTools.Bak/JTTools.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/src/JTTools.Bak/Program.cs b/src/JTTools.Bak/Program.cs index c20bc1a..42643ac 100644 --- a/src/JTTools.Bak/Program.cs +++ b/src/JTTools.Bak/Program.cs @@ -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"; + } } diff --git a/src/JTTools.sln b/src/JTTools.sln index 1da94f3..a1d3c94 100644 --- a/src/JTTools.sln +++ b/src/JTTools.sln @@ -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 diff --git a/src/JTTools/Data/WeatherForecast.cs b/src/JTTools/Data/WeatherForecast.cs deleted file mode 100644 index d214001..0000000 --- a/src/JTTools/Data/WeatherForecast.cs +++ /dev/null @@ -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; } - } -} diff --git a/src/JTTools/Data/WeatherForecastService.cs b/src/JTTools/Data/WeatherForecastService.cs deleted file mode 100644 index 0655019..0000000 --- a/src/JTTools/Data/WeatherForecastService.cs +++ /dev/null @@ -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 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()); - } - } -} diff --git a/src/JTTools/Pages/Counter.razor b/src/JTTools/Pages/Counter.razor deleted file mode 100644 index 8641f78..0000000 --- a/src/JTTools/Pages/Counter.razor +++ /dev/null @@ -1,16 +0,0 @@ -@page "/counter" - -

Counter

- -

Current count: @currentCount

- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/src/JTTools/Pages/FetchData.razor b/src/JTTools/Pages/FetchData.razor deleted file mode 100644 index 4a26e96..0000000 --- a/src/JTTools/Pages/FetchData.razor +++ /dev/null @@ -1,46 +0,0 @@ -@page "/fetchdata" - -@using JTTools.Data -@inject WeatherForecastService ForecastService - -

Weather forecast

- -

This component demonstrates fetching data from a service.

- -@if (forecasts == null) -{ -

Loading...

-} -else -{ - - - - - - - - - - - @foreach (var forecast in forecasts) - { - - - - - - - } - -
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
-} - -@code { - private WeatherForecast[] forecasts; - - protected override async Task OnInitializedAsync() - { - forecasts = await ForecastService.GetForecastAsync(DateTime.Now); - } -} diff --git a/src/JTTools/Pages/JT1078Parse.razor b/src/JTTools/Pages/JT1078Parse.razor new file mode 100644 index 0000000..fa96a45 --- /dev/null +++ b/src/JTTools/Pages/JT1078Parse.razor @@ -0,0 +1,30 @@ +@page "/jt1078" + +@using JT1078.Protocol; +@using JT1078.Protocol.Extensions; +@using Newtonsoft.Json; + + +

JT1078Parse

+ +

Hex: @HexData

+ + + +
+ @Json +
+ +@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)); + } +} diff --git a/src/JTTools/Pages/JT19056Analyze.razor b/src/JTTools/Pages/JT19056Analyze.razor new file mode 100644 index 0000000..3ab24fd --- /dev/null +++ b/src/JTTools/Pages/JT19056Analyze.razor @@ -0,0 +1,48 @@ +@page "/jt19056analyze" + +@using JT808.Protocol; +@using JT808.Protocol.Extensions; +@using Newtonsoft.Json; +@inject IJT808Config Config + +

jt808analyze

+ +

Up Hex: @UpHexData

+

Down Hex: @DownHexData

+ + + + +
+ @UpJson +
+ @DownJson +
+ +@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); + } + +} diff --git a/src/JTTools/Pages/JT808Analyze.razor b/src/JTTools/Pages/JT808Analyze.razor index 957b7cf..0c666bb 100644 --- a/src/JTTools/Pages/JT808Analyze.razor +++ b/src/JTTools/Pages/JT808Analyze.razor @@ -3,10 +3,17 @@ @using JT808.Protocol; @using JT808.Protocol.Extensions; @using Newtonsoft.Json; -@inject IJT808Config JT808Config +@inject IJT808Config Config

jt808analyze

+@**@ + +

@protocolType

Hex: @HexData

@@ -15,16 +22,29 @@ @Json +@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() diff --git a/src/JTTools/Pages/JT808Parse.razor b/src/JTTools/Pages/JT808Parse.razor index 4a375cc..dca7815 100644 --- a/src/JTTools/Pages/JT808Parse.razor +++ b/src/JTTools/Pages/JT808Parse.razor @@ -3,7 +3,7 @@ @using JT808.Protocol; @using JT808.Protocol.Extensions; @using Newtonsoft.Json; -@inject IJT808Config JT808Config +@inject IJT808Config Config

JT808Parse

@@ -24,7 +24,7 @@ protected override void OnInitialized() { - Serializer = JT808Config.GetSerializer(); + Serializer = Config.GetSerializer(); } private void Query() diff --git a/src/JTTools/Pages/JT809Parse.razor b/src/JTTools/Pages/JT809Parse.razor new file mode 100644 index 0000000..b646da9 --- /dev/null +++ b/src/JTTools/Pages/JT809Parse.razor @@ -0,0 +1,35 @@ +@page "/jt809" + +@using JT809.Protocol; +@using JT809.Protocol.Extensions; +@using Newtonsoft.Json; +@inject IJT809Config Config + +

JT809Parse

+ +

Hex: @HexData

+ + + +
+ @Json +
+ +@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)); + } +} diff --git a/src/JTTools/Program.cs b/src/JTTools/Program.cs index 8592311..d96cf7d 100644 --- a/src/JTTools/Program.cs +++ b/src/JTTools/Program.cs @@ -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(); services.AddControllers() //Microsoft.AspNetCore.Mvc.NewtonsoftJson .AddNewtonsoftJson(jsonOptions => diff --git a/src/JTTools/Shared/NavMenu.razor b/src/JTTools/Shared/NavMenu.razor index 5d3377d..6e1a6c5 100644 --- a/src/JTTools/Shared/NavMenu.razor +++ b/src/JTTools/Shared/NavMenu.razor @@ -13,23 +13,23 @@ +