MembershipInquiryRequest.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Edge.Core.Parser.BinaryParser.Util;
  2. using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Base;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Outgoing
  8. {
  9. public class MembershipInquiryRequest : MembershipInquiryCommand
  10. {
  11. /// <summary>
  12. /// P-3, P-34, P-41
  13. /// </summary>
  14. /// <param name="processCode">定长,3个字节的BCD码</param>
  15. /// <param name="carPlateNumber">变长,最大长度64字节的ASCII码</param>
  16. /// <param name="terminalId">定长,12 个字节ASCII码</param>
  17. public MembershipInquiryRequest(string carPlateNumber, string terminalId)
  18. {
  19. Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
  20. base.P_3_处理码 = 020031;
  21. base.P_34_车牌号码 = carPlateNumber;
  22. base.P_41_终端编号 = terminalId;
  23. this.GenerateBitMapAndValue();
  24. }
  25. private void GenerateBitMapAndValue()
  26. {
  27. base.Content?.Clear();
  28. base.Content = new List<byte>()
  29. .Concat(base.P_3_处理码.GetBCDBytes(3))
  30. .Concat(Encoding.GetEncoding("GBK").GetBytes(base.P_34_车牌号码).Length.GetBCDBytes(2)).Concat(Encoding.GetEncoding("GBK").GetBytes(base.P_34_车牌号码))
  31. .Concat(Encoding.ASCII.GetBytes(base.P_41_终端编号.PadLeft(12, '0')))
  32. .ToList();
  33. //var fullMsgLen = base.Content.Count + 16;
  34. base.BitMap = BitMapHelper.CreateMap(3, 34, 41).ToList();
  35. //base.Content = fullMsgLen.GetBCDBytes(2)
  36. // .Concat(base.MessageTypeIdentifier.GetBCDBytes(2))
  37. // .Concat(base.BitMap)
  38. // .Concat(base.Content).ToList();
  39. }
  40. }
  41. }