#ifndef U_POWER_PMSTATE_FB_H #define U_POWER_PMSTATE_FB_H #include "../driver.h" #include "string" #include "json/json.h" #include class uPower_pmStateMsg { private: /* data */ public: uPower_pmStateMsg() { memset(&state, 0, sizeof(state)); }; ~uPower_pmStateMsg() {}; std::string key = "uPower_pmState_fb"; struct uPower_pmState { unsigned char workCondition; unsigned char currentMod; unsigned char powerState; unsigned char faultLevel; vector faultCode; unsigned int soc; unsigned int sustainableTime; unsigned int m_faultNum; unsigned char m_leakage; } state; std::string buildMsg() { // 状态赋值 //1.构建系统状态报告 Json::Value pms; pms["workCondition_uint"] = state.workCondition; pms["currentMod_uint8"] = state.currentMod; pms["powerState_uint8"] = state.powerState; pms["faultLevel_uint8"] = state.faultLevel; Json::Value faultCode_array; for(auto val : state.faultCode) { faultCode_array.append(val); } pms["faultCode_array"] = faultCode_array; pms["soc_uint16"] = state.soc; pms["sustainableTime_int64"] = state.sustainableTime; pms["leakage_uint8"] = state.m_leakage; // 转化为json格式 Json::StreamWriterBuilder writerBuilder; writerBuilder.settings_["indentation"] = ""; return Json::writeString(writerBuilder, pms); } }; #endif