123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- #ifndef _SOFT_SEED_DEVICE_H_
- #define _SOFT_SEED_DEVICE_H_
- #include "common.h"
- void Weight_recieved_hookfuction(uint32_t CanID, uint8_t data[], uint8_t len);
- void update_device_type_data(void);
- #define WEIGHT_DEVICE 1
- #define SEED_DEVICE 2
- struct weight_init_step
- {
- uint8_t read_k_flag:1;
- uint8_t fac_num_flag:1;
- uint8_t weight_mode_flag:1;
- uint8_t dose_rate_flag:1;
- uint8_t verison:1;
- uint8_t reserve:3;
- };
- typedef union
- {
- uint8_t status;
- struct weight_init_step step;
- }Dev_weight_init;
- extern Dev_weight_init weight_init_eft;
- extern Dev_weight_init weight_init_vk;
- struct seed_init_step
- {
- uint8_t version_flag:1;
- uint8_t sn_flag:1;
- uint8_t set_mode_flag:1;
- uint8_t reserve:4;
- };
- typedef union
- {
- uint8_t status;
- struct seed_init_step step;
- }Dev_seed_init;
- extern Dev_seed_init seed_init;
- #pragma pack(1)
- typedef struct
- {
- uint8_t sensor_status; // 工作状态
- uint8_t warn_status; // 报警状态
- uint16_t weight_rate; // 重量变化率
- int weight; // 重量
- int serial_num; // 厂家编号
- uint16_t senor_k[4]; // 称重传感器K值
- uint8_t mode; // 称重模式 1播撒 2喷洒
- uint16_t dose_rate; // 最高下药率 kg/min
- } weight;
- #pragma pack()
- extern weight weight_vkinfo;
- #pragma pack(1)
- typedef struct
- {
- uint8_t work_status; // 工作状态
- uint8_t warn_status; // 报警状态
- uint8_t output; // 输出信号源
- uint16_t can_rate; // CAN波特率
- uint8_t reserve; // 保留
- uint8_t warn_switch; // 报警开关
- uint8_t recv_conut; // 计数
- int serial_num; // 厂家编号
- } seed;
- #pragma pack()
- extern seed seed_vkinfo;
- enum FACID
- {
- FAC_VK = 0, // 默认VK
- FAC_EFT = 1, // EFT
- FAC_QIFEI = 3, // 启飞播撒
- FAC_VK_ALLINONE = 4, //VK一体化
- FAC_MIMO_SIG = 5, // 恩曌单管
- FAC_MIMO_DOU = 6, // 恩曌双管
- FAC_QIFEI_SIG = 7, // 启飞单管流量计
- FAC_QIFEI_DOU = 8, // 启飞双管流量计
- FAC_VK_BMS = 10, // vk电池
- FAC_TATTU = 11, // 格式电池
- FAC_POWERAMP = 12, // 极目电池
- FAC_FULLY = 13, // 富赖电池
- FAC_HEREWIN = 14, // 海盈电池
- FAC_OKCELL = 15, // 正方电池
- FAC_HW_ESC = 16, // 好盈水泵电调
- FAC_MIMO_RT = 20, //恩曌防地
- FAC_MIMO_RF = 21, //恩曌前避障
- FAC_MIMO_RB = 22, //恩曌后避障
- FAC_MOCIB_RT = 23, //莫之比防地
- FAC_MOCIB_RF = 24, //莫之比前避障
- FAC_MOCIB_RB = 25, //莫之比后避障
- FAC_DM_RT = 26, //DM防地
- FAC_DM_RF = 27, //DM前避障
- FAC_DM_RB = 28, //DM后避障
- FAC_QX_BMS = 30, //协氢电池
- };
- typedef struct
- {
- uint8_t cap_low; // 断药
- uint32_t weight;
- comp_status low_drug_link;
- comp_status weight_link;
- comp_status spreader_link;
- uint8_t company_type_seed;
- uint8_t company_type_weight;
- uint16_t sensor_k[4];
- uint16_t dose_rate;
- uint8_t mode;
- uint16_t warn_flag;
- uint16_t weight_rate;
- uint16_t valve_persent;
- uint16_t speed_rpm;
- uint16_t pump1_rpm;
- uint16_t pump2_rpm;
- uint16_t cent1_rpm;
- uint16_t cent2_rpm;
- uint16_t watering_warn;
- } send_seed_device;
- extern send_seed_device seed_dev;
- extern comp_status seed_dev_link_status;
- extern bool recv_fmu_seed_info;
- extern uint8_t weight_init_count;
- typedef struct
- {
- } QIFEI_device;
- extern QIFEI_device QIFEI_info;
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint8_t angle;
- uint16_t speed;
- uint8_t caplow;
- uint16_t warn;
- } Seed_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint8_t mode;
- uint16_t kg;
- uint16_t rate;
- uint16_t k1;
- uint16_t k2;
- uint16_t k3;
- uint16_t k4;
- uint16_t warn;
- uint16_t dose_rate;
- } Weight_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t rpm1;
- uint16_t rpm2;
- uint16_t rpm3;
- uint16_t rpm4;
- uint16_t warn;
- } Pump_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t rpm1;
- uint16_t rpm2;
- uint16_t rpm3;
- uint16_t rpm4;
- uint16_t warn;
- } Nozzle_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t status;
- } Arm_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t speed1;
- uint16_t speed2;
- uint32_t ml1;
- uint32_t ml2;
- uint16_t warn1;
- uint16_t warn2;
- uint16_t k1;
- uint16_t k2;
- } Flow_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t L1_status;
- uint16_t L2_status;
- uint16_t liquid_persent;
- uint16_t seed_lackloss;
- uint16_t warn;
- uint16_t lack_distance;
- uint16_t lack_power;
- } CheckLow_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid_T;
- short height_T;
- short warn_T;
- uint8_t facid_F;
- short distance_F_Y;
- short distance_F_X;
- uint16_t warn_F;
- uint16_t signal_F_qulity;
- short distance_F_Y_ori;
- uint8_t facid_B;
- short distance_B_Y;
- short distance_B_X;
- uint16_t warn_B;
- uint16_t signal_B_qulity;
- short distance_B_Y_ori;
- } Radar_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint8_t buf[230];
- uint8_t index;
- } Bms_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t tempture;
- uint16_t voltage;
- uint16_t current;
- } Current_info;
- #pragma pack(0)
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t warn;
- uint16_t rpm;
- } Linear_pump_info;
- #pragma pack()
- #pragma pack(1)
- typedef struct
- {
- uint8_t facid;
- uint16_t height_part1;
- uint16_t height_part2;
- uint16_t height_part3;
- } Part_Tradar;
- #pragma pack()
- typedef struct
- {
- Seed_info Seed;
- Connect_check Seed_Link;
- Weight_info Weight;
- Connect_check Weight_Link;
- Pump_info Pump;
- Connect_check Pump_Link;
- Nozzle_info Nozzle;
- Connect_check Nozzle_Link;
- Arm_info Arm;
- Connect_check Arm_Link;
- Flow_info Flow;
- Connect_check Flow_Link1;
- Connect_check Flow_Link2;
- CheckLow_info Checklow;
- Connect_check Checklow_Link;
- Radar_info Radar;
- Connect_check Radar_Link;
- Bms_info Bms;
- Connect_check Bms_Link;
- Current_info Current;
- Connect_check Current_Link;
- Connect_check Lackloss_Link;
- Linear_pump_info L_pump1;
- Connect_check L_pump1_Link;
- Linear_pump_info L_pump2;
- Connect_check L_pump2_Link;
- Part_Tradar Part_radarT;
- Connect_check Part_Tradar_Link;
- } Device_type;
- extern Device_type Dev;
- #pragma pack(1)
- typedef struct
- {
- uint8_t type;
- uint16_t order_con1;
- uint16_t order_con2;
- } Weight_cal;
- #pragma pack(0)
- extern Weight_cal weight_order;
- enum CalEnum
- {
- Default_PAR = 0,
- Weight_Peer = 1,
- Weight_Kg = 2,
- Weight_Reserve = 3,
- Weight_Bcak = 4,
- Weight_Set_K = 5,
- Weight_Mode = 6,
- Weight_Drug_Rate = 7
- };
- void can_sendmsg_VK(void);
- void seed_init_send_info(uint8_t device_type, char *factory);
- void Set_Seed_Weight_Par(uint8_t device_type, char *factory);
- #endif
|