diff --git a/src/JT809.Protocol.Extensions/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj b/src/JT809.Protocol.Extensions/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj index e682dc9..afadb68 100644 --- a/src/JT809.Protocol.Extensions/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj +++ b/src/JT809.Protocol.Extensions/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj @@ -6,6 +6,7 @@ <Description>基于JT809协议、GB809协议扩展的视频消息协议</Description> <PackageReleaseNotes>基于JT809协议、GB809协议扩展的视频消息协议</PackageReleaseNotes> <DocumentationFile>JT809.Protocol.Extensions.JT1078.xml</DocumentationFile> + <NoWarn>1701;1702;1591</NoWarn> </PropertyGroup> <ItemGroup> diff --git a/src/JT809.Protocol.Test/JT809.Protocol.Test.csproj b/src/JT809.Protocol.Test/JT809.Protocol.Test.csproj index d771478..c5bfbd5 100644 --- a/src/JT809.Protocol.Test/JT809.Protocol.Test.csproj +++ b/src/JT809.Protocol.Test/JT809.Protocol.Test.csproj @@ -2,8 +2,8 @@ <PropertyGroup> <TargetFramework>net5.0</TargetFramework> - <IsPackable>false</IsPackable> + <NoWarn>1701;1702;1591</NoWarn> </PropertyGroup> <ItemGroup> diff --git a/src/JT809.Protocol/Extensions/JT809EnumExtensions.cs b/src/JT809.Protocol/Extensions/JT809EnumExtensions.cs index e774843..e3df0b4 100644 --- a/src/JT809.Protocol/Extensions/JT809EnumExtensions.cs +++ b/src/JT809.Protocol/Extensions/JT809EnumExtensions.cs @@ -100,7 +100,7 @@ namespace JT809.Protocol.Extensions /// <summary> /// 获取DescriptionAttribute特性枚举及描述 /// </summary> - /// <param name="type"></param> + /// <param name="value"></param> /// <returns></returns> public static Dictionary<string, string> GetDescriptionAttributeDictionary(this Enum value) { @@ -117,7 +117,7 @@ namespace JT809.Protocol.Extensions /// <summary> /// 获取DisplayNameAttribute特性枚举值的描述 /// </summary> - /// <param name="obj">枚举值</param> + /// <param name="value">枚举值</param> /// <returns></returns> public static string GetDisplayName(this Enum value) { @@ -128,7 +128,7 @@ namespace JT809.Protocol.Extensions /// <summary> /// 获取DisplayNameAttribute特性枚举及描述 /// </summary> - /// <param name="type"></param> + /// <param name="value"></param> /// <returns></returns> public static Dictionary<string, string> GetDisplayNameAttributeDictionary(this Enum value) { diff --git a/src/JT809.Protocol/Extensions/JT809HexExtensions.cs b/src/JT809.Protocol/Extensions/JT809HexExtensions.cs index 1efae8d..73fca66 100644 --- a/src/JT809.Protocol/Extensions/JT809HexExtensions.cs +++ b/src/JT809.Protocol/Extensions/JT809HexExtensions.cs @@ -49,7 +49,6 @@ namespace JT809.Protocol.Extensions /// 16进制字符串转16进制数组 /// </summary> /// <param name="hexString"></param> - /// <param name="separator"></param> /// <returns></returns> public static byte[] ToHexBytes(this string hexString) { diff --git a/src/JT809.Protocol/Internal/JT809BusinessTypeFactory.cs b/src/JT809.Protocol/Internal/JT809BusinessTypeFactory.cs index 659ef1c..74607de 100644 --- a/src/JT809.Protocol/Internal/JT809BusinessTypeFactory.cs +++ b/src/JT809.Protocol/Internal/JT809BusinessTypeFactory.cs @@ -40,7 +40,7 @@ namespace JT808.Protocol.Internal version = (JT809Version)type.GetProperty(nameof(JT809Bodies.Version)).GetValue(instance); replaceInternalMsgId = (bool)type.GetProperty(nameof(JT809Bodies.ReplaceInternalMsgId)).GetValue(instance); } - catch (Exception ex) + catch { continue; } @@ -78,7 +78,7 @@ namespace JT808.Protocol.Internal { throw new ArgumentException($"{type.FullName} {msgId} An element with the same key already exists."); } - } + } } else { @@ -144,7 +144,7 @@ namespace JT808.Protocol.Internal public bool TryGetValue(ushort msgId, JT809Version version, out object instance) { - if(version== JT809Version.JTT2019) + if (version == JT809Version.JTT2019) { return Map_2019.TryGetValue(msgId, out instance); } diff --git a/src/JT809.Protocol/Internal/JT809SubBusinessTypeFactory.cs b/src/JT809.Protocol/Internal/JT809SubBusinessTypeFactory.cs index ea94eae..e8f6d35 100644 --- a/src/JT809.Protocol/Internal/JT809SubBusinessTypeFactory.cs +++ b/src/JT809.Protocol/Internal/JT809SubBusinessTypeFactory.cs @@ -33,7 +33,7 @@ namespace JT808.Protocol.Internal msgId = (ushort)type.GetProperty(nameof(JT809SubBodies.SubMsgId)).GetValue(instance); replaceInternalSubMsgId = (bool)type.GetProperty(nameof(JT809SubBodies.ReplaceInternalSubMsgId)).GetValue(instance); } - catch (Exception ex) + catch { continue; } diff --git a/src/JT809.Protocol/JT809 - Backup.Protocol.csproj b/src/JT809.Protocol/JT809 - Backup.Protocol.csproj new file mode 100644 index 0000000..65d1886 --- /dev/null +++ b/src/JT809.Protocol/JT809 - Backup.Protocol.csproj @@ -0,0 +1,130 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <Import Project="..\Info.props" /> + <PropertyGroup> + <PackageId>JT809</PackageId> + <Product>JT809</Product> + <Description>JT809协议、GB809协议、道路运输车辆卫星定位系统-平台数据交换协议(支持2011、2019版本) </Description> + <PackageReleaseNotes>JT809协议、GB809协议、道路运输车辆卫星定位系统-平台数据交换协议(支持2011、2019版本) </PackageReleaseNotes> + <DocumentationFile>JT809.Protocol.xml</DocumentationFile> + </PropertyGroup> + + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'"> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <NoWarn>1701;1702;1591</NoWarn> + </PropertyGroup> + + <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|AnyCPU'"> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + </PropertyGroup> + + <ItemGroup> + <Compile Remove="Configs\**" /> + <Compile Remove="Enums\**" /> + <Compile Remove="Escape\**" /> + <Compile Remove="ProtocolPacket\**" /> + <EmbeddedResource Remove="Configs\**" /> + <EmbeddedResource Remove="Enums\**" /> + <EmbeddedResource Remove="Escape\**" /> + <EmbeddedResource Remove="ProtocolPacket\**" /> + <None Remove="Configs\**" /> + <None Remove="Enums\**" /> + <None Remove="Escape\**" /> + <None Remove="ProtocolPacket\**" /> + <None Include="..\..\LICENSE"> + <Pack>True</Pack> + <PackagePath></PackagePath> + </None> + </ItemGroup> + + <ItemGroup> + <Compile Remove="Constants.cs" /> + <Compile Remove="IEscape.cs" /> + </ItemGroup> + + <ItemGroup> + <Compile Include="Configs\JT809EncryptOptions.cs" /> + <Compile Include="Configs\JT809HeaderOptions.cs" /> + <Compile Include="Enums\JT809Version.cs" /> + <Compile Include="Enums\JT808_Alarm.cs" /> + <Compile Include="Enums\JT808_Status.cs" /> + <Compile Include="Enums\JT809CommandType.cs" /> + <Compile Include="Enums\JT809ErrorCode.cs" /> + <Compile Include="Enums\JT809BusinessType.cs" /> + <Compile Include="Enums\JT809SubBusinessType.cs" /> + <Compile Include="Enums\JT809VehicleColorType.cs" /> + <Compile Include="Enums\JT809WarnSrc.cs" /> + <Compile Include="Enums\JT809WarnType.cs" /> + <Compile Include="Enums\JT809_0x1413_SupervisionLevel.cs" /> + <Compile Include="Enums\JT809_0x1412_Result.cs" /> + <Compile Include="Enums\JT809_0x1411_Result.cs" /> + <Compile Include="Enums\JT809_0x1502_PhotoRspFlag.cs" /> + <Compile Include="Enums\JT809_0x1501_Result.cs" /> + <Compile Include="Enums\JT809_0x1505_Result.cs" /> + <Compile Include="Enums\JT809_0x1503_Result.cs" /> + <Compile Include="Enums\JT809_0x1403_Result.cs" /> + <Compile Include="Enums\JT809_0x1401_Result.cs" /> + <Compile Include="Enums\JT809_0x1002_Result.cs" /> + <Compile Include="Enums\JT809_0x1007_ErrorCode.cs" /> + <Compile Include="Enums\JT809_0x920A_UploadFlag.cs" /> + <Compile Include="Enums\JT809_0x9201_Result.cs" /> + <Compile Include="Enums\JT809_0x920D_Result.cs" /> + <Compile Include="Enums\JT809_0x9302_ObjectType.cs" /> + <Compile Include="Enums\JT809_0x9301_ObjectType.cs" /> + <Compile Include="Enums\JT809_0x1301_ObjectType.cs" /> + <Compile Include="Enums\JT809_0x9209_Result.cs" /> + <Compile Include="Enums\JT809_0x9208_Result.cs" /> + <Compile Include="Enums\JT809_0x9207_Result.cs" /> + <Compile Include="Enums\JT809_0x9206_ReasonCode.cs" /> + <Compile Include="Enums\JT809_0x9205_ReasonCode.cs" /> + <Compile Include="Enums\JT809_0x9007_ReasonCode.cs" /> + <Compile Include="Enums\JT809_0x1008_ReasonCode.cs" /> + <Compile Include="Enums\JT809_0x9002_Result.cs" /> + <Compile Include="Enums\JT809_0x9008_ReasonCode.cs" /> + <Compile Include="Enums\JT809_0x9503_MsgPriority.cs" /> + <Compile Include="Enums\JT809_9401_SupervisionLevel.cs" /> + <Compile Include="Enums\JT809_LinkType.cs" /> + <Compile Include="Enums\JT809_VehiclePositionEncrypt.cs" /> + <Compile Include="Enums\JT809__0x9502_ImageType.cs" /> + <Compile Include="Enums\JT809__0x9502_SizeType.cs" /> + </ItemGroup> + + <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' "> + <PackageReference Include="Microsoft.CSharp" Version="4.6.0" /> + <PackageReference Include="System.Buffers" Version="4.5.1" /> + <PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" /> + <PackageReference Include="System.Memory" Version="4.5.4" /> + <PackageReference Include="System.Reflection.Extensions" Version="4.3.0" /> + </ItemGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> + <PackageReference Include="System.Text.Encoding.CodePages" Version="5.0.0" /> + <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" /> + <PackageReference Include="System.Text.Json" Version="5.0.0" /> + </ItemGroup> + + <ItemGroup> + <Compile Update="Extensions\JT809PackageExtensionsTemplate.cs"> + <DesignTime>True</DesignTime> + <AutoGen>True</AutoGen> + <DependentUpon>JT809PackageExtensionsTemplate.tt</DependentUpon> + </Compile> + <Compile Update="Extensions\JT809SubPackageExtensionsTemplate.cs"> + <DesignTime>True</DesignTime> + <AutoGen>True</AutoGen> + <DependentUpon>JT809SubPackageExtensionsTemplate.tt</DependentUpon> + </Compile> + </ItemGroup> + + <ItemGroup> + <None Update="Extensions\JT809PackageExtensionsTemplate.tt"> + <Generator>TextTemplatingFileGenerator</Generator> + <LastGenOutput>JT809PackageExtensionsTemplate.cs</LastGenOutput> + </None> + <None Update="Extensions\JT809SubPackageExtensionsTemplate.tt"> + <Generator>TextTemplatingFileGenerator</Generator> + <LastGenOutput>JT809SubPackageExtensionsTemplate.cs</LastGenOutput> + </None> + </ItemGroup> + +</Project> diff --git a/src/JT809.Protocol/JT809.Protocol.csproj b/src/JT809.Protocol/JT809.Protocol.csproj index ec91249..f5bb4ad 100644 --- a/src/JT809.Protocol/JT809.Protocol.csproj +++ b/src/JT809.Protocol/JT809.Protocol.csproj @@ -6,6 +6,7 @@ <Description>JT809协议、GB809协议、道路运输车辆卫星定位系统-平台数据交换协议(支持2011、2019版本) </Description> <PackageReleaseNotes>JT809协议、GB809协议、道路运输车辆卫星定位系统-平台数据交换协议(支持2011、2019版本) </PackageReleaseNotes> <DocumentationFile>JT809.Protocol.xml</DocumentationFile> + <NoWarn>1701;1702;1591</NoWarn> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'"> @@ -33,6 +34,7 @@ <Pack>True</Pack> <PackagePath></PackagePath> </None> + <None Include="..\.editorconfig" Link=".editorconfig" /> </ItemGroup> <ItemGroup> diff --git a/src/JT809.Protocol/JT809.Protocol.xml b/src/JT809.Protocol/JT809.Protocol.xml index cdcd9c9..ac82185 100644 --- a/src/JT809.Protocol/JT809.Protocol.xml +++ b/src/JT809.Protocol/JT809.Protocol.xml @@ -89,21 +89,21 @@ <summary> 获取DescriptionAttribute特性枚举及描述 </summary> - <param name="type"></param> + <param name="value"></param> <returns></returns> </member> <member name="M:JT809.Protocol.Extensions.JT809EnumExtensions.GetDisplayName(System.Enum)"> <summary> 获取DisplayNameAttribute特性枚举值的描述 </summary> - <param name="obj">枚举值</param> + <param name="value">枚举值</param> <returns></returns> </member> <member name="M:JT809.Protocol.Extensions.JT809EnumExtensions.GetDisplayNameAttributeDictionary(System.Enum)"> <summary> 获取DisplayNameAttribute特性枚举及描述 </summary> - <param name="type"></param> + <param name="value"></param> <returns></returns> </member> <member name="M:JT809.Protocol.Extensions.JT809EnumExtensions.GetAttribute``1(System.Enum)"> @@ -134,7 +134,6 @@ 16进制字符串转16进制数组 </summary> <param name="hexString"></param> - <param name="separator"></param> <returns></returns> </member> <member name="T:JT809.Protocol.Extensions.JT809MessagePackFormatterResolverExtensions"> diff --git a/src/JT809.Protocol/MessageBody/JT809_0x1200.cs b/src/JT809.Protocol/MessageBody/JT809_0x1200.cs index 1ac0b2c..25bdecb 100644 --- a/src/JT809.Protocol/MessageBody/JT809_0x1200.cs +++ b/src/JT809.Protocol/MessageBody/JT809_0x1200.cs @@ -17,7 +17,7 @@ namespace JT809.Protocol.MessageBody /// <para>业务数据类型标识:UP_EXG_MSG</para> /// <para>描述:下级平台向上级平台发送车辆动态信息交换业务数据包</para> /// </summary> - public class JT809_0x1200: JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_0x1200>, IJT809Analyze + public class JT809_0x1200 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_0x1200>, IJT809Analyze { public override ushort MsgId => JT809BusinessType.主链路车辆动态信息交换业务.ToUInt16Value(); public override string Description => "主链路车辆动态信息交换业务"; @@ -128,7 +128,7 @@ namespace JT809.Protocol.MessageBody writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition); } } - catch(Exception ex) + catch { throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); } diff --git a/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs b/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs index c49f0cf..b3be19b 100644 --- a/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs +++ b/src/JT809.Protocol/MessagePack/JT809MessagePackReader.cs @@ -34,15 +34,15 @@ namespace JT809.Protocol.MessagePack /// 解码(转义还原),计算校验和 /// </summary> /// <param name="buffer"></param> - public JT809MessagePackReader(ReadOnlySpan<byte> srcBuffer) + public JT809MessagePackReader(ReadOnlySpan<byte> buffer) { - SrcBuffer = srcBuffer; + SrcBuffer = buffer; ReaderCount = 0; _realCheckCRCCode = 0x00; _calculateCheckCRCCode = 0xFFFF; _checkCRCCodeVali = false; _decoded = false; - Reader = srcBuffer; + Reader = buffer; } /// <summary> /// 在解码的时候把校验和也计算出来,避免在循环一次进行校验 @@ -319,18 +319,18 @@ namespace JT809.Protocol.MessagePack /// yyMMddHHmmss /// </summary> /// <param name="fromBase">>D2: 10 X2:16</param> - public DateTime ReadDateTime6(string format = "X2") + public DateTime ReadDateTime6(string fromBase = "X2") { DateTime d; try { var readOnlySpan = GetReadOnlySpan(6); - int year = Convert.ToInt32(readOnlySpan[0].ToString(format)) + JT809Constants.DateLimitYear; - int month = Convert.ToInt32(readOnlySpan[1].ToString(format)); - int day = Convert.ToInt32(readOnlySpan[2].ToString(format)); - int hour = Convert.ToInt32(readOnlySpan[3].ToString(format)); - int minute = Convert.ToInt32(readOnlySpan[4].ToString(format)); - int second = Convert.ToInt32(readOnlySpan[5].ToString(format)); + int year = Convert.ToInt32(readOnlySpan[0].ToString(fromBase)) + JT809Constants.DateLimitYear; + int month = Convert.ToInt32(readOnlySpan[1].ToString(fromBase)); + int day = Convert.ToInt32(readOnlySpan[2].ToString(fromBase)); + int hour = Convert.ToInt32(readOnlySpan[3].ToString(fromBase)); + int minute = Convert.ToInt32(readOnlySpan[4].ToString(fromBase)); + int second = Convert.ToInt32(readOnlySpan[5].ToString(fromBase)); d = new DateTime(year, month, day, hour, minute, second); } catch (Exception) diff --git a/src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1203.cs b/src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1203.cs index 366df20..64e0638 100644 --- a/src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1203.cs +++ b/src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1203.cs @@ -48,7 +48,7 @@ namespace JT809.Protocol.SubMessageBody try { writer.WriteStartObject(); - config.GetMessagePackFormatter<JT809_0x1200_0x1202>().Analyze(ref reader,writer, config); + config.GetMessagePackFormatter<JT809_0x1200_0x1202>().Analyze(ref reader, writer, config); writer.WriteEndObject(); } catch (Exception) @@ -92,7 +92,7 @@ namespace JT809.Protocol.SubMessageBody { item.Serialize(ref writer, item, config); } - catch (Exception ex) + catch { } diff --git a/src/JT809.Protocol/SubMessageBody/JT809_0x9200_0x9203.cs b/src/JT809.Protocol/SubMessageBody/JT809_0x9200_0x9203.cs index a3448f6..9c2bb8e 100644 --- a/src/JT809.Protocol/SubMessageBody/JT809_0x9200_0x9203.cs +++ b/src/JT809.Protocol/SubMessageBody/JT809_0x9200_0x9203.cs @@ -86,7 +86,7 @@ namespace JT809.Protocol.SubMessageBody { item.Serialize(ref writer, item, config); } - catch (Exception ex) + catch { }