using Edge.Core.Parser.BinaryParser.Util; using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Base; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Outgoing { public class MembershipInquiryRequest : MembershipInquiryCommand { /// <summary> /// P-3, P-34, P-41 /// </summary> /// <param name="processCode">定长,3个字节的BCD码</param> /// <param name="carPlateNumber">变长,最大长度64字节的ASCII码</param> /// <param name="terminalId">定长,12 个字节ASCII码</param> public MembershipInquiryRequest(string carPlateNumber, string terminalId) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); base.P_3_处理码 = 020031; base.P_34_车牌号码 = carPlateNumber; base.P_41_终端编号 = terminalId; this.GenerateBitMapAndValue(); } private void GenerateBitMapAndValue() { base.Content?.Clear(); base.Content = new List<byte>() .Concat(base.P_3_处理码.GetBCDBytes(3)) .Concat(Encoding.GetEncoding("GBK").GetBytes(base.P_34_车牌号码).Length.GetBCDBytes(2)).Concat(Encoding.GetEncoding("GBK").GetBytes(base.P_34_车牌号码)) .Concat(Encoding.ASCII.GetBytes(base.P_41_终端编号.PadLeft(12, '0'))) .ToList(); //var fullMsgLen = base.Content.Count + 16; base.BitMap = BitMapHelper.CreateMap(3, 34, 41).ToList(); //base.Content = fullMsgLen.GetBCDBytes(2) // .Concat(base.MessageTypeIdentifier.GetBCDBytes(2)) // .Concat(base.BitMap) // .Concat(base.Content).ToList(); } } }