ChargingStationDataModel.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using Newtonsoft.Json;
  2. using System.Runtime.InteropServices;
  3. namespace AmrControl.ADS
  4. {
  5. /// <summary>
  6. /// 充电桩数据模型
  7. /// </summary>
  8. public class ChargingStationDataModel
  9. {
  10. //JGR类型 0:仓储车 , 1:运输车, 2:仓储位充电器,3:轨道位充电器
  11. public byte csType;
  12. //出厂编号,30个长度带'\0',有效最多29个字节
  13. public string csSN;
  14. //车ID,取值范围0~63,不同类型的车/充电器的csID可以重复
  15. public byte csID;
  16. //无线模块的地址,长度2字节
  17. public ushort rcAddr;
  18. //无线模块的频率码,取值0~155,对应频率为 900+RC_FreqCode*0.2,单位MHz,默认频率码为0x32(50)
  19. public byte rcFreqCode;
  20. //在线/离线状态 是否在线(通讯是否正常)
  21. public byte isOnline;
  22. //健康状态 1:正常; 0:异常
  23. public byte isHealthy;
  24. //充电标志,1:充电中,0:未在充电
  25. public byte isCharging;
  26. /// <summary>
  27. /// 充电头的状态,0:缩回状态,1:伸出状态
  28. /// </summary>
  29. public byte chargerStatus;
  30. //充电电压,单位:V
  31. public float chargeVoltage;
  32. //充电电流,单位:mA
  33. public float chargeCurrent;
  34. /// <summary>
  35. /// 所在格子的位置X
  36. /// </summary>
  37. public int positionX;
  38. /// <summary>
  39. /// 所在格子的位置Y
  40. /// </summary>
  41. public int positionY;
  42. /// <summary>
  43. /// 显示位置X,Y坐标
  44. /// </summary>
  45. public int displayX;
  46. public int displayY;
  47. /// <summary>
  48. /// 连接的小车的编号,预留,现在硬件不支持
  49. /// </summary>
  50. public string jgrSN;
  51. /// <summary>
  52. /// 连接的小车的电池剩余电量,取值 0~100, 100表示满电量.
  53. /// 预留,现在硬件不支持
  54. /// </summary>
  55. public byte electricity;
  56. }
  57. //用内存对齐方式并不对,可能是和TC程序接口是C#开发的有关 [StructLayout(LayoutKind.Sequential, Pack = 1)]
  58. /// <summary>
  59. /// TC程序中定义的充电桩的数据结构
  60. /// </summary>
  61. [Serializable]
  62. public struct Charge_Ads_Struct
  63. {
  64. //出厂编号,30个长度带'\0',有效最多29个字节
  65. [JsonConverter(typeof(TcModelArrayConverter))]
  66. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]
  67. public byte[] chargeSN;
  68. // 0:仓储车 , 1:运输车, 2:仓储位充电器,3:轨道位充电器
  69. public byte chargeType;
  70. //车ID,取值范围0~63,不同类型的车/充电器的jgrID可以重复
  71. public byte chargeID;
  72. //无线模块的地址,长度2字节
  73. public ushort rcAddr;
  74. //无线模块的频率码,取值0~155,对应频率为 900+RC_FreqCode*0.2,单位MHz,默认频率码为0x32(50)
  75. public byte rcFreqCode;
  76. //在线/离线状态 是否在线(通讯是否正常)
  77. public byte isOnline;
  78. //健康状态 true:正常; false:异常
  79. public byte isHealthy;
  80. //充电标志,1:充电中,0:未在充电
  81. public byte isCharging;
  82. /// <summary>
  83. /// 充电头的状态,0:缩回状态,1:伸出状态
  84. /// </summary>
  85. public byte chargerStatus;
  86. //充电电压,单位:V
  87. public float chargeVoltage;
  88. //充电电流,单位:mA
  89. public float chargeCurrent;
  90. }
  91. }