soft_seed_weight.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #ifndef _SOFT_SEED_WEIGHT_H
  2. #define _SOFT_SEED_WEIGHT_H
  3. #include "common.h"
  4. typedef enum{
  5. WEIGHT_DEFAULT = 0,
  6. WEIGHT_NORMAL = 1, //普通称重
  7. WEIGHT_LIFT = 2, //吊运称重
  8. WEIGHT_FPLATE = 3, //前板
  9. WEIGHT_TRANFER = 4, //转接板
  10. }WEIGHT;
  11. extern uint8_t weight_type;
  12. typedef enum{
  13. SPREAD_DEFAULT = 0,
  14. SPREAD_NORMAL = 1, //普通播撒
  15. SPREAD_JIAOLONG = 2, //搅笼播撒
  16. }SPREAD;
  17. extern uint8_t spread_type;
  18. //EFT前板
  19. #define CAN_EFT_FPLATE (0x8876)
  20. #define CAN_EFT_FPLATE_ACK (0x8877)
  21. //Z70吊运称重
  22. #define CAN_EFT70_WEIGHT (0x88BA)
  23. #define CAN_EFT70_WEIGHT_ACK (0x88BC)
  24. #define Cal_Remove_Peel 20
  25. #define Cal_Weight 21
  26. #define Cal_Seed_Back 23
  27. //EFT播撒器
  28. #define CAN_EFT_SPREAD (0x8851)
  29. #define CAN_EFT_VERSION (0x8853)
  30. //
  31. #define SEND_EFT_INFO (0x88F2)
  32. //
  33. //断料记
  34. #define CAN_MIMO_LACKLOSS (0x88F1)
  35. #define Z70_DEVICE (0x7010)
  36. #define Z70_DEVICE_ACK (0x7011)
  37. #pragma pack(1)
  38. typedef struct
  39. {
  40. uint8_t work_status; // 工作状态
  41. uint8_t warn_status; // 报警状态
  42. uint8_t output; // 输出信号源
  43. uint16_t can_rate; // CAN波特率
  44. uint8_t reserve; // 保留
  45. uint8_t warn_switch; // 报警开关
  46. uint8_t recv_conut; // 计数
  47. int serial_num; // 厂家编号
  48. } seed;
  49. #pragma pack()
  50. extern seed seed_vkinfo;
  51. #pragma pack(1)
  52. typedef struct {
  53. uint8_t work_status; //工作状态
  54. uint8_t warn_status; //报警状态 bit0: 1断药
  55. bool can_enable; //can使能
  56. uint16_t capacitance; //电容
  57. uint8_t electricity; //电流
  58. char temperature; //温度
  59. uint8_t func_status; //功能状态
  60. uint8_t num; //循环次数
  61. uint16_t weight; //重量
  62. uint8_t cal_status; //校准状态
  63. uint8_t valve_angel; //舵机角度 0-100
  64. uint8_t speed_rpm; //转盘转速 *10
  65. uint8_t enginearm_lock;//机臂锁
  66. uint8_t last_arm_lock; //发送给FCU的判断标志
  67. uint8_t pump1_rpm; //水泵1转速
  68. uint8_t pump2_rpm; //水泵2转速
  69. uint8_t cent1_rpm; //喷头1转速
  70. uint8_t cent2_rpm; //喷头1转速
  71. uint64_t watering_warn_status; //水泵喷头报警状态
  72. uint16_t seed_k[3]; //称重传感器K值
  73. char version[2];
  74. char sn[10];
  75. }eft;
  76. #pragma pack()
  77. extern eft eft_info;
  78. #pragma pack(1)
  79. typedef struct
  80. {
  81. uint8_t arm1:1;
  82. uint8_t arm2:1;
  83. uint8_t arm3:1;
  84. uint8_t arm4:1;
  85. uint8_t reserve1:4;
  86. uint16_t weight;
  87. uint8_t Rled_tempture;
  88. uint8_t Lled_tempture;
  89. uint8_t Rled_status:1;
  90. uint8_t Lled_status:1;
  91. uint8_t Rled_switch:1;
  92. uint8_t Lled_switch:1;
  93. uint8_t reserve2:4;
  94. uint8_t bms_plug_tempture;
  95. uint8_t bms_battery_tempture;
  96. }eft_fplate;
  97. #pragma pack()
  98. extern eft_fplate fplate;
  99. typedef struct
  100. {
  101. uint8_t output_mode;
  102. short pwm_turntable;
  103. short pwm_valve;
  104. }Spread_par;
  105. extern Spread_par spread_par;
  106. #pragma pack(1)
  107. typedef struct
  108. {
  109. uint8_t sensor_status; // 工作状态
  110. uint8_t warn_status; // 报警状态
  111. uint16_t weight_rate; // 重量变化率
  112. int weight; // 重量
  113. int serial_num; // 厂家编号
  114. uint16_t senor_k[4]; // 称重传感器K值
  115. uint8_t mode; // 称重模式 1播撒 2喷洒
  116. uint16_t dose_rate; // 最高下药率 kg/min
  117. } weight;
  118. #pragma pack()
  119. extern weight weight_vkinfo;
  120. extern uint16_t last_light_brightness;
  121. typedef struct
  122. {
  123. uint16_t distance;
  124. uint16_t strength;
  125. uint8_t status; // 0满 1缺
  126. uint16_t cal_distance;
  127. }_mimo_lackloss;
  128. extern _mimo_lackloss mimo_lackloss;
  129. extern bool Z70_LiftingWeight_exist;
  130. void Eft_Spread_And_Mimolack_recieved_hookfuction(uint32_t CanID, uint8_t data[], uint8_t len);
  131. void can_recv_eft_front_plate(uint32_t CanID, uint8_t data[], uint8_t len);
  132. void can_sendmsg_eft(void);
  133. void can_sendmsg_VK(void);
  134. #endif