soft_seed_weight.h 3.4 KB

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