using JTNE.Protocol.Attributes; using JTNE.Protocol.Enums; using JTNE.Protocol.Formatters; using System; using System.IO; namespace JTNE.Protocol { /// /// 新能源包 /// [JTNEFormatter(typeof(JTNEPackageFormatter))] public class JTNEPackage { public const int FixedHeaderLength = 24; public const byte BeginFlag = 0x23; /// /// 起始符1 /// public byte BeginFlag1 { get; set; } = BeginFlag; /// /// 起始符2 /// public byte BeginFlag2 { get; set; } = BeginFlag; /// /// 命令标识 /// /// public JTNEMsgId MsgId { get; set; } /// /// 应答标志 /// /// public JTNEAskId AskId { get; set; } /// /// 车辆识别码 /// public string VIN { get; set; } /// /// 数据加密方式 (默认不加密) /// 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效 /// /// public JTNEEncryptMethod EncryptMethod { get; set; } = JTNEEncryptMethod.None; /// /// 数据单元长度是数据单元的总字节数,有效值范围:0-65531 /// public ushort DataUnitLength { get; set; } /// /// 数据体 /// public JTNEBodies Bodies { get; set; } /// /// 采用BCC(异或检验)法,校验范围从命令单元的第一个字节开始,同后一个字节异或,直到校验码前一个字节为止, /// 校验码占用一个字节,当数据单元存在加密时,应先加密后检验,先校验后解密 /// public byte BCCCode { get; set; } } }