MessageBase.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Edge.Core.Parser.BinaryParser.Attributes;
  2. using Edge.Core.Parser.BinaryParser.MessageEntity;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Base
  7. {
  8. public class MessageBase : MessageTemplateBase
  9. {
  10. /// <summary>
  11. /// BCD, 0x11,0x12, stands for 1112
  12. /// Bin, 0x11, stands for 17
  13. /// AscIIInt, 0x32,0x37, stands for 27
  14. /// </summary>
  15. public static string VariableLengthMode = "AscIIInt";
  16. /// <summary>
  17. /// 长度位为2个字节二进制格式数字
  18. /// </summary>
  19. //[Format("Content", "+17", EncodingType.BCD, -9999)]
  20. //[Range(0, 655536, "Shell China ISO8583 msg must be range from {1} to {2}, but actual is {0}")]
  21. public int Length { get; set; }
  22. /// <summary>
  23. /// TPDU为10位数字,报文中以5字节BCD码表示,本接口对TPDU内容没有特殊要求,终端中按应用的需求配置为固定的TPDU即可,如“6000300000”
  24. /// </summary>
  25. [Format(5, EncodingType.BcdString, -9950)]
  26. public string TPDU { get; set; }
  27. /// <summary>
  28. /// MTI为消息类型标识(Message type identifier的简写),4位数字,报文中以2字节BCD码表示
  29. /// </summary>
  30. [Format(2, EncodingType.BCD, -9900)]
  31. [Range(0, 9999, "Shell China ISO8583 msg MessageTypeIdentifier must be range from {1} to {2}, but actual is {0}")]
  32. public int MessageTypeIdentifier { get; set; }
  33. /// <summary>
  34. /// 本接口规范仅使用8个字节基本位图,不使用扩展位图
  35. /// </summary>
  36. [EnumerableFormat(8, -9850, EncodingType = EncodingType.BIN)]
  37. public List<byte> BitMap { get; set; }
  38. [EnumerableFormat("%cascade", -9800)]
  39. public List<byte> Content { get; set; }
  40. public void SetBitMapAndValue(int fieldIndex, string value)
  41. {
  42. }
  43. public void SetBitMapAndValue(int fieldIndex, int value)
  44. {
  45. }
  46. }
  47. }