| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- #ifndef __USARTDATA_HANDLE_H
- #define __USARTDATA_HANDLE_H
- #include "stdbool.h"
- #include "stdint.h"
- #include "stm32f4xx_hal.h"
- #include "stm32f4xx_hal_uart.h"
- #include "common.h"
- #define MAX_UART_BUF 256
- extern uint8_t FMU_uart_buf[MAX_UART_BUF];
- typedef enum
- {
- RX_HEAD = 0,
- RX_PAYLOAD_LEN,
- RX_SEQ,
- RX_SYSID,
- RX_GROUPID,
- RX_MSGID,
- RX_PAYLOAD,
- RX_CHECK_LOW,
- RX_CHECK_HIGH
- } Msg_Rx_Stage;
- typedef enum
- {
- GROUP_ID_FCU = 0,
- GROUP_ID_F_UPDATE = 51,
- GROUP_ID_B_UPDATE = 52,
- GROUP_ID_T_UPDATE = 56,
- GROUP_ID_EFTPUMP1_UPDATE = 91,
- GROUP_ID_EFTPUMP2_UPDATE = 92,
- GROUP_ID_EFTNOZZLE1_UPDATE = 96,
- GROUP_ID_EFTNOZZLE2_UPDATE = 97,
- GROUP_ID_EFTNOZZLE3_UPDATE = 98,
- GROUP_ID_EFTNOZZLE4_UPDATE = 99,
- GROUP_ID_EFTFB_UPDATE = 105,
- GROUP_ID_EFTSEED_UPDATE = 111,
- GROUP_ID_PMU_UPDATE = 204,
- GROUP_ID_WEIGHT_UPDATE = 222,
- GROUP_ID_Z70FB_UPDATE = 223,
- GROUP_ID_Z70FBLIFTING_UPDATE = 224,
- GROUP_ID_EFT_TURNMOTOR = 225,
- GROUP_ID_EFT_CHURN = 226,
- GROUP_ID_EFT_CHURNTURN = 227,
- GROUP_IDEND,
- } GROUP_ID;
- enum vklink_msgid
- {
- _MSGID_VOL = 1, // 电压
- _MSGID_RADAR = 2, // 雷达
- _MSGID_FLOW = 3, // 流量计
- _MSGID_BMS = 4, // 电池
- _MSGID_PWM = 5, // p1 p2 a1 a2通道
- _MSGID_LED = 6, // 外部LED灯
- _MSGID_ATTITUDE = 8, // 飞机姿态信息
- _MSGID_TIME = 9, // UTC时间信息
- _MSG_ENGIN = 10, // 发动机
- _MSGID_EFT_CON = 11, // EFT输出CAN控制
- _MSGID_DEV_INFO = 12, // 设备信息
- _MSGID_REQ = 20, // 请求信息
- _MSGID_ACK = 21, // 主控应答
- _MSGID_SET = 22, // 设置信息
- _MSGID_SHA1 = 25, // 智能电池SHA1验证
- _MSGID_DEV_LIST = 26, // 设备SN,软硬件管理
- _MSGID_HEART = 27, // 心跳检测
- _MSGID_360RADAR = 30, //360雷达
- _MSGID_UPDATA = 200, // 升级信息
- _MSGID_CANDEBUG = 213, // CAN调试
- };
- enum vklink_MSGID_ACK
- {
- MSGID_ACK_HEART = 1,
- MSGID_ACK_VERSION = 7, // 版本信息
- MSGID_ACK_DEV = 26, // 版本信息
- };
- enum vklink_MSGID_SET
- {
- MSGID_SET_F_RADAR = 1, // 设置前雷达
- MSGID_SET_B_RADAR = 2, // 设置后雷达
- MSGID_SET_T_RADAR = 6, // 设置防地雷达
- MSGID_SET_GEELY = 10, // 设置轩浮发动机
- MSGID_SET_VOL = 20, // 设置电压
- MSGID_SET_MIMO_FLOW = 21, // 设置恩曌流量计系数
- MSGID_SET_FLOW_BACKGROUND = 22,//清除流量背景
- MSGID_SET_WEIGHT_K = 23, // 设置重量传感器K
- MSGID_SET_SEED_OUT_TYPE = 24, // 设置播撒输出类型pwm can
- MSGID_SET_SEED_CAL_TYPE = 25, // 设置播撒校准类型
- MSGID_SET_WEIGHT_MODE = 26, // 设置重量传感器工作模式
- MSGID_SET_MAX_RATE = 27, // 设置播撒最大下药率
- MSGID_SET_PMU_SERIAL = 28, // 设置pmu序列号
- MSGID_SET_RADAR_FB = 29, // 设置当前雷达前后/恢复出厂 恩曌雷达有效
- MSGID_SET_LACKLOSS_CAL = 30, // 断料记校准
- MSGID_SET_PNCANID = 55, //设置EFT水泵电调CAN ID
- MSGID_SET_RESIWIRE_BLOWN = 60,// 熔断电阻丝
- MSGID_SET_CHURN_RESET = 61, // 绞龙复位
- };
- //发送设备信息ID
- typedef enum
- {
- DEV_SEED = 1,
- DEV_WEIGHT,
- DEV_PUMP,
- DEV_NOZZLE,
- DEV_ARM,
- DEV_FLOW,
- DEV_CHECKLOW,
- DEV_RADAR,
- DEV_BMS,
- DEV_ENGIN,
- DEV_CURRENT,
- DEV_L_PUMP1,
- DEV_L_PUMP2,
- DEV_PART_RADAR,
- DEV_PART_FRADAR,
- DEV_PART_BRADAR
- } Dev_Type_NUM;
- //飞机状态
- enum LOCK_STATUS
- {
- STA_LOCK = 0,
- STA_UNLOCK = 1,
- };
- //机型
- enum DRONE_TYPE
- {
- JET_UAV_TYPE = 13,
- VK_ALL_IN_ONE = 18,
- AG_EFTZ = 15,
- };
- //请求信息包
- enum vklink_MSGID_REQ
- {
- MSGID_REQ_VERSION = 7, // 版本信息
- };
- #pragma pack(1)
- typedef struct
- {
- short yaw; // 航向角
- short roll_angle; // 0.01
- short pitch_angle; // 0.01
- short alt;
- short E_vel; // 东西速度
- short N_vel; // 南北速度
- short alt_vel; // 垂直速度
- short lock_status; // 0 上锁 1解锁
- short UAV_type;
- short thr_pwm;
- short Candebug_flag; // can调试 0开 1关
- } plane_para;
- #pragma pack()
- extern plane_para planep;
- typedef struct soft_p_2_c
- {
- uint8_t num;
- uint16_t content1;
- uint16_t content2;
- } Set_info;
- extern Set_info msgidset;
- #pragma pack(1)
- typedef struct
- {
- uint8_t head; //0xFE
- uint8_t len;
- uint8_t seq;
- uint8_t system_id; //0
- uint8_t group_id;
- uint8_t msg_id;
- uint8_t head_bytes; //6
- uint8_t check_bytes;//2
- uint16_t crc;
- uint8_t payload[MAX_UART_BUF];
- bool complete_flag;
- }Vk_protocol;
- #pragma pack()
- extern Vk_protocol fcu_protocol;
- #pragma pack(1)
- typedef struct
- {
- bool vk_dev_update_flag;
- uint16_t vk_dev_pack_num;
- uint32_t bin_size;
- bool step_200_flag;
- bool step_201_flag;
- bool step_202_flag;
- }Vk_update_protocol;
- #pragma pack()
- extern Vk_update_protocol fcu_update_info;
- #pragma pack(1)
- typedef struct
- {
- short pump1;
- short pump2;
- short nozz1_fm;
- short nozz2_zp;
- short nozz3;
- short nozz4;
- uint16_t aux_light; //Bit 0 :1灯 Bit 1:2灯 Bit2-8:灯1亮度 Bit9-15:灯2亮度
- short aux_steer;
- }_pmu_pin;
- #pragma pack()
- extern _pmu_pin pmu_pin;
- #pragma pack(1)
- typedef struct
- {
- bool version_info;
- bool key_info_checking; // 给fcu发送信息
- bool key_to_bms;
- uint8_t mos_status;
- uint8_t Dev_type;
- uint8_t Id;
- uint8_t Id_content;
- unsigned char key_data[20];
- } Start_info;
- extern Start_info start_msg;
- #pragma pack()
- extern Connect_check fcu;
- void thread_usart_task_entry(void *param);
- void USER_UART_IRQHandler(UART_HandleTypeDef *huart);
- #endif
|