2025-08-20 19:00:22 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
#include <unordered_map>
|
2025-08-28 18:42:37 +08:00
|
|
|
|
#include "common/Fields.h"
|
2025-08-20 19:00:22 +08:00
|
|
|
|
|
|
|
|
|
|
class Device;
|
|
|
|
|
|
|
|
|
|
|
|
class Station
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2025-08-28 18:42:37 +08:00
|
|
|
|
Station();
|
|
|
|
|
|
|
|
|
|
|
|
void setFields(Fields& fields);
|
2025-08-20 19:00:22 +08:00
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
2025-08-26 18:36:25 +08:00
|
|
|
|
void setWorkMode(int modeId);
|
|
|
|
|
|
void setPolicy(int policyId);
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-28 18:42:37 +08:00
|
|
|
|
|
2025-08-20 19:00:22 +08:00
|
|
|
|
public:
|
|
|
|
|
|
int id {};
|
|
|
|
|
|
std::string name;
|
|
|
|
|
|
|
2025-08-28 18:42:37 +08:00
|
|
|
|
int workModeId {}; // 运行模式
|
|
|
|
|
|
int runPolicyId {}; // 运行策略
|
2025-08-26 18:36:25 +08:00
|
|
|
|
|
2025-08-20 19:00:22 +08:00
|
|
|
|
// 储能容量
|
|
|
|
|
|
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;
|
2025-08-20 19:00:22 +08:00
|
|
|
|
};
|