soft_version.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #ifndef __SOFT_VERSION_H
  2. #define __SOFT_VERSION_H
  3. #include "stdbool.h"
  4. #include "stdint.h"
  5. #include "common.h"
  6. //莫之比雷达SN号ID
  7. #define CAN_OBSTARCLE11_SN 0x410
  8. #define CAN_OBSTARCLE12_SN 0x420
  9. #define CAN_OBSTARCLE56_SN 0x430
  10. #define CAN_OBSTARCLE57_SN 0x440
  11. enum _DEVICE_LIST
  12. {
  13. //===============DEVICE信息===========
  14. DEVICE_DEF = 0,
  15. DEVICE_FCU = 1, //fcu信息
  16. DEVICE_IMU = 2, //imu信息
  17. DEVICE_PMU = 3, //pmu信息
  18. DEVICE_SEN1 = 4, //传感器信息
  19. DEVICE_SEN2 = 5, //传感器信息
  20. DEVICE_SEN3 = 6, //传感器信息
  21. DEVICE_RTK = 7, //rtk信息
  22. DEVICE_GNSSA = 8, //gnss信息
  23. DEVICE_GNSSB = 9, //gnss信息
  24. DEVICE_MAG = 10, //独立磁信息
  25. DEVICE_TERRA = 11, //防地雷达信息
  26. DEVICE_OBSF = 12, //避障雷达信息
  27. DEVICE_OBSB = 13, //避障雷达信息
  28. DEVICE_BMS1 = 14, //智能电池信息
  29. DEVICE_BMS2 = 15, //智能电池信息
  30. DEVICE_M1 = 16, //电机信息
  31. DEVICE_M2 = 17, //电机信息
  32. DEVICE_M3 = 18, //电机信息
  33. DEVICE_M4 = 19, //电机信息
  34. DEVICE_M5 = 20, //电机信息
  35. DEVICE_M6 = 21, //电机信息
  36. DEVICE_M7 = 22, //电机信息
  37. DEVICE_M8 = 23, //电机信息
  38. DEVICE_LOADE = 24, //光电载荷设备
  39. DEVICE_SBUSO = 25, //SBUSOUT设备
  40. DEVICE_SPREAD = 26, //播撒模块信息
  41. DEVICE_WEIGHT = 27, //称重模块信息
  42. DEVICE_PUMP = 28, //水泵信息
  43. DEVICE_CENTRI = 29, //离心喷头信息
  44. DEVICE_FLOW = 30, //流量计信息
  45. DEVICE_BODLOCK= 31, //机臂锁紧信息
  46. DEVICE_LACK = 32, //缺料传感器信息
  47. DEVICE_RC = 33, //遥控器信息
  48. DEVICE_CURSEN = 34, //can电流计
  49. DEVICE_AVOID = 35, //360避障雷达
  50. DEVICE_LPUMP1 = 36, //CAN线性水泵1
  51. DEVICE_LPUMP2 = 37, //CAN线性水泵2
  52. DEVICE_LPUMP3 = 38, //CAN线性水泵3
  53. DEVICE_LPUMP4 = 39, //CAN线性水泵4
  54. DEVICE_NOZZLE1 = 40, //CAN喷头1
  55. DEVICE_NOZZLE2 = 41, //CAN喷头2
  56. DEVICE_NOZZLE3 = 42, //CAN喷头3
  57. DEVICE_NOZZLE4 = 43, //CAN喷头4
  58. DEVICE_P_TRADAR = 44, //分区仿地雷达
  59. DEVICE_TR60_F = 45, //EZ 4D避障前
  60. DEVICE_TR60_B = 46, //EZ 4D避障后
  61. DEVICE_H_BMSA = 47, //HYDROGEN氢能源智能电池1
  62. DEVICE_H_BMSB = 48, //HYDROGEN氢能源智能电池2
  63. DEVICE_END
  64. };
  65. //设备号 软件 硬件是否注册过
  66. typedef struct
  67. {
  68. bool dev;
  69. bool sn;
  70. bool soft;
  71. bool hard;
  72. bool manu;
  73. }regist_type;
  74. #pragma pack(1)
  75. typedef struct
  76. {
  77. uint16_t num;
  78. bool verify;
  79. char sn[32];
  80. char soft_serial[16];
  81. char hard_serial[16];
  82. char manu[16];
  83. regist_type regist;
  84. int8_t send_times;
  85. } dev_version_content;
  86. #pragma pack()
  87. extern dev_version_content dev_pmu;
  88. extern dev_version_content dev_ter;
  89. extern dev_version_content dev_obsf;
  90. extern dev_version_content dev_obsb;
  91. extern dev_version_content dev_bms1;
  92. extern dev_version_content dev_bms2;
  93. extern dev_version_content dev_spreader;
  94. extern dev_version_content dev_weight;
  95. extern dev_version_content dev_flowmeter;
  96. extern dev_version_content dev_arm;
  97. extern dev_version_content dev_pump1,dev_pump2;
  98. extern dev_version_content dev_nozzle1,dev_nozzle2,dev_nozzle3,dev_nozzle4;
  99. extern bool p1_runing_time,p2_runing_time,n1_runing_time,n2_runing_time,
  100. n3_runing_time,n4_runing_time,weight_runing_time,spreader_runing_time;
  101. extern void *dev_ptr[];
  102. extern short dev_num;
  103. void get_device_version_and_sn(void);
  104. void can_recv_mocib_version_info(uint32_t cellCanID, uint8_t data[], uint8_t len);
  105. void can_recv_mimo_dev_version(uint32_t cellCanID, uint8_t data[], uint8_t len);
  106. void regist_dev_info(dev_version_content *dev,uint8_t num,bool verify_flag,char *sn,uint8_t size1,
  107. char *soft_serial,uint8_t size2,char *hard_serial,uint8_t size3,char *manu,uint8_t size4);
  108. #endif