HeartBeatMessage.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Edge.Core.IndustryStandardInterface.Pump.Fdc;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace HengshanPaymentTerminal.MessageEntity.Incoming
  8. {
  9. /// <summary>
  10. /// 心跳包数据对象
  11. /// </summary>
  12. public class HeartBeatMessage : CommonMessage
  13. {
  14. /// <summary>
  15. /// 油枪数
  16. /// </summary>
  17. public int GunCount { get; set; }
  18. /// <summary>
  19. /// 各油枪状态
  20. /// </summary>
  21. public List<HeartBeatNozzleState> NozzleStatus { get; set; }
  22. public override CommonMessage ToObject(byte[] datas)
  23. {
  24. this.getBaseData(datas);
  25. this.GunCount = datas[7];
  26. List<HeartBeatNozzleState> nozzleStates = new List<HeartBeatNozzleState>();
  27. for (int index = 8;index < datas.Length - 2;index += 3)
  28. {
  29. HeartBeatNozzleState nozzle = new HeartBeatNozzleState()
  30. {
  31. NozzleNum = datas[index],
  32. WorkState = datas[index + 1],
  33. AccreditState = datas[index + 2]
  34. };
  35. nozzleStates.Add(nozzle);
  36. }
  37. this.NozzleStatus = nozzleStates;
  38. return this;
  39. }
  40. public override byte[] ToCommonByteArray()
  41. {
  42. byte[] content = new byte[] { 0x55, this.Handle, 0x00, ((byte)RESULT.OVER) };
  43. return content2data(content);
  44. }
  45. }
  46. public class HeartBeatNozzleState
  47. {
  48. /// <summary>
  49. /// 油枪号
  50. /// </summary>
  51. public int NozzleNum { get; set; }
  52. /// <summary>
  53. /// 上下班状态 0:下班;1:上班
  54. /// </summary>
  55. public int WorkState { get; set; }
  56. /// <summary>
  57. /// 授权模式状态 0表示前庭;1表示后台
  58. /// </summary>
  59. public int AccreditState { get; set; }
  60. }
  61. }