From 8a1b6b1382fbd75445414f30c450cc6973dce03e Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Mon, 28 Jun 2021 14:49:18 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E7=B2=A4=E6=A0=87=E6=94=AF?= =?UTF-8?q?=E6=8C=81=202.=E5=A2=9E=E5=8A=A0808=E7=9A=842013=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E8=A7=A3=E6=9E=90=203.=E4=BF=AE=E5=A4=8D=E7=BB=8F?= =?UTF-8?q?=E7=BA=AC=E5=BA=A6=E8=A7=A3=E6=9E=90=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E6=8D=95=E8=8E=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...afety_Config.cs => JT808_SuBiao_Config.cs} | 4 +- src/JTTools/Configs/JT808_YueBiao_Config.cs | 13 +++ src/JTTools/JTTools.csproj | 13 +-- src/JTTools/Pages/Index.razor | 5 +- src/JTTools/Pages/JT808Analyze.razor | 37 +++++--- src/JTTools/Pages/Map.razor | 84 +++++++++++-------- src/JTTools/Program.cs | 9 +- 7 files changed, 104 insertions(+), 61 deletions(-) rename src/JTTools/Configs/{JT808_JTActiveSafety_Config.cs => JT808_SuBiao_Config.cs} (71%) create mode 100644 src/JTTools/Configs/JT808_YueBiao_Config.cs diff --git a/src/JTTools/Configs/JT808_JTActiveSafety_Config.cs b/src/JTTools/Configs/JT808_SuBiao_Config.cs similarity index 71% rename from src/JTTools/Configs/JT808_JTActiveSafety_Config.cs rename to src/JTTools/Configs/JT808_SuBiao_Config.cs index 64994db..ba132cd 100644 --- a/src/JTTools/Configs/JT808_JTActiveSafety_Config.cs +++ b/src/JTTools/Configs/JT808_SuBiao_Config.cs @@ -6,8 +6,8 @@ using System.Threading.Tasks; namespace JTTools.Configs { - public class JT808_JTActiveSafety_Config : GlobalConfigBase + public class JT808_SuBiao_Config : GlobalConfigBase { - public override string ConfigId { get; protected set; } = "JT808_JTActiveSafety_Config"; + public override string ConfigId { get; protected set; } = "JT808_SuBiao_Config"; } } diff --git a/src/JTTools/Configs/JT808_YueBiao_Config.cs b/src/JTTools/Configs/JT808_YueBiao_Config.cs new file mode 100644 index 0000000..925f7e3 --- /dev/null +++ b/src/JTTools/Configs/JT808_YueBiao_Config.cs @@ -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_YueBiao_Config : GlobalConfigBase + { + public override string ConfigId { get; protected set; } = "JT808_YueBiao_Config"; + } +} diff --git a/src/JTTools/JTTools.csproj b/src/JTTools/JTTools.csproj index d6b4e8d..3c2745f 100644 --- a/src/JTTools/JTTools.csproj +++ b/src/JTTools/JTTools.csproj @@ -7,18 +7,19 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="AntDesign" Version="0.8.1" /> + <PackageReference Include="AntDesign" Version="0.8.2" /> <PackageReference Include="JT1078" Version="1.1.0" /> - <PackageReference Include="JT808" Version="2.4.0" /> - <PackageReference Include="JT808.Protocol.Extensions.JT1078" Version="2.3.7" /> - <PackageReference Include="JT808.Protocol.Extensions.JTActiveSafety" Version="1.1.7" /> + <PackageReference Include="JT808" Version="2.4.1" /> + <PackageReference Include="JT808.Protocol.Extensions.JT1078" Version="2.4.1" /> <PackageReference Include="JT808.Protocol.Extensions.Streamax" Version="0.2.7" /> + <PackageReference Include="JT808.Protocol.Extensions.SuBiao" Version="2.4.1" /> + <PackageReference Include="JT808.Protocol.Extensions.YueBiao" Version="2.4.1" /> <PackageReference Include="JT809" Version="2.2.0" /> <PackageReference Include="JT809.Protocol.Extensions.JT1078" Version="2.2.0" /> <PackageReference Include="JTActiveSafety" Version="1.0.1" /> - <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.6" /> + <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.7" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> - <PackageReference Include="NLog.Extensions.Logging" Version="1.7.2" /> + <PackageReference Include="NLog.Extensions.Logging" Version="1.7.3" /> </ItemGroup> </Project> diff --git a/src/JTTools/Pages/Index.razor b/src/JTTools/Pages/Index.razor index b5a4fa4..82c9180 100644 --- a/src/JTTools/Pages/Index.razor +++ b/src/JTTools/Pages/Index.razor @@ -2,12 +2,13 @@ <Title Level="1">JTTools</Title> <Paragraph> - <Title Level="3">JT808、JT809、JT1078、JT19056、JTNE(新能源)、主动安全(苏标)解析工具</Title> + <Title Level="3">JT808、JT809、JT1078、JT19056、JTNE(新能源)、JT808主动安全(苏标)解析工具、JT808主动安全(粤标)解析工具</Title> <Text> <Badge Color="red" />支持锐明808公交业务扩展协议<br /> <Badge Color="red" />支持主动安全附件(苏标)分析工具<br /> <Badge Color="red" />增加808分包解析<br /> <Badge Color="red" />增加地图-经纬度解析<br /> - <Badge Color="red" />增加808分包的各个包的解析及展示 + <Badge Color="red" />增加808分包的各个包的解析及展示<br /> + <Badge Color="red" />支持808(粤标)分析工具<br /> </Text> </Paragraph> \ No newline at end of file diff --git a/src/JTTools/Pages/JT808Analyze.razor b/src/JTTools/Pages/JT808Analyze.razor index 1c8b250..8dc1fc9 100644 --- a/src/JTTools/Pages/JT808Analyze.razor +++ b/src/JTTools/Pages/JT808Analyze.razor @@ -9,18 +9,20 @@ @using System.Text.Unicode; @inject IJT808Config config @inject JT808_JT1078_Config jT808_JT1078_Config -@inject JT808_JTActiveSafety_Config jT808_JTActiveSafety_Config +@inject JT808_SuBiao_Config jT808_SuBiao_Config @inject JT808_Streamax_Config jT808_Streamax_Config @using OneOf; <Tag Color="blue">如有分包,请换行区分。</Tag> <br /> -<Select TItemValue="string" TItem="string" @bind-Value="@protocolType" Style="width:200px" OnSelectedItemChanged="OnSelectProtocolType"> +<Select TItemValue="string" TItem="string" @bind-Value="@protocolType" Style="width:260px" OnSelectedItemChanged="OnSelectProtocolType"> <SelectOptions> - <SelectOption TItemValue="string" TItem="string" Label="国标" Value="@("JT808")" /> + <SelectOption TItemValue="string" TItem="string" Label="国标(通过包自动识别版本号)" Value="@("JT808")" /> <SelectOption TItemValue="string" TItem="string" Label="国标扩展JT1078" Value="@("JT808_JT1078")" /> - <SelectOption TItemValue="string" TItem="string" Label="国标扩展主动安全(苏标)" Value="@("JT808_JTAS")" /> + <SelectOption TItemValue="string" TItem="string" Label="国标扩展主动安全(苏标)" Value="@("JT808_SuBiao")" /> + <SelectOption TItemValue="string" TItem="string" Label="国标扩展主动安全(粤标)" Value="@("JT808_YueBiao")" /> <SelectOption TItemValue="string" TItem="string" Label="公交扩展协议(锐明)" Value="@("JT808_JTRM")" /> + <SelectOption TItemValue="string" TItem="string" Label="国标(强制使用2013版本解析)" Value="@("JT2013Force")" /> </SelectOptions> </Select> @@ -33,7 +35,7 @@ <Alert Type="@AlertType.Error" Description="@ErrerMessage" Closable AfterClose="OnDismiss" /> } -<div class="right"> +<div style="padding: 26px; min-height: 350px"> @if (JT808HeaderPackages != null) { <AntList DataSource="@JT808HeaderPackages" TItem="JT808HeaderPackage"> @@ -69,7 +71,9 @@ private JT808Serializer JTRM_Serializer; - private JT808Serializer JTAS_Serializer; + private JT808Serializer JTSuBiao_Serializer; + + private JT808Serializer JTYueBiao_Serializer; private JT808Serializer JT1078Serializer; @@ -77,6 +81,7 @@ private List<JT808HeaderPackage> JT808HeaderPackages; private string HexData = HexDataTmp; private static string HexDataTmp = "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 static string Hex2013ForceTmp = "7e0102400c01003000068109024a3130303330303030363831857e"; private static string HexSubDataTmp = "7E120523A204066657506200EB00020001015A00000023012012191042052012191050190000000000000000000101064446D10120121910221720121910420500000000000000000001010F1FE8EB0120121910023420121910221700000000000000000001010F182D5C0120121909471120121910015500000000000000000001010B38F2430120121909274020121909471100000000000000000001010F056DB40120121909080920121909274000000000000000000001010F0724380120121908483820121909080900000000000000000001010F0530AB0120121908290720121908483800000000000000000001010F05896C0120121908093720121908290700000000000000000001010F02CD3B0120121907500520121908093700000000000000000001010F056FEF0120121907303420121907500500000000000000000001010F043C3401201219072541201219073034000000000000000000010103C26C5F0120121907061120121907254100000000000000000001010F03F0C10120121906464220121907061100000000000000000001010F02F6330120121906271220121906464200000000000000000001010F02E43B0120121906074220121906271200000000000000000001010F033D670120121905481120121906074200000000000000000001010F088BF20120121905284120121905481100000000000000000001010F03F9FE0120121905091020121905284100000000000000000001010F05B1040120121904494020121905091000000000000000000001010F02B3540120121904301020121904494000000000000000000001010F0417B00120121904103920121904301000000000000000000001010F0538970120121903510820121904103900000000000000000001010F054E9E0120121903313820121903510800000000000000000001010F016ECB0120121903120820121903313800000000000000000001010F0333C00120121902523820121903120700000000000000000001010F029D230120121902330720121902523700000000000000000001010F0354E40120121902133720121902330700000000000000000001010F03303D0120121901540720121902133700000000000000000001010F04981E0120121901343720121901540700000000000000000001010F02AD940120121901150820121901343700000000000000000001010EFFD7CF0120121900553720121901150800000000000000000001010F07D9330120121900360720121900553700000000000000000001010F040E740C7E\n7E1205203804066657506200EC000200020120121900163320121900360700000000000000000001010F0CE4CD0120121900002220121900163300000000000000000001010C6F9E7B5D7E"; private string Json; @@ -96,6 +101,10 @@ { HexData = HexSubDataTmp; } + else if("JT2013Force"== protocolType) + { + HexData = Hex2013ForceTmp; + } else { HexData = HexDataTmp; @@ -113,7 +122,7 @@ { Serializer = config.GetSerializer(); JT1078Serializer = jT808_JT1078_Config.GetSerializer(); - JTAS_Serializer = jT808_JTActiveSafety_Config.GetSerializer(); + JTSuBiao_Serializer = jT808_SuBiao_Config.GetSerializer(); JTRM_Serializer = jT808_Streamax_Config.GetSerializer(); } @@ -135,12 +144,15 @@ case "JT808_JT1078": Json = JT1078Serializer.Analyze(data, options: JTJsonWriterOptions.Instance); break; - case "JT808_JTAS": - Json = JTAS_Serializer.Analyze(data, options: JTJsonWriterOptions.Instance); + case "JT808_SuBiao": + Json = JTSuBiao_Serializer.Analyze(data, options: JTJsonWriterOptions.Instance); break; case "JT808_JTRM": Json = JTRM_Serializer.Analyze(data, options: JTJsonWriterOptions.Instance); break; + case "JT2013Force": + Json = Serializer.Analyze(data, JT808.Protocol.Enums.JT808Version.JTT2013Force ,options: JTJsonWriterOptions.Instance); + break; } } else if (hexs.Length > 1) @@ -172,12 +184,15 @@ case "JT808_JT1078": Json = JT1078Serializer.Analyze(msgid, bodies.ToArray(), options: JTJsonWriterOptions.Instance); break; - case "JT808_JTAS": - Json = JTAS_Serializer.Analyze(msgid, bodies.ToArray(), options: JTJsonWriterOptions.Instance); + case "JT808_SuBiao": + Json = JTSuBiao_Serializer.Analyze(msgid, bodies.ToArray(), options: JTJsonWriterOptions.Instance); break; case "JT808_JTRM": Json = JTRM_Serializer.Analyze(msgid, bodies.ToArray(), options: JTJsonWriterOptions.Instance); break; + case "JT2013Force": + Json = Serializer.Analyze(msgid, bodies.ToArray(), JT808.Protocol.Enums.JT808Version.JTT2013Force, options: JTJsonWriterOptions.Instance); + break; } } else diff --git a/src/JTTools/Pages/Map.razor b/src/JTTools/Pages/Map.razor index aba89f0..51a225f 100644 --- a/src/JTTools/Pages/Map.razor +++ b/src/JTTools/Pages/Map.razor @@ -13,7 +13,7 @@ <Radio RadioButton Value="@("BD09")">BD09</Radio> </RadioGroup> <br /> -<AntDesign.Input @bind-Value="LngLat" style="width: 450px;" Size="large" AllowClear> +<AntDesign.Input @bind-Value="LngLat" Size="large" AllowClear> <AddOnBefore>经纬度</AddOnBefore> </AntDesign.Input> <Button Type="primary" @onclick="Convert" Size="large"> @@ -71,55 +71,65 @@ void OnSelectedCoordinateTypeChanged(string e) { + isOpen = false; if (string.IsNullOrEmpty(LngLat)) { return; } - string[] arr = LngLat.Split(new string[]{ ",", ",", "|", ":" }, StringSplitOptions.RemoveEmptyEntries); + string[] arr = LngLat.Split(new string[]{ ",", ",", "|", ":",";",";" }, StringSplitOptions.RemoveEmptyEntries); List<double> wgs84s = new List<double>(); List<double> gcj02s = new List<double>(); List<double> bd09s = new List<double>(); for (var i=0;i< arr.Length; i=i+2) { - if (double.TryParse(arr[i], out double lng) && double.TryParse(arr[i+1], out double lat)) + try { - if (e == "WGS84") + if (double.TryParse(arr[i], out double lng) && double.TryParse(arr[i + 1], out double lat)) { - wgs84s.Add(lng); - wgs84s.Add(lat); - var gcj02 = Coordtransform.Wgs84togcj02(lng, lat); - gcj02s.Add(gcj02[0]); - gcj02s.Add(gcj02[1]); - var bd09 = Coordtransform.Wgs84tobd09(lng, lat); - bd09s.Add(bd09[0]); - bd09s.Add(bd09[1]); - } - else if (e == "GCJ02") - { - gcj02s.Add(lng); - gcj02s.Add(lat); - var wgs84 = Coordtransform.Gcj02towgs84(lng, lat); - wgs84s.Add(wgs84[0]); - wgs84s.Add(wgs84[1]); - var bd09 = Coordtransform.Gcj02tobd09(lng, lat); - bd09s.Add(bd09[0]); - bd09s.Add(bd09[1]); - } - else if (e == "BD09") - { - bd09s.Add(lng); - bd09s.Add(lat); - - var wgs84 = Coordtransform.Bd09towgs84(lng, lat); - wgs84s.Add(wgs84[0]); - wgs84s.Add(wgs84[1]); - - var gcj02 = Coordtransform.Bd09togcj02(lng, lat); - gcj02s.Add(gcj02[0]); - gcj02s.Add(gcj02[1]); - + if (e == "WGS84") + { + wgs84s.Add(lng); + wgs84s.Add(lat); + var gcj02 = Coordtransform.Wgs84togcj02(lng, lat); + gcj02s.Add(gcj02[0]); + gcj02s.Add(gcj02[1]); + var bd09 = Coordtransform.Wgs84tobd09(lng, lat); + bd09s.Add(bd09[0]); + bd09s.Add(bd09[1]); + } + else if (e == "GCJ02") + { + gcj02s.Add(lng); + gcj02s.Add(lat); + var wgs84 = Coordtransform.Gcj02towgs84(lng, lat); + wgs84s.Add(wgs84[0]); + wgs84s.Add(wgs84[1]); + var bd09 = Coordtransform.Gcj02tobd09(lng, lat); + bd09s.Add(bd09[0]); + bd09s.Add(bd09[1]); + } + else if (e == "BD09") + { + bd09s.Add(lng); + bd09s.Add(lat); + + var wgs84 = Coordtransform.Bd09towgs84(lng, lat); + wgs84s.Add(wgs84[0]); + wgs84s.Add(wgs84[1]); + + var gcj02 = Coordtransform.Bd09togcj02(lng, lat); + gcj02s.Add(gcj02[0]); + gcj02s.Add(gcj02[1]); + + } } } + catch(Exception ex) + { + isOpen = true; + ErrerMessage = ex.Message; + break; + } } WGS84_LngLat = string.Join(',', wgs84s); GCJ02_LngLat = string.Join(',', gcj02s); diff --git a/src/JTTools/Program.cs b/src/JTTools/Program.cs index c042d97..e4635b0 100644 --- a/src/JTTools/Program.cs +++ b/src/JTTools/Program.cs @@ -1,7 +1,8 @@ using System; using JT808.Protocol; using JT808.Protocol.Extensions.JT1078; -using JT808.Protocol.Extensions.JTActiveSafety; +using JT808.Protocol.Extensions.SuBiao; +using JT808.Protocol.Extensions.YueBiao; using JT809.Protocol; using JT809.Protocol.Extensions.JT1078; using Microsoft.AspNetCore.Hosting; @@ -71,8 +72,10 @@ namespace JTTools .ConfigureServices(services => { services.AddJT808Configure(); - services.AddJT808Configure(new JT808_JTActiveSafety_Config()) - .AddJTActiveSafetyConfigure(); + services.AddJT808Configure(new JT808_SuBiao_Config()) + .AddSuBiaoConfigure(); + services.AddJT808Configure(new JT808_YueBiao_Config()) + .AddYueBiaoConfigure(); services.AddJT808Configure(new JT808_JT1078_Config()) .AddJT1078Configure(); services.AddJT809Configure(new JT809_2011_Config())