#ifndef U_POWER_LIBATSTATE_ST_H #define U_POWER_LIBATSTATE_ST_H #include "../driver.h" #include "string" #include "json/json.h" #include #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