/****************************************************************************** * @file protocol_mqtt_bcu.h * @brief protocol_mqtt_bcu.h * @version V1.0 * @author Gary * @copyright ******************************************************************************/ #ifndef PROTOCOL_MQTT_BCU_H_ #define PROTOCOL_MQTT_BCU_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include #include "cJSON.h" #include "drv_qfc41d.h" #include "drv_rtc.h" typedef struct { const char* key; // JSON 中的键,比如 "BCU_2" uint8_t groupId; // mqtt因为json长度限制,这里面用于分组传输,从0开始, uint16_t input; // get_val的入参,用于获取key对应的数据 uint32_t (*get_val)(uint16_t); // 对应值的获取函数 } devPointMap; typedef struct { const char* key; // JSON 中的键,比如 "BCU_"后面不带数字,数据后面通过BCU_pointId组合 uint16_t pointId; // 用于记录开始的测点号,见bcu模型 uint16_t startCellIndex; // 开始的电压序号(入参) uint16_t endCellIndex; // 结束的电压序号(入参) uint32_t (*get_val)(uint16_t); // 对应值的获取函数 } devCellPointMap; extern const devPointMap bms_points[]; extern const devCellPointMap bms_volt_points[]; extern const devCellPointMap bms_temp_points[]; void mqtt_publish_bms_data(uint32_t basetime); #ifdef __cplusplus } #endif #endif