#ifndef __SOFT_HEREWIN_H #define __SOFT_HEREWIN_H #include "common.h" //报警信息、警告信息 //B15:放电过流 B14:电池损坏 B13: B12:电池低温(充电/放电) B11:电池高温(充电/放电) B10:电池(单体)欠压 //B9: 电池(单体)过压 B8: B7: B6: B5: B4: B3: B2: B1: B0: 充电过流 #pragma pack(1) typedef struct { char battery_temp[3]; //每个电芯温度°C uint16_t battery_vol[14]; //每个电芯电压 0.001V uint16_t alarm_info; //报警信息 uint16_t warn_info; //警告信息 uint16_t total_vol; //总电压 0.01V uint16_t tolal_ele; //总电流 0.01A uint8_t SOC_info; //剩余电量% uint8_t SOH_info; //健康状态% uint8_t SOP_info; //功率状态% uint32_t serial_number; //序列号 uint16_t hard_version; //硬件版本 uint16_t soft_version; //软件版本 uint8_t battery_num; //电芯个数 uint16_t circulation_num; //循环次数 //充电请求相关参数 uint16_t re_vol; //请求电压 uint16_t re_ele; //请求电流 uint16_t max_vol; //单体最大电压 uint16_t power_status; //充电状态 bool get_temp_flag; //温度是单独一包,并且有偏移,没获取到温度之前会显示负数 }herewin_bms; #pragma pack() extern herewin_bms herewin_info; extern Connect_check Herewin_Link; #define HEREWIN_HEART_ID 0x004300F0 //心跳数据包 #define HEREWIN_VOL_ID 0x008400F0 //单体电压包 #define HEREWIN_TEM_ID 0x008200F0 //单体温度包 #define HEREWIN_SEARCH_ID 0x008000F0 //定值查询 #define HEREWIN_CIRCULATION_ID 0x008600F0 //循环次数查询 void HerewinCanRecvHookFunction(uint32_t cellCanID, uint8_t data[], uint8_t len); void send_msg_to_herewin(void); #endif