63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
#ifndef U_POWER_PMSTATE_FB_H
|
|
#define U_POWER_PMSTATE_FB_H
|
|
#include "../driver.h"
|
|
#include "string"
|
|
#include "json/json.h"
|
|
#include <bitset>
|
|
|
|
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<unsigned int> 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 |