using Edge.Core.Parser.BinaryParser.MessageEntity; using Org.BouncyCastle.Asn1.Ocsp; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HengshanPaymentTerminal.MessageEntity.Outgoing { /// /// 发送授权请求给油机数据对象 /// public class SendAuthorization : CommonMessage { /// /// 请求授权的枪号 /// public int NozzleNum { get; set; } /// /// 请求授权时间 /// private DateTime AuthorizationTime { get; set; } /// /// 授权类型:01:定金额,02:定升数 /// private int AuthorizationType { get; set; } /// /// 定值量 /// private decimal Value { get; set; } public SendAuthorization(int nozzleNum, DateTime authorizationTime, int authorizationType, decimal value,byte frame) { this.Handle = (byte)Command.ACCREDIT; NozzleNum = nozzleNum; AuthorizationTime = authorizationTime; AuthorizationType = authorizationType; Value = value; this.FrameNum = frame; } public override byte[] ToCommonByteArray() { List list = new List(); byte[] commandAndNozzle = { this.Handle, (byte)this.NozzleNum }; byte[] authorizationTimeBytes = ConvertDateTimeToByteArray(this.AuthorizationTime); //将小数点后移两位,因为油机只支持两位小数点,这边传过去的3位字节转为int后取后两位为十分位和百分位 int value = (int)this.Value * 100; byte[] valueBytes = NumberToByteArrayWithPadding(value, 3); list.AddRange(commandAndNozzle); list.AddRange(authorizationTimeBytes); list.Add((byte)this.AuthorizationType); list.AddRange(valueBytes); byte[] sendBytes = content2data(list.ToArray()); return sendBytes; } public override CommonMessage ToObject(byte[] datas) { return this; } } }