soft_update.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #ifndef _SOFT_UPDATE_H
  2. #define _SOFT_UPDATE_H
  3. #include "common.h"
  4. //莫之比雷达设置灵敏度及反馈
  5. #define CAN_UAVRH_SENSI_SA (0x7F6)
  6. //莫之比雷达读取灵敏度及反馈
  7. #define CAN_UAVRH_SENSI_RA (0x7F8)
  8. enum vk_update_device
  9. {
  10. // Update_buf 元素地址
  11. HEAD = 0,
  12. LEN = 1,
  13. TOTAL_PACK_NUM = 2,
  14. DEVICE = 4,
  15. UPDATE_STEP = 5,
  16. PACK_NUM = 6,
  17. PAYLOAD = 8,
  18. //更新步骤
  19. UPDATE_START = 200,
  20. UPDATE_ING = 201,
  21. UPDATE_END = 202,
  22. //设备ID
  23. UPDATE_OBS_F = 0x11,
  24. UPDATE_OBS_B = 0x12,
  25. UPDATE_TERAIN = 0x56,
  26. UPDATE_OBS360 = 0x78,
  27. UPDATE_SEED = 0xDA,
  28. UPDATE_FLOW = 0xDB,
  29. UPDATE_BMS = 0XDC,
  30. UPDATE_DISTOR = 0XDD,
  31. UPDATE_WEIGHT = 0xDE,
  32. };
  33. typedef struct
  34. {
  35. bool update_flag;
  36. uint8_t step;
  37. uint8_t node_id;
  38. uint32_t adr_offset;
  39. uint8_t frame_pci;
  40. uint8_t frame_len;
  41. uint8_t pack_content;
  42. }ez_update;
  43. extern ez_update EZup_par;
  44. enum EZ_UPDATE
  45. {
  46. STEP_DEFAULT = 0,
  47. STEP_FIND_NODE = 1, //发送125次寻找设备节点ID
  48. STEP_JUMP_BOOT = 2, //跳转boot
  49. STEP_EASER_FLASH = 3,//擦除FLASH
  50. STEP_SET_OFFSET_ADR = 4,//设置偏移地址
  51. STEP_SEND_DATE = 5, //发送升级数据
  52. STEP_ENDING = 6, //升级结束
  53. STEP_WAIT = 7,//等待
  54. PACK_HEAD = 10, //包头
  55. PACK_CONT = 11, //内容
  56. PACK_TAIL = 12, //包尾
  57. PACK_CRC = 13, //校验
  58. PACK_WAIT = 14, //等待雷达写flash
  59. };
  60. #pragma pack(1)
  61. typedef struct
  62. {
  63. bool U7E1;
  64. bool U7E3;
  65. bool U7E6;
  66. bool buf_flag;
  67. bool update_flag; //与AG不兼容 一个判断标志
  68. uint8_t update_buf[8];
  69. }Radar;
  70. #pragma pack()
  71. extern Radar Rupdate;
  72. extern bool uavrhup_getr1_ack;
  73. #pragma pack(1)
  74. typedef struct
  75. {
  76. bool use_update_buf_flag;
  77. uint8_t buf[150];
  78. bool vk_dev_update_flag;
  79. uint16_t vk_dev_pack_num;
  80. uint32_t bin_size;
  81. bool step_200_flag;
  82. bool step_201_flag;
  83. bool step_202_flag;
  84. }Update;
  85. #pragma pack()
  86. extern Update update_info;
  87. #pragma pack(1)
  88. typedef struct
  89. {
  90. bool update_flag;
  91. uint32_t bin_size;
  92. uint32_t bin_crc;
  93. uint8_t step;
  94. uint8_t dev_id;
  95. uint8_t buf[256];
  96. bool send_pack_complete;
  97. uint32_t pack_num;
  98. uint8_t end_frame_flag;
  99. uint16_t totol_packNum;
  100. uint8_t pack_crc;
  101. bool step_200_flag;
  102. bool step_201_flag;
  103. bool step_202_flag;
  104. }_eft_update;
  105. extern _eft_update eft_update;
  106. #pragma pack()
  107. enum EFT_UPDATE
  108. {
  109. STEP_START = 1,
  110. STEP_UPDATING = 2,
  111. STEP_END = 3,
  112. STEP_WAIT_ACK,
  113. };
  114. extern bool radar_update_flag;
  115. extern uint32_t update_count;
  116. void can_recv_mocib_updata_read_set_hookfunction(uint32_t cellCanID, uint8_t data[]);
  117. void Update_Dev_Bootversion_Function(uint8_t data[]);
  118. void mimo_obs_update_func(void);
  119. void EZ_Radar_UpdateCanRecvHookFunction(uint32_t CanID, uint8_t data[], uint8_t len);
  120. void Can_obstacle_update();
  121. void eft_dev_update_func(void);
  122. void eft_dev_update_wait_ereseflash(uint8_t data[]);
  123. void Vk_Update_Device_Protocol(void);
  124. #endif