From 13f75a4305d682009049c8ad68a2373a20c0b9b6 Mon Sep 17 00:00:00 2001
From: SmallChi <564952747@qq.com>
Date: Sun, 20 Jan 2019 22:34:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E6=96=B0=E8=83=BD=E6=BA=90?=
=?UTF-8?q?=E5=8D=8F=E8=AE=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/JTNE.Protocol/JTNE.Protocol.csproj | 35 ++++++++++++++++
src/JTNE.Protocol/JTNE.Protocol.xml | 56 ++++++++++++++++++++++++++
src/JTNE.Protocol/JTNEPackage.cs | 51 +++++++++++++++++++++++
src/JTNewEnergy.sln | 25 ++++++++++++
4 files changed, 167 insertions(+)
create mode 100644 src/JTNE.Protocol/JTNE.Protocol.csproj
create mode 100644 src/JTNE.Protocol/JTNE.Protocol.xml
create mode 100644 src/JTNE.Protocol/JTNEPackage.cs
create mode 100644 src/JTNewEnergy.sln
diff --git a/src/JTNE.Protocol/JTNE.Protocol.csproj b/src/JTNE.Protocol/JTNE.Protocol.csproj
new file mode 100644
index 0000000..6c50f01
--- /dev/null
+++ b/src/JTNE.Protocol/JTNE.Protocol.csproj
@@ -0,0 +1,35 @@
+
+
+
+ netstandard2.0
+ latest
+ Copyright 2018.
+ SmallChi
+ JTNewEnergy
+ JTNewEnergy
+ JTNewEnergy协议、GBNewEnergy协议、电动汽车远程服务与管理系统平台数据交换
+ JTNewEnergy协议、GBNewEnergy协议、电动汽车远程服务与管理系统平台数据交换
+ false
+ https://github.com/SmallChi/JTNewEnergy
+ https://github.com/SmallChi/JTNewEnergy
+ https://github.com/SmallChi/JTNewEnergy/blob/master/LICENSE
+ true
+ 1.0.0
+
+
+
+ D:\My Project\JTNewEnergy\src\JTNE.Protocol\JTNE.Protocol.xml
+
+
+
+ D:\My Project\JTNewEnergy\src\JTNE.Protocol\JTNE.Protocol.xml
+
+
+
+
+
+
+
+
+
+
diff --git a/src/JTNE.Protocol/JTNE.Protocol.xml b/src/JTNE.Protocol/JTNE.Protocol.xml
new file mode 100644
index 0000000..dc0285d
--- /dev/null
+++ b/src/JTNE.Protocol/JTNE.Protocol.xml
@@ -0,0 +1,56 @@
+
+
+
+ JTNE.Protocol
+
+
+
+
+ 新能源包
+
+
+
+
+ 固定为24个字节长度
+
+
+
+
+ 起始符
+ 0x23
+
+
+
+
+ 命令标识
+
+
+
+
+ 应答标志
+
+
+
+
+ 车辆识别码
+
+
+
+
+ 数据加密方式
+ 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效
+
+
+
+
+ 数据单元长度是数据单元的总字节数,有效值范围:0-65531
+
+
+
+
+ 采用BCC(异或检验)法,校验范围从命令单元的第一个字节开始,同后一个字节异或,直到校验码前一个字节为止,
+ 校验码占用一个字节,当数据单元存在加密时,应先加密后检验,先校验后解密
+
+
+
+
diff --git a/src/JTNE.Protocol/JTNEPackage.cs b/src/JTNE.Protocol/JTNEPackage.cs
new file mode 100644
index 0000000..df5ff63
--- /dev/null
+++ b/src/JTNE.Protocol/JTNEPackage.cs
@@ -0,0 +1,51 @@
+using System;
+using System.IO;
+
+namespace JTNE.Protocol
+{
+ ///
+ /// 新能源包
+ ///
+ public class JTNEPackage
+ {
+ ///
+ /// 固定为24个字节长度
+ ///
+ public const int HeaderFixedByteLength = 24;
+ ///
+ /// 起始符
+ /// 0x23
+ ///
+ public string BeginFlag { get; set; } = "##";
+ ///
+ /// 命令标识
+ ///
+ public byte MsgId { get; set; }
+ ///
+ /// 应答标志
+ ///
+ public byte AskId { get; set; }
+ ///
+ /// 车辆识别码
+ ///
+ public string VIN { get; set; }
+ ///
+ /// 数据加密方式
+ /// 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效
+ ///
+ public byte EncryptMethod { get; set; }
+ ///
+ /// 数据单元长度是数据单元的总字节数,有效值范围:0-65531
+ ///
+ public ushort DataUnitLength { get; set; }
+ /////
+ ///// 数据体
+ /////
+ //public NEBodies Bodies { get; protected set; }
+ ///
+ /// 采用BCC(异或检验)法,校验范围从命令单元的第一个字节开始,同后一个字节异或,直到校验码前一个字节为止,
+ /// 校验码占用一个字节,当数据单元存在加密时,应先加密后检验,先校验后解密
+ ///
+ public byte BCCCode { get; set; }
+ }
+}
diff --git a/src/JTNewEnergy.sln b/src/JTNewEnergy.sln
new file mode 100644
index 0000000..1d97cf2
--- /dev/null
+++ b/src/JTNewEnergy.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28407.52
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JTNE.Protocol", "JTNE.Protocol\JTNE.Protocol.csproj", "{5B164F58-141D-474E-A82E-672A1C252029}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5B164F58-141D-474E-A82E-672A1C252029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B164F58-141D-474E-A82E-672A1C252029}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B164F58-141D-474E-A82E-672A1C252029}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5B164F58-141D-474E-A82E-672A1C252029}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E7AF20B3-4327-4DF7-B503-9FE08AA92A75}
+ EndGlobalSection
+EndGlobal