#pragma once #include #include #include "common/Fields.h" class Device; class Station { public: Station(); void setFields(Fields& fields); void addDevice(int deviceId, std::shared_ptr device); std::shared_ptr getDevice(int deviceId); void getDeviceByType(int typeId, std::vector>& res); int getDeviceNumByGroup(std::string name); void getDeviceByGroup(std::string name, std::vector>& res); void setWorkMode(int modeId); void setPolicy(int policyId); public: int id {}; std::string name; bool isConnected {false}; int workModeId {}; // 运行模式 int runPolicyId {}; // 运行策略 // 储能容量 double energyCapacity {}; /////////////////////////////////////////////////////////////////////////////////////////////// /// === 系统统计 === // 累计发电量,单位:kWh double electGenTatal {}; // 累计入网电量,单位:kWh double electGridTotal {}; // 累计收益,单位:元 double incomeTotal {}; // 碳减排量, 单位:吨 double ccers {}; // 累计储能充电电量 double electStorageIn {}; // 累计储能放电电量 double electStorageOut {}; /////////////////////////////////////////////////////////////////////////////////////////////// /// === 日统计 === double storageIn {}; // 储能充电电量 double storageOut {}; // 储能放电电量 int storageNumIn {}; // 储能充电次数 int storageNumOut {}; // 储能放电次数 int storageNumErr {}; // 储能故障次数 double solarGen {}; // 光伏发电电量 double solarGrid {}; // 光伏入网电量 int solarNumErr {}; // 光伏故障次数 double chargeElect {}; // 充电设备充电电量 int chargeNum {}; // 充电设备充电次数 int chargeNumErr {}; // 充电设备故障次数 double incomeElect {}; // 发电收益金额 double incomeCharge {}; // 充电收益金额 /////////////////////////////////////////////////////////////////////////////////////////////// /// === 环境 === // 光照度 double illuminance {}; // 辐照度 double irradiance {}; // 风速 double windspeed {}; // 温度 double temperature {}; // 湿度 double humidity {}; /////////////////////////////////////////////////////////////////////////////////////////////// /// === 设备信息 === std::unordered_map> mapDevice; std::map mapDeviceGroupNum; };