#pragma once #include "libs/shark_libs.h" #pragma pack (push,1) typedef struct { //整个包大小 uint8_t size; //命令设备 uint8_t type; //协议类型 uint8_t protocol; //命令类型 uint8_t cmd; //命令校验 uint16_t checksum; //命令处理调用 uint8_t dir; //命令返回状态 uint8_t bStatus; //命令数据部分 uint8_t data[0]; }comm_head_t; #pragma pack(pop) #pragma pack (push,1) typedef struct { uint8_t remain_miles; uint8_t capacity; uint8_t remain_charger_time; uint8_t is_chargering; uint32_t load_current; uint32_t pack_voltage; int8_t max_temp; uint16_t health_state; uint32_t balance_mask; uint8_t misc_status; //bit0:bond, bit1-2: mos, bit3-4, small-short,full, bit 5, bit6 calibarate uint8_t result; }comm_response_t; #pragma pack(pop) #pragma pack (push,1) typedef struct { uint16_t soh; uint32_t charger_cycle; uint8_t res2[36]; }times_response_t; #pragma pack(pop) enum { OP_NONE, //OP_BOND, OP_BIN_LIAN, OP_WRITE_SN, OP_PAIR, OP_UPDATE_PAIR, OP_READ_INFO, OP_ALARM_TIMES, OP_CELL_VOL,//0x07 OP_TEMP_OTHER,//0x08 OP_AGING_TEMPS = 0x0A, OP_OPEN_FET = 0x0B, OP_CLEAR_PAIR = OP_TEMP_OTHER + 1, OP_READ_DETECT = 0x0D, OP_UPDATE_SOFTWARE_REQ = 0x0E, OP_UPDATE_SOFTWARE = 0x0F, OP_MAX }; enum { CW_NONE, CW_CHONG_DIAN_ZUO, CW_CHE_SHANG_CHARGER, CW_CHE_SHANG_NO_CHARGER, CW_MAX };