/* * System.cpp * * Created on: 2020年9月14日 * Author: vsbes */ #include "System.h" #include #include #include #include #include #include #include #include #include #include "../../utils/easylogger/inc/elog.h" #include "../../utils/Util.h" #include "../devices/Common.h" #include "ctime" #include System::System() { // TODO Auto-generated constructor stub RLCPower = 0.0; } System::~System() { // TODO Auto-generated destructor stub } /** * 公有函数区 */ int System::getCurrentTime() { std::time_t now = std::time(nullptr); std::tm* local_time = std::localtime(&now); int hour = local_time->tm_hour; return hour; } int System::getChgSet() { std::time_t now = std::time(nullptr); std::tm* local_time = std::localtime(&now); double hour = local_time->tm_hour; double min = local_time->tm_min; if(hour >= chargeStart_Hour_01 && min >= chargeStart_Min_01) { if(hour <= chargeEnd_Hour_01 && min <= chargeEnd_Min_01) { return chargeSet; // 返回充电 } } if(hour >= chargeStart_Hour_02 && min >= chargeStart_Min_02) { if(hour <= chargeEnd_Hour_02 && min <= chargeEnd_Min_02) { return chargeSet; // 返回充电 } } if(hour >= dischargeStart_Hour_01 && min >= dischargeStart_Min_01) { if(hour <= dischargeEnd_Hour_01 && min <= dischargeEnd_Min_01) { return dischargeSet; // 返回放电 } } if(hour >= dischargeStart_Hour_02 && min >= dischargeStart_Min_02) { if(hour <= dischargeEnd_Hour_02 && min <= dischargeEnd_Min_02) { return dischargeSet; // 返回放电 } } return 0 ; } double System::getCurrentPower() { std::time_t now = std::time(nullptr); std::tm* tm = std::localtime(&now); return powerSchedule[tm->tm_hour][tm->tm_min / 15]; } void System::powerPlanSetValue(double value) { if(powerSetTemp != value) { Util::setItemFloatValue("盛弘PCS/有功功率设置", value, 101); powerSetTemp = value; } else { } } HRESULT System::init() { addDataBase(DataBase(&powerSet_00_00, 'F', "virtual/计划曲线功率设置00_00", 0,65535)); addDataBase(DataBase(&powerSet_00_15, 'F', "virtual/功率计划功率设置00_15", 0,65535)); addDataBase(DataBase(&powerSet_00_30, 'F', "virtual/功率计划功率设置00_30", 0,65535)); addDataBase(DataBase(&powerSet_00_45, 'F', "virtual/功率计划功率设置00_45", 0,65535)); addDataBase(DataBase(&powerSet_01_00, 'F', "virtual/功率计划功率设置01_00", 0,65535)); addDataBase(DataBase(&powerSet_01_15, 'F', "virtual/功率计划功率设置01_15", 0,65535)); addDataBase(DataBase(&powerSet_01_30, 'F', "virtual/功率计划功率设置01_30", 0,65535)); addDataBase(DataBase(&powerSet_01_45, 'F', "virtual/功率计划功率设置01_45", 0,65535)); addDataBase(DataBase(&powerSet_02_00, 'F', "virtual/功率计划功率设置02_00", 0,65535)); addDataBase(DataBase(&powerSet_02_15, 'F', "virtual/功率计划功率设置02_15", 0,65535)); addDataBase(DataBase(&powerSet_02_30, 'F', "virtual/功率计划功率设置02_30", 0,65535)); addDataBase(DataBase(&powerSet_02_45, 'F', "virtual/功率计划功率设置02_45", 0,65535)); addDataBase(DataBase(&powerSet_03_00, 'F', "virtual/功率计划功率设置03_00", 0,65535)); addDataBase(DataBase(&powerSet_03_15, 'F', "virtual/功率计划功率设置03_15", 0,65535)); addDataBase(DataBase(&powerSet_03_30, 'F', "virtual/功率计划功率设置03_30", 0,65535)); addDataBase(DataBase(&powerSet_03_45, 'F', "virtual/功率计划功率设置03_45", 0,65535)); addDataBase(DataBase(&powerSet_04_00, 'F', "virtual/功率计划功率设置04_00", 0,65535)); addDataBase(DataBase(&powerSet_04_15, 'F', "virtual/功率计划功率设置04_15", 0,65535)); addDataBase(DataBase(&powerSet_04_30, 'F', "virtual/功率计划功率设置04_30", 0,65535)); addDataBase(DataBase(&powerSet_04_45, 'F', "virtual/功率计划功率设置04_45", 0,65535)); addDataBase(DataBase(&powerSet_05_00, 'F', "virtual/功率计划功率设置05_00", 0,65535)); addDataBase(DataBase(&powerSet_05_15, 'F', "virtual/功率计划功率设置05_15", 0,65535)); addDataBase(DataBase(&powerSet_05_30, 'F', "virtual/功率计划功率设置05_30", 0,65535)); addDataBase(DataBase(&powerSet_05_45, 'F', "virtual/功率计划功率设置05_45", 0,65535)); addDataBase(DataBase(&powerSet_06_00, 'F', "virtual/功率计划功率设置06_00", 0,65535)); addDataBase(DataBase(&powerSet_06_15, 'F', "virtual/功率计划功率设置06_15", 0,65535)); addDataBase(DataBase(&powerSet_06_30, 'F', "virtual/功率计划功率设置06_30", 0,65535)); addDataBase(DataBase(&powerSet_06_45, 'F', "virtual/功率计划功率设置06_45", 0,65535)); addDataBase(DataBase(&powerSet_07_00, 'F', "virtual/功率计划功率设置07_00", 0,65535)); addDataBase(DataBase(&powerSet_07_15, 'F', "virtual/功率计划功率设置07_15", 0,65535)); addDataBase(DataBase(&powerSet_07_30, 'F', "virtual/功率计划功率设置07_30", 0,65535)); addDataBase(DataBase(&powerSet_07_45, 'F', "virtual/功率计划功率设置07_45", 0,65535)); addDataBase(DataBase(&powerSet_08_00, 'F', "virtual/功率计划功率设置08_00", 0,65535)); addDataBase(DataBase(&powerSet_08_15, 'F', "virtual/功率计划功率设置08_15", 0,65535)); addDataBase(DataBase(&powerSet_08_30, 'F', "virtual/功率计划功率设置08_30", 0,65535)); addDataBase(DataBase(&powerSet_08_45, 'F', "virtual/功率计划功率设置08_45", 0,65535)); addDataBase(DataBase(&powerSet_09_00, 'F', "virtual/功率计划功率设置09_00", 0,65535)); addDataBase(DataBase(&powerSet_09_15, 'F', "virtual/功率计划功率设置09_15", 0,65535)); addDataBase(DataBase(&powerSet_09_30, 'F', "virtual/功率计划功率设置09_30", 0,65535)); addDataBase(DataBase(&powerSet_09_45, 'F', "virtual/功率计划功率设置09_45", 0,65535)); addDataBase(DataBase(&powerSet_10_00, 'F', "virtual/功率计划功率设置10_00", 0,65535)); addDataBase(DataBase(&powerSet_10_15, 'F', "virtual/功率计划功率设置10_15", 0,65535)); addDataBase(DataBase(&powerSet_10_30, 'F', "virtual/功率计划功率设置10_30", 0,65535)); addDataBase(DataBase(&powerSet_10_45, 'F', "virtual/功率计划功率设置10_45", 0,65535)); addDataBase(DataBase(&powerSet_11_00, 'F', "virtual/功率计划功率设置11_00", 0,65535)); addDataBase(DataBase(&powerSet_11_15, 'F', "virtual/功率计划功率设置11_15", 0,65535)); addDataBase(DataBase(&powerSet_11_30, 'F', "virtual/功率计划功率设置11_30", 0,65535)); addDataBase(DataBase(&powerSet_11_45, 'F', "virtual/功率计划功率设置11_45", 0,65535)); addDataBase(DataBase(&powerSet_12_00, 'F', "virtual/功率计划功率设置12_00", 0,65535)); addDataBase(DataBase(&powerSet_12_15, 'F', "virtual/功率计划功率设置12_15", 0,65535)); addDataBase(DataBase(&powerSet_12_30, 'F', "virtual/功率计划功率设置12_30", 0,65535)); addDataBase(DataBase(&powerSet_12_45, 'F', "virtual/功率计划功率设置12_45", 0,65535)); addDataBase(DataBase(&powerSet_13_00, 'F', "virtual/功率计划功率设置13_00", 0,65535)); addDataBase(DataBase(&powerSet_13_15, 'F', "virtual/功率计划功率设置13_15", 0,65535)); addDataBase(DataBase(&powerSet_13_30, 'F', "virtual/功率计划功率设置13_30", 0,65535)); addDataBase(DataBase(&powerSet_13_45, 'F', "virtual/功率计划功率设置13_45", 0,65535)); addDataBase(DataBase(&powerSet_14_00, 'F', "virtual/功率计划功率设置14_00", 0,65535)); addDataBase(DataBase(&powerSet_14_15, 'F', "virtual/功率计划功率设置14_15", 0,65535)); addDataBase(DataBase(&powerSet_14_30, 'F', "virtual/功率计划功率设置14_30", 0,65535)); addDataBase(DataBase(&powerSet_14_45, 'F', "virtual/功率计划功率设置14_45", 0,65535)); addDataBase(DataBase(&powerSet_15_00, 'F', "virtual/功率计划功率设置15_00", 0,65535)); addDataBase(DataBase(&powerSet_15_15, 'F', "virtual/功率计划功率设置15_15", 0,65535)); addDataBase(DataBase(&powerSet_15_30, 'F', "virtual/功率计划功率设置15_30", 0,65535)); addDataBase(DataBase(&powerSet_15_45, 'F', "virtual/功率计划功率设置15_45", 0,65535)); addDataBase(DataBase(&powerSet_16_00, 'F', "virtual/功率计划功率设置16_00", 0,65535)); addDataBase(DataBase(&powerSet_16_15, 'F', "virtual/功率计划功率设置16_15", 0,65535)); addDataBase(DataBase(&powerSet_16_30, 'F', "virtual/功率计划功率设置16_30", 0,65535)); addDataBase(DataBase(&powerSet_16_45, 'F', "virtual/功率计划功率设置16_45", 0,65535)); addDataBase(DataBase(&powerSet_17_00, 'F', "virtual/功率计划功率设置17_00", 0,65535)); addDataBase(DataBase(&powerSet_17_15, 'F', "virtual/功率计划功率设置17_15", 0,65535)); addDataBase(DataBase(&powerSet_17_30, 'F', "virtual/功率计划功率设置17_30", 0,65535)); addDataBase(DataBase(&powerSet_17_45, 'F', "virtual/功率计划功率设置17_45", 0,65535)); addDataBase(DataBase(&powerSet_18_00, 'F', "virtual/功率计划功率设置18_00", 0,65535)); addDataBase(DataBase(&powerSet_18_15, 'F', "virtual/功率计划功率设置18_15", 0,65535)); addDataBase(DataBase(&powerSet_18_30, 'F', "virtual/功率计划功率设置18_30", 0,65535)); addDataBase(DataBase(&powerSet_18_45, 'F', "virtual/功率计划功率设置18_45", 0,65535)); addDataBase(DataBase(&powerSet_19_00, 'F', "virtual/功率计划功率设置19_00", 0,65535)); addDataBase(DataBase(&powerSet_19_15, 'F', "virtual/功率计划功率设置19_15", 0,65535)); addDataBase(DataBase(&powerSet_19_30, 'F', "virtual/功率计划功率设置19_30", 0,65535)); addDataBase(DataBase(&powerSet_19_45, 'F', "virtual/功率计划功率设置19_45", 0,65535)); addDataBase(DataBase(&powerSet_20_00, 'F', "virtual/功率计划功率设置20_00", 0,65535)); addDataBase(DataBase(&powerSet_20_15, 'F', "virtual/功率计划功率设置20_15", 0,65535)); addDataBase(DataBase(&powerSet_20_30, 'F', "virtual/功率计划功率设置20_30", 0,65535)); addDataBase(DataBase(&powerSet_20_45, 'F', "virtual/功率计划功率设置20_45", 0,65535)); addDataBase(DataBase(&powerSet_21_00, 'F', "virtual/功率计划功率设置21_00", 0,65535)); addDataBase(DataBase(&powerSet_21_15, 'F', "virtual/功率计划功率设置21_15", 0,65535)); addDataBase(DataBase(&powerSet_21_30, 'F', "virtual/功率计划功率设置21_30", 0,65535)); addDataBase(DataBase(&powerSet_21_45, 'F', "virtual/功率计划功率设置21_45", 0,65535)); addDataBase(DataBase(&powerSet_22_00, 'F', "virtual/功率计划功率设置22_00", 0,65535)); addDataBase(DataBase(&powerSet_22_15, 'F', "virtual/功率计划功率设置22_15", 0,65535)); addDataBase(DataBase(&powerSet_22_30, 'F', "virtual/功率计划功率设置22_30", 0,65535)); addDataBase(DataBase(&powerSet_22_45, 'F', "virtual/功率计划功率设置22_45", 0,65535)); addDataBase(DataBase(&powerSet_23_00, 'F', "virtual/功率计划功率设置23_00", 0,65535)); addDataBase(DataBase(&powerSet_23_15, 'F', "virtual/功率计划功率设置23_15", 0,65535)); addDataBase(DataBase(&powerSet_23_30, 'F', "virtual/功率计划功率设置23_30", 0,65535)); addDataBase(DataBase(&powerSet_23_45, 'F', "virtual/功率计划功率设置23_45", 0,65535)); addDataBase(DataBase(&chargeStart_Hour_01, 'I', "virtual/充电时间段1_开始时间_时", 0,65535)); addDataBase(DataBase(&chargeStart_Min_01, 'I', "virtual/充电时间段1_开始时间_分", 0,65535)); addDataBase(DataBase(&chargeStart_Hour_02, 'I', "virtual/充电时间段2_开始时间_时", 0,65535)); addDataBase(DataBase(&chargeStart_Min_02, 'I', "virtual/充电时间段2_开始时间_分", 0,65535)); addDataBase(DataBase(&chargeEnd_Hour_01, 'I', "virtual/充电时间段1_结束时间_时", 0,65535)); addDataBase(DataBase(&chargeEnd_Min_01, 'I', "virtual/充电时间段1_结束时间_分", 0,65535)); addDataBase(DataBase(&chargeEnd_Hour_02, 'I', "virtual/充电时间段2_结束时间_时", 0,65535)); addDataBase(DataBase(&chargeEnd_Min_02, 'I', "virtual/充电时间段2_结束时间_分", 0,65535)); addDataBase(DataBase(&dischargeStart_Hour_01, 'I', "virtual/放电时间段1_开始时间_时", 0,65535)); addDataBase(DataBase(&dischargeStart_Min_01, 'I', "virtual/放电时间段1_开始时间_分", 0,65535)); addDataBase(DataBase(&dischargeStart_Hour_02, 'I', "virtual/放电时间段2_开始时间_时", 0,65535)); addDataBase(DataBase(&dischargeStart_Min_02, 'I', "virtual/放电时间段2_开始时间_分", 0,65535)); addDataBase(DataBase(&dischargeEnd_Hour_01, 'I', "virtual/放电时间段1_结束时间_时", 0,65535)); addDataBase(DataBase(&dischargeEnd_Min_01, 'I', "virtual/放电时间段1_结束时间_分", 0,65535)); addDataBase(DataBase(&dischargeEnd_Hour_02, 'I', "virtual/放电时间段2_结束时间_时", 0,65535)); addDataBase(DataBase(&dischargeEnd_Min_02, 'I', "virtual/放电时间段2_结束时间_分", 0,65535)); addDataBase(DataBase(&activePowerSet, 'F', "盛弘PCS/有功功率设置", 0,65535)); return S_OK; } std::vector::iterator System::getDataBase() { return dataBases.begin(); } size_t System::getDataBaseSize() { return dataBases.size(); } void System::powerplanLogic() { double power = getCurrentPower(); int chgrState = getChgSet(); if(chgrState == 1) // 充电设置 { powerPlanSetValue(power); } else { if(chgrState == 2) // 放电设置 { powerPlanSetValue(-1*power); } } } void System::other() { if(powerPlanEnable == 1) { powerplanLogic(); } } /** * 私有函数区 */ System* System::addParam(const std::string key, const std::string value) { if (!key.empty() && !value.empty()) { params.insert(make_pair(key, value)); } return this; } System* System::addDataBase(DataBase dataBase) { dataBases.push_back(dataBase); return this; } std::string System::getParam(std::string key) { size_t index = params.count(key); if (index == 0) { return ""; } else { return params.find(key)->second; } }