Files
energy_storage/src/app/Station.h

92 lines
2.6 KiB
C
Raw Normal View History

#pragma once
#include <memory>
#include <unordered_map>
2025-08-28 18:42:37 +08:00
#include "common/Fields.h"
class Device;
class Station
{
public:
2025-08-28 18:42:37 +08:00
Station();
void setFields(Fields& fields);
void addDevice(int deviceId, std::shared_ptr<Device> device);
std::shared_ptr<Device> getDevice(int deviceId);
2025-08-28 18:42:37 +08:00
void getDeviceByType(int typeId, std::vector<std::shared_ptr<Device>>& res);
int getDeviceNumByGroup(std::string name);
void getDeviceByGroup(std::string name, std::vector<std::shared_ptr<Device>>& res);
void setWorkMode(int modeId);
void setPolicy(int policyId);
2025-08-28 18:42:37 +08:00
public:
int id {};
std::string name;
bool isConnected {false};
2025-08-28 18:42:37 +08:00
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 {};
///////////////////////////////////////////////////////////////////////////////////////////////
/// === 设备信息 ===
2025-08-28 18:42:37 +08:00
std::unordered_map<int, std::shared_ptr<Device>> mapDevice;
std::map<std::string, int> mapDeviceGroupNum;
};