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; }
}
}