soft_device.h 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. #ifndef _SOFT_DEVICE_H_
  2. #define _SOFT_DEVICE_H_
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "common.h"
  6. #define WEIGHT_DEVICE 1
  7. #define SEED_DEVICE 2
  8. #define NEED_SET 1
  9. #define NO_NEED_SET 2
  10. enum Drone_type
  11. {
  12. Drone_Z20 = 0,
  13. Drone_Z70 = 1,
  14. Drone_Z100 = 2,
  15. };
  16. extern uint8_t drone_type;
  17. struct weight_init_step
  18. {
  19. uint8_t read_k_flag:1;
  20. uint8_t fac_num_flag:1;
  21. uint8_t weight_mode_flag:1;
  22. uint8_t dose_rate_flag:1;
  23. uint8_t reserve:4;
  24. };
  25. typedef union
  26. {
  27. uint8_t status;
  28. struct weight_init_step step;
  29. }Dev_weight_init;
  30. extern Dev_weight_init weight_init_eft;
  31. extern Dev_weight_init weight_init_vk;
  32. struct seed_init_step
  33. {
  34. uint8_t version_flag:1;
  35. uint8_t sn_flag:1;
  36. uint8_t set_mode_flag:1;
  37. uint8_t reserve:4;
  38. };
  39. typedef union
  40. {
  41. uint8_t status;
  42. struct seed_init_step step;
  43. }Dev_seed_init;
  44. extern Dev_seed_init seed_init;
  45. enum FACID
  46. {
  47. FAC_VK = 0, // 默认VK
  48. FAC_EFT = 1, // EFT
  49. FAC_QIFEI = 3, // 启飞播撒
  50. FAC_VK_ALLINONE = 4, //VK一体化
  51. FAC_MIMO_SIG = 5, // 恩曌单管
  52. FAC_MIMO_DOU = 6, // 恩曌双管
  53. FAC_QIFEI_SIG = 7, // 启飞单管流量计
  54. FAC_QIFEI_DOU = 8, // 启飞双管流量计
  55. FAC_VK_BMS = 10, // vk电池
  56. FAC_TATTU = 11, // 格式电池
  57. FAC_POWERAMP = 12, // 极目电池
  58. FAC_FULLY = 13, // 富赖电池
  59. FAC_HEREWIN = 14, // 海盈电池
  60. FAC_OKCELL = 15, // 正方电池
  61. FAC_HW_ESC = 16, // 好盈水泵电调
  62. FAC_MIMO_RT = 20, //恩曌防地
  63. FAC_MIMO_RF = 21, //恩曌前避障
  64. FAC_MIMO_RB = 22, //恩曌后避障
  65. FAC_MOCIB_RT = 23, //莫之比防地
  66. FAC_MOCIB_RF = 24, //莫之比前避障
  67. FAC_MOCIB_RB = 25, //莫之比后避障
  68. };
  69. typedef struct
  70. {
  71. uint8_t cap_low; // 断药
  72. uint32_t weight;
  73. comp_status low_drug_link;
  74. comp_status weight_link;
  75. comp_status spreader_link;
  76. uint8_t company_type_seed;
  77. uint8_t company_type_weight;
  78. uint16_t sensor_k[4];
  79. uint16_t dose_rate;
  80. uint8_t mode;
  81. uint16_t warn_flag;
  82. uint16_t weight_rate;
  83. uint16_t valve_persent;
  84. uint16_t speed_rpm;
  85. uint16_t pump1_rpm;
  86. uint16_t pump2_rpm;
  87. uint16_t cent1_rpm;
  88. uint16_t cent2_rpm;
  89. uint16_t watering_warn;
  90. } send_seed_device;
  91. extern send_seed_device seed_dev;
  92. extern comp_status seed_dev_link_status;
  93. extern bool recv_fmu_seed_info;
  94. extern uint8_t weight_init_count;
  95. // typedef struct
  96. // {
  97. // } QIFEI_device;
  98. // extern QIFEI_device QIFEI_info;
  99. #pragma pack(1)
  100. typedef struct
  101. {
  102. uint8_t facid;
  103. uint8_t angle;
  104. uint16_t speed;
  105. uint8_t caplow;
  106. uint16_t warn;
  107. uint16_t runtime;
  108. uint16_t churn_rpm;
  109. } Seed_info;
  110. #pragma pack()
  111. #pragma pack(1)
  112. typedef struct
  113. {
  114. uint8_t facid;
  115. uint8_t mode;
  116. uint16_t kg;
  117. uint16_t rate;
  118. uint16_t k1;
  119. uint16_t k2;
  120. uint16_t k3;
  121. uint16_t k4;
  122. uint16_t warn;
  123. uint16_t dose_rate;
  124. uint16_t runtime;
  125. } Weight_info;
  126. #pragma pack()
  127. #pragma pack(1)
  128. typedef struct
  129. {
  130. uint8_t facid;
  131. uint16_t rpm1;
  132. uint16_t rpm2;
  133. uint16_t rpm3;
  134. uint16_t rpm4;
  135. uint16_t warn;
  136. uint16_t runtime1;
  137. uint16_t runtime2;
  138. uint16_t runtime3;
  139. uint16_t runtime4;
  140. } Pump_info;
  141. #pragma pack()
  142. #pragma pack(1)
  143. typedef struct
  144. {
  145. uint8_t facid;
  146. short rpm1;
  147. short rpm2;
  148. short rpm3;
  149. short rpm4;
  150. uint16_t warn;
  151. uint16_t runtime1; //转成10MIN
  152. uint16_t runtime2;
  153. uint16_t runtime3;
  154. uint16_t runtime4;
  155. } Nozzle_info;
  156. #pragma pack()
  157. #pragma pack(1)
  158. typedef struct
  159. {
  160. uint8_t facid;
  161. uint16_t status;
  162. } Arm_info;
  163. #pragma pack()
  164. #pragma pack(1)
  165. typedef struct
  166. {
  167. uint8_t facid;
  168. uint16_t speed1;
  169. uint16_t speed2;
  170. uint32_t ml1;
  171. uint32_t ml2;
  172. uint16_t warn1;
  173. uint16_t warn2;
  174. uint16_t k1;
  175. uint16_t k2;
  176. } Flow_info;
  177. #pragma pack()
  178. #pragma pack(1)
  179. typedef struct
  180. {
  181. uint8_t facid;
  182. uint16_t L1_status;
  183. uint16_t L2_status;
  184. uint16_t liquid_persent;
  185. uint16_t seed_lackloss;
  186. uint16_t warn;
  187. uint16_t lack_distance;
  188. uint16_t lack_power;
  189. } CheckLow_info;
  190. #pragma pack()
  191. #pragma pack(1)
  192. typedef struct
  193. {
  194. uint8_t facid_T;
  195. short height_T;
  196. short warn_T;
  197. uint8_t facid_F;
  198. short distance_F_Y;
  199. short distance_F_X;
  200. uint16_t warn_F;
  201. uint16_t signal_F_qulity;
  202. short distance_F_Y_ori;
  203. uint8_t facid_B;
  204. short distance_B_Y;
  205. short distance_B_X;
  206. uint16_t warn_B;
  207. uint16_t signal_B_qulity;
  208. short distance_B_Y_ori;
  209. } Radar_info;
  210. #pragma pack()
  211. #pragma pack(1)
  212. typedef struct
  213. {
  214. uint8_t facid;
  215. uint8_t buf[230];
  216. uint8_t index;
  217. } Bms_info;
  218. #pragma pack()
  219. #pragma pack(1)
  220. typedef struct
  221. {
  222. uint8_t facid;
  223. uint16_t warn;
  224. uint16_t rpm;
  225. } Linear_pump_info;
  226. #pragma pack()
  227. #pragma pack(1)
  228. typedef struct
  229. {
  230. uint8_t facid;
  231. uint16_t height_part[5];
  232. uint16_t raw_height_part[5];
  233. short angle_part[5];
  234. } Part_Tradar;
  235. typedef struct
  236. {
  237. uint8_t facid;
  238. uint16_t height_part[3];
  239. uint16_t raw_height_part[3];
  240. short angle_part[3];
  241. } Part_FBradar;
  242. #pragma pack()
  243. typedef struct
  244. {
  245. Seed_info Seed;
  246. Connect_check Seed_Link;
  247. Weight_info Weight;
  248. Connect_check Weight_Link;
  249. Pump_info Pump;
  250. Connect_check Pump_Link;
  251. Nozzle_info Nozzle;
  252. Connect_check Nozzle_Link;
  253. Arm_info Arm;
  254. Connect_check Arm_Link;
  255. Flow_info Flow;
  256. Connect_check Flow_Link1;
  257. Connect_check Flow_Link2;
  258. CheckLow_info Checklow;
  259. Connect_check Checklow_Link;
  260. Radar_info Radar;
  261. Connect_check Radar_Link;
  262. Bms_info Bms;
  263. Connect_check Bms_Link;
  264. Connect_check Lackloss_Link;
  265. Linear_pump_info L_pump1;
  266. Connect_check L_pump1_Link;
  267. Linear_pump_info L_pump2;
  268. Connect_check L_pump2_Link;
  269. Part_Tradar Part_radarT;
  270. Connect_check Part_Tradar_Link;
  271. Part_FBradar Part_radarF;
  272. Connect_check Part_Fradar_Link;
  273. Part_FBradar Part_radarB;
  274. Connect_check Part_Bradar_Link;
  275. Connect_check Eft_CanDev_Link[6]; //普通双水泵 四离心 获取版本信息使用
  276. } Device_type;
  277. extern Device_type Dev;
  278. #pragma pack(1)
  279. typedef struct
  280. {
  281. uint8_t type;
  282. uint16_t order_con1;
  283. uint16_t order_con2;
  284. } Weight_cal;
  285. #pragma pack()
  286. extern Weight_cal weight_order;
  287. enum CalEnum
  288. {
  289. Default_PAR = 0,
  290. Weight_Peer = 1,
  291. Weight_Kg = 2,
  292. Weight_Reserve = 3,
  293. Weight_Bcak = 4,
  294. Weight_Set_K = 5,
  295. Weight_Mode = 6,
  296. Weight_Drug_Rate = 7
  297. };
  298. extern bool set_eftdev_canid_flag;
  299. extern uint32_t set_eftdev_canid_time;
  300. extern uint16_t set_eftdev_canid_status;
  301. extern uint8_t auto_set_canid_flag;
  302. extern uint32_t auto_eft_dev_status;
  303. void update_device_type_data(void);
  304. void set_eft_dev_canid_func( void );
  305. #endif