soft_p_2_c.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. #ifndef _SOFT_P_2_C_H
  2. #define _SOFT_P_2_C_H
  3. #include "stm32f3xx_hal.h"
  4. #include "soft_can.h"
  5. #include "stdio.h"
  6. #include "common.h"
  7. typedef enum
  8. {
  9. RX_HEAD = 0,
  10. RX_PAYLOAD_LEN,
  11. RX_SEQ,
  12. RX_SYSID,
  13. RX_GROUPID,
  14. RX_MSGID,
  15. RX_PAYLOAD,
  16. RX_CHECK_LOW,
  17. RX_CHECK_HIGH
  18. } Msg_Rx_Stage;
  19. extern Msg_Rx_Stage recv_step;
  20. extern int time_heart[3];
  21. extern int time_count[3];
  22. enum vklink_msgid
  23. {
  24. _MSGID_VOL = 1, // 电压
  25. _MSGID_RADAR = 2, // 雷达
  26. _MSGID_FLOW = 3, // 流量计
  27. _MSGID_BMS = 4, // 电池
  28. _MSGID_PWM = 5, // p1 p2 a1 a2通道
  29. _MSGID_LED = 6, // 外部LED灯
  30. _MSGID_ATTITUDE = 8, // 飞机姿态信息
  31. _MSGID_TIME = 9, // UTC时间信息
  32. _MSG_ENGIN = 10, // 发动机
  33. _MSGID_EFT_CON = 11, // EFT输出CAN控制
  34. _MSGID_DEV_INFO = 12, // 设备信息
  35. _MSGID_REQ = 20, // 请求信息
  36. _MSGID_ACK = 21, // 主控应答
  37. _MSGID_SET = 22, // 设置信息
  38. _MSGID_GET4D = 23, // 4D雷达参数回复fmu相关
  39. _MSGID_SET4D = 24, // 4D雷达设置相关
  40. _MSGID_SHA1 = 25, // 智能电池SHA1验证
  41. _MSGID_DEV_LIST = 26, // 设备SN,软硬件管理
  42. _MSGID_HEART = 27, // 心跳检测
  43. _MSGID_360RADAR = 30, //360雷达
  44. _MSGID_DMRADAR = 31, //电目雷达测试
  45. _MSGID_F4DRADAR = 32, //电目4d前避障雷达测试
  46. _MSGID_B4DRADAR = 33, //电目4d后避障雷达测试
  47. _MSGID_FT4DRADAR = 34, //电目4d前避障分段高度
  48. _MSGID_BT4DRADAR = 35, // 电目4d后避障分段高度
  49. _MSGID_UPDATA = 200, // 升级信息
  50. _MSGID_CANDEBUG = 213, // CAN调试
  51. };
  52. enum vklink_MSGID_REQ
  53. {
  54. MSGID_REQ_VERSION = 7, // 版本信息
  55. };
  56. enum vklink_MSGID_ACK
  57. {
  58. MSGID_ACK_HEART = 1,
  59. MSGID_ACK_VERSION = 7, // 版本信息
  60. MSGID_ACK_DEV = 26, // 版本信息
  61. };
  62. enum vklink_MSGID_SET
  63. {
  64. MSGID_SET_F_RADAR = 1, // 设置前雷达
  65. MSGID_SET_B_RADAR = 2, // 设置后雷达
  66. MSGID_SET_L_RADAR = 3, // 设置左雷达
  67. MSGID_SET_R_RADAR = 4, // 设置右雷达
  68. MSGID_SET_T_RADAR = 6, // 设置防地雷达
  69. MSGID_SET_TR_BLIND = 7, //设置雷达盲区
  70. MSGID_SET_BR_POWER = 8, //设置雷达能量
  71. MSGID_SET_R_FUNC = 9, //设置电目雷达功能
  72. MSGID_SET_RAW_SWITCH = 15, //设置DM雷达原始数据开关
  73. MSGID_SET_GEELY = 10, // 设置轩浮发动机
  74. MSGID_SET_VOL = 20, // 设置电压
  75. MSGID_SET_MIMO_FLOW = 21, // 设置恩曌流量计系数
  76. MSGID_SET_FLOW_BACKGROUND = 22,//清除流量背景
  77. MSGID_SET_WEIGHT_K = 23, // 设置重量传感器K
  78. MSGID_SET_SEED_OUT_TYPE = 24, // 设置播撒输出类型pwm can
  79. MSGID_SET_SEED_CAL_TYPE = 25, // 设置播撒校准类型
  80. MSGID_SET_WEIGHT_MODE = 26, // 设置重量传感器工作模式
  81. MSGID_SET_MAX_RATE = 27, // 设置播撒最大下药率
  82. MSGID_SET_PMU_SERIAL = 28, // 设置pmu序列号
  83. MSGID_SET_RADAR_FB = 29, // 设置当前雷达前后/恢复出厂 恩曌雷达有效
  84. MSGID_SET_LACKLOSS_CAL = 30, // 断料记校准
  85. MSGID_SET_PUMP_ID = 32, // 设置CAN水泵ID
  86. MSGID_SET_PNCANID = 55, // 设置EFT水泵电调CAN ID
  87. MSGID_SET_RESIWIRE_BLOWN = 60,// 熔断电阻丝
  88. MSGID_SET_CHURN_RESET = 61, // 绞龙复位
  89. MSGID_SET_CHURN_SIZE = 64, //设置绞龙型号
  90. MSGID_SET_WEIGHT_RESETK = 62,// 称重恢复出厂
  91. MSGID_SET_WEIGHTFAC_CAL = 63,// 称重出厂标定K
  92. MSGID_SET_FRADAR_SN = 98, // 设置雷达SN号
  93. MSGID_SET_BRADAR_SN = 99, // 设置雷达SN号
  94. MSGID_SET_TRADAR_SN = 100, // 设置雷达SN号
  95. MSGID_SET_4DFRADAR_SN = 102, // 设置4D雷达SN号
  96. MSGID_SET_4DBRADAR_SN = 103, // 设置4D雷达SN号
  97. MSGID_SET_4DTRADAR_SN = 104, // 设置4D雷达SN号
  98. };
  99. enum vklink_PMU_SEND
  100. {
  101. PMU_SEND_YAOCE = 1, // 遥测信息
  102. PMU_SEND_REQINFO = 2, // 请求信息
  103. PMU_SEND_ACK = 3, // 主控应答信息
  104. PMU_SEND_VERSION = 4, // 版本信息
  105. PMU_SEND_SHA1 = 5, // 版本信息
  106. PMU_SEND_DEV_INFO = 6, // 设备信息
  107. };
  108. typedef enum
  109. {
  110. DEV_SEED = 1,
  111. DEV_WEIGHT,
  112. DEV_PUMP,
  113. DEV_NOZZLE,
  114. DEV_ARM,
  115. DEV_FLOW,
  116. DEV_CHECKLOW,
  117. DEV_RADAR,
  118. DEV_BMS,
  119. DEV_ENGINE,
  120. DEV_CURRENT,
  121. DEV_L_PUMP1,
  122. DEV_L_PUMP2,
  123. DEV_PART_RADAR,
  124. DEV_PART_FRADAR,
  125. DEV_PART_BRADAR,
  126. DEV_QQ_BMS,
  127. DEV_TEMPSENSOR
  128. } Dev_Type_NUM;
  129. enum LOCK_STATUS
  130. {
  131. STA_LOCK = 0,
  132. STA_UNLOCK = 1,
  133. };
  134. #define JET_UAV_TYPE 13
  135. #define VK_ALL_IN_ONE 18
  136. #define AG_EFTZ 15 //EFTZ30/50机型
  137. // 吉利发动机设置信息
  138. #define SET_START_OR_STOP 1
  139. #define SET_PROTECT_TIME 2
  140. #define SET_LOCK_TIME 3
  141. #define SET_LOWVOL_PROTECT 4
  142. typedef struct
  143. {
  144. short radar_buf[5];
  145. uint16_t voltage;
  146. uint16_t temperature;
  147. uint32_t flow_32_buf[2];
  148. uint16_t flow_16_buf[4];
  149. } pmu_data;
  150. extern pmu_data pmu;
  151. #pragma pack(1)
  152. typedef struct
  153. {
  154. short pump1;
  155. short pump2;
  156. short nozz1_fm;
  157. short nozz2_zp;
  158. short nozz3;
  159. short nozz4;
  160. uint16_t aux_light;
  161. short aux_steer;
  162. }_pmu_pin;
  163. #pragma pack()
  164. extern _pmu_pin pmu_pin;
  165. #pragma pack(1)
  166. typedef struct
  167. {
  168. short yaw; // 航向角
  169. short roll_angle; // 0.01
  170. short pitch_angle; // 0.01
  171. short alt; //高度
  172. short E_vel; // 东西速度
  173. short N_vel; // 南北速度
  174. short alt_vel; // 垂直速度
  175. short lock_status; // 0 上锁 1解锁 4:在空中
  176. short UAV_type;
  177. short thr_pwm;
  178. short Candebug_flag; // can调试 0开 1关
  179. int pos_x1; //经度
  180. int pos_y1; //纬度
  181. float QuaterQ0;
  182. float QuaterQ1;
  183. float QuaterQ2;
  184. float QuaterQ3;
  185. float pos_x;
  186. float pos_y;
  187. float pos_z;
  188. float pos_flag;
  189. } plane_para;
  190. #pragma pack()
  191. extern plane_para planep;
  192. extern uint8_t msg_buf[256];
  193. typedef struct soft_p_2_c
  194. {
  195. uint8_t num;
  196. uint16_t content1;
  197. uint16_t content2;
  198. uint16_t content3;
  199. } Set_info;
  200. extern Set_info msgidset;
  201. #pragma pack(1)
  202. typedef struct
  203. {
  204. bool version_info;
  205. bool key_info_checking; // 给fcu发送信息
  206. bool key_to_bms;
  207. uint8_t mos_status;
  208. uint8_t Dev_type;
  209. uint8_t Id;
  210. uint8_t Id_content;
  211. unsigned char key_data[20];
  212. } Start_info;
  213. extern Start_info start_msg;
  214. #pragma pack(0)
  215. extern char request_id;
  216. extern short request_1_content;
  217. extern int request_2_content;
  218. extern char ack_id;
  219. extern short ack_content;
  220. extern short ack_content1;
  221. extern short ack_content2;
  222. extern uint8_t pmu_send;
  223. extern char radar_version[3][10];
  224. extern bool recv_fmu_data;
  225. extern comp_status flow_linkflag_status;
  226. extern uint32_t utc_time;
  227. void pmu_to_con_voltage_data(void);
  228. void pmu_to_con_radar_data(void);
  229. void pmu_to_con_barttery_data(void);
  230. void pmu_to_fcu(void);
  231. void uart_recv_con_msg(void);
  232. void Update_ack_func(uint8_t group_id, uint8_t msg_id, uint8_t *ackbuf);
  233. void pmu_to_con_version_data(void);
  234. void pmu_to_con_request_data(void);
  235. void pmu_to_con_ack_data(void);
  236. void pmu_start_info(void);
  237. void pmu_set_ack(uint8_t id, short content1, short content2, short content3);
  238. void pmu_to_con_engine_data(void);
  239. void pmu_to_fcu_version_data(void);
  240. void pmu_to_fcu_key_data(void);
  241. short get_radar_info(uint8_t Radar_Type,uint8_t Info_Type);
  242. #endif