71 lines
2.8 KiB
C++
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 |