DataContent.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using Edge.Core.Parser.BinaryParser.Attributes;
  2. using Edge.Core.Parser.BinaryParser.MessageEntity;
  3. using HengshanPaymentTerminal.Support;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. namespace HengshanPaymentTerminal.MessageEntity.Outgoing
  8. {
  9. public class DataContent : CardMessageBase
  10. {
  11. public DataContent() : base(Command.DataContent)
  12. {
  13. }
  14. [Format(1, EncodingType.BIN, -90)]
  15. public DataContentType DataContentType { get; set; }
  16. [Format(2, EncodingType.BIN, -89)]
  17. public ushort SegmentOffset { get; set; }
  18. [Format(1, EncodingType.BIN, -88)]
  19. public byte SegmentCount { get; set; }
  20. [EnumerableFormat("%cascade", -87, EncodingType = EncodingType.BIN)]
  21. public List<byte> Content { get; set; }
  22. }
  23. public class FuelPriceRecord : MessageTemplateBase
  24. {
  25. [Format(1, EncodingType.BIN, 1)]
  26. public byte Version { get; set; }
  27. [Format(6, EncodingType.BcdString, 2)]
  28. public string EffectiveTime { get; set; }
  29. [Format(1, EncodingType.BIN, 3)]
  30. public byte RecordCount { get; set; }
  31. [Format(1, EncodingType.BIN, 4)]
  32. public byte NozzleNo { get; set; }
  33. [Format(2, EncodingType.BCD, 5)]
  34. public ushort FuelProductCode { get; set; }
  35. [Format(32, EncodingType.HexString, 6)]
  36. public string FuelProductName { get; set; }
  37. [Format(4, EncodingType.BIN, 7)]
  38. public int Density { get; set; }
  39. [Format(1, EncodingType.BIN, 8)]
  40. public byte ValidPriceCount { get; set; }
  41. [Format(2, EncodingType.BIN, 9)]
  42. public ushort Price1 { get; set; }
  43. [Format(2, EncodingType.BIN, 10)]
  44. public ushort Price2 { get; set; }
  45. [Format(2, EncodingType.BIN, 11)]
  46. public ushort Price3 { get; set; }
  47. [Format(2, EncodingType.BIN, 12)]
  48. public ushort Price4 { get; set; }
  49. [Format(2, EncodingType.BIN, 13)]
  50. public ushort Price5 { get; set; }
  51. [Format(2, EncodingType.BIN, 14)]
  52. public ushort Price6 { get; set; }
  53. [Format(2, EncodingType.BIN, 15)]
  54. public ushort Price7 { get; set; }
  55. [Format(2, EncodingType.BIN, 16)]
  56. public ushort Price8 { get; set; }
  57. }
  58. public class MultiFuelPriceRecord : MessageTemplateBase
  59. {
  60. [Format(1, EncodingType.BIN, 1)]
  61. public byte Version { get; set; }
  62. [Format(6, EncodingType.BcdString, 2)]
  63. public string EffectiveTime { get; set; }
  64. [Format(1, EncodingType.BIN, 3)]
  65. public byte RecordCount { get; set; }
  66. [Format(1, EncodingType.BIN, 4)]
  67. public byte FirstNozzleNo { get; set; }
  68. [Format(2, EncodingType.BCD, 5)]
  69. public ushort FirstFuelProductCode { get; set; }
  70. [Format(32, EncodingType.HexString, 6)]
  71. public string FirstFuelProductName { get; set; }
  72. [Format(4, EncodingType.BIN, 7)]
  73. public int FirstDensity { get; set; }
  74. [Format(1, EncodingType.BIN, 8)]
  75. public byte FirstValidPriceCount { get; set; }
  76. [Format(2, EncodingType.BIN, 9)]
  77. public ushort FirstPrice1 { get; set; }
  78. //[Format(2, EncodingType.BIN, 10)]
  79. //public ushort FirstPrice2 { get; set; }
  80. //[Format(2, EncodingType.BIN, 11)]
  81. //public ushort FirstPrice3 { get; set; }
  82. //[Format(2, EncodingType.BIN, 12)]
  83. //public ushort FirstPrice4 { get; set; }
  84. //[Format(2, EncodingType.BIN, 13)]
  85. //public ushort FirstPrice5 { get; set; }
  86. //[Format(2, EncodingType.BIN, 14)]
  87. //public ushort FirstPrice6 { get; set; }
  88. //[Format(2, EncodingType.BIN, 15)]
  89. //public ushort FirstPrice7 { get; set; }
  90. //[Format(2, EncodingType.BIN, 16)]
  91. //public ushort FirstPrice8 { get; set; }
  92. [Format(1, EncodingType.BIN, 17)]
  93. public byte SecondNozzleNo { get; set; }
  94. [Format(2, EncodingType.BCD, 18)]
  95. public ushort SecondFuelProductCode { get; set; }
  96. [Format(32, EncodingType.HexString, 19)]
  97. public string SecondFuelProductName { get; set; }
  98. [Format(4, EncodingType.BIN, 20)]
  99. public int SecondDensity { get; set; }
  100. [Format(1, EncodingType.BIN, 21)]
  101. public byte SecondValidPriceCount { get; set; }
  102. [Format(2, EncodingType.BIN, 22)]
  103. public ushort SecondPrice1 { get; set; }
  104. //[Format(2, EncodingType.BIN, 23)]
  105. //public ushort SecondPrice2 { get; set; }
  106. //[Format(2, EncodingType.BIN, 24)]
  107. //public ushort SecondPrice3 { get; set; }
  108. //[Format(2, EncodingType.BIN, 25)]
  109. //public ushort SecondPrice4 { get; set; }
  110. //[Format(2, EncodingType.BIN, 26)]
  111. //public ushort SecondPrice5 { get; set; }
  112. //[Format(2, EncodingType.BIN, 27)]
  113. //public ushort SecondPrice6 { get; set; }
  114. //[Format(2, EncodingType.BIN, 28)]
  115. //public ushort SecondPrice7 { get; set; }
  116. //[Format(2, EncodingType.BIN, 29)]
  117. //public ushort SecondPrice8 { get; set; }
  118. }
  119. public class ListedCardRecord : MessageTemplateBase
  120. {
  121. [Format(2, EncodingType.BIN, 1)]
  122. public byte Version { get; set; }
  123. [Format(4, EncodingType.BcdString, 2)]
  124. public string ValidStartDate { get; set; }
  125. [Format(4, EncodingType.BcdString, 3)]
  126. public string ExpiryDate { get; set; }
  127. [Format(2, EncodingType.BIN, 4)]
  128. public string Region { get; set; }
  129. [Format(4, EncodingType.BIN, 5)]
  130. public int CardCount { get; set; }
  131. }
  132. }