Files
H100PowerManger/src/pPowerManger/upmsg/uPower_liBatState.h
T
2025-05-21 09:33:44 +08:00

71 lines
2.8 KiB
C++

#ifndef U_POWER_LIBATSTATE_ST_H
#define U_POWER_LIBATSTATE_ST_H
#include "../driver.h"
#include "string"
#include "json/json.h"
#include <bitset>
#include "../systemData.h"
class uPower_liBatStateMsg
{
private:
/* data */
public:
uPower_liBatStateMsg() {
};
~uPower_liBatStateMsg() {};
std::string key = "uPower_liBatState_st";
std::string buildMsg(SystemData data)
{
//TODO:根据最新协议修改
Json::Value lbs;
//构建动力锂电池状态报告
lbs["insBatCurElect_uint16"] = data.ins_current;
lbs["insBatLimit_uint16"] = data.ins_power_limit1;
lbs[ "insBatSoc_uint8"] = data.ins_soc;
lbs["insBatTotalElect_uint16"] = data.ins_total_energy;
lbs["insChargeState_uint8"] = data.ins_charge_status;
lbs["insCurSocHold1_uint8"] = 0; //备用
lbs["insCurSocHold2_uint8"] = 0; //备用
lbs["insCurSocHold3_uint8"] = 0; //备用
lbs["insCurrent_uint16"] = data.ins_current;
lbs[ "insLinkVol_uint16"] = data.ins_voltage_link;
lbs["insNegRelayState_uint8"] = 0;
lbs["insNegRes_uint16"] = data.ins_resistance_neg;
lbs[ "insPackVol_uint16"] = data.ins_voltage_pack;
lbs[ "insPosRelayState_uint8"] = 0;
lbs["insPosRes_uint16"] = data.ins_resistance_pos;
lbs["powBatCurElect_uint16"] = 0;
lbs["powBatSoc_uint8"] = data.dyn_soc;
lbs[ "powBatTotalElect_uint16"] = data.dyn_total_energy;
lbs["powChargeState_uint8"] = data.dyn_charge_status;
lbs["powCurSocHold1_uint8"] = 0; //备用
lbs["powCurSocHold2_uint8"] = 0; //备用
lbs["powCurSocHold3_uint8"] = 0; //备用
lbs["powCurToInsLimit1_uint8"] = data.dyn_power_limit1;
lbs["powCurToInsLimit2_uint8"] = data.dyn_power_limit2;
lbs["powCur_uint16"] = data.dyn_current;
lbs["powLinkVol_uint16"] = data.dyn_voltage_link;
lbs["powNegRelayState_uint8"] = 0;
lbs["powNegRes_uint16"] = data.dyn_resistance_neg;
lbs["powPosRelayState_uint8"] = 0;
lbs["powPosRes_uint16"] = data.dyn_resistance_pos;
lbs["powerBatLimit_uint16"] = 0; //备用
lbs["powerPackVol_uint16"] = data.dyn_voltage_pack;
lbs["powFaultCode_uint8"] = data.powfaultCode;
lbs["insFaultCode_uint8"] = data.insfaultCode;
//新增加两个通信状态字段
// lbs["insCommState_uint8"] = data.device_common_status.ccu_status.isTimeout;
// lbs["powCommState_uint8"] = data.device_common_status.ccu_status.isTimeout;
//TODO:默认屏蔽故障码
lbs["insCommState_uint8"] = 0;
lbs["powCommState_uint8"] = 0;
Json::StreamWriterBuilder writerBuilder;
writerBuilder.settings_["indentation"] = "";
return Json::writeString(writerBuilder, lbs);
}
};
#endif