/* * Device.cpp * * Created on: 2020年9月14日 * Author: vsbes */ #include "Device.h" #include #include #include "../../utils/Util.h" Device::Device() { // TODO Auto-generated constructor stub chargeOrDisChargeState = 0; P = 0.0; SOC = 0.0; chargeEnergy = 0.0; disChargeEnergy = 0.0; chargeEnergy_o = 0.0; disChargeEnergy_o = 0.0; chargeEnergyDaily = 0.0; disChargeEnergyDaily = 0.0; } Device::~Device() { // TODO Auto-generated destructor stub } Device* Device::addParam(const std::string key, const std::string value) { if (!key.empty() && !value.empty()) { params.insert(make_pair(key, value)); } return this; } HRESULT Device::init() { chargeStateUUID = getParam("chargeState"); disChargeStateUUID = getParam("disChargeState"); chargeEnergyUUID = getParam("chargeEnergy"); disChargeEnergyUUID = getParam("disChargeEnergy"); chargeEnergyDailyUUID = getParam("chargeEnergyDaily"); disChargeEnergyDailyUUID = getParam("disChargeEnergyDaily"); return S_OK; } void Device::other() { if (chargeOrDisChargeState == 0) { Util::setItemIntValue(chargeStateUUID, 0, 101); Util::setItemIntValue(disChargeStateUUID, 0, 101); } else if (chargeOrDisChargeState == 1) { Util::setItemIntValue(chargeStateUUID, 1, 101); Util::setItemIntValue(disChargeStateUUID, 0, 101); chargeEnergy += (fabs(P) * 0.000277777778); } else if (chargeOrDisChargeState == 2) { Util::setItemIntValue(chargeStateUUID, 0, 101); Util::setItemIntValue(disChargeStateUUID, 1, 101); disChargeEnergy += (fabs(P) * 0.000277777778); } else { Util::setItemIntValue(chargeStateUUID, 0, 101); Util::setItemIntValue(disChargeStateUUID, 0, 101); } chargeEnergyDaily = chargeEnergy - chargeEnergy_o; disChargeEnergyDaily = disChargeEnergy - disChargeEnergy_o; Util::setItemFloatValue(chargeEnergyUUID, chargeEnergy, 101); Util::setItemFloatValue(disChargeEnergyUUID, disChargeEnergy, 101); Util::setItemFloatValue(chargeEnergyDailyUUID, chargeEnergyDaily, 101); Util::setItemFloatValue(disChargeEnergyDailyUUID, disChargeEnergyDaily, 101); } std::string Device::getParam(std::string key) { size_t index = params.count(key); if (index == 0) { return ""; } else { return params.find(key)->second; } }