From e2a6496104b8d066a85fa2d28b71843f4567031c Mon Sep 17 00:00:00 2001
From: Armin Co <armin.co@hs-bochum.de>
Date: Thu, 8 Oct 2020 15:06:28 +0200
Subject: [PATCH] Add renewable power to states in opc.

---
 src/apps/smart_grid/SmartOpcServer.cpp | 4 ++--
 src/apps/smart_grid/SmartOpcServer.hpp | 2 +-
 src/smart_grid/SmartGridModel.cpp      | 2 +-
 src/smart_grid/SmartGridModel.hpp      | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/apps/smart_grid/SmartOpcServer.cpp b/src/apps/smart_grid/SmartOpcServer.cpp
index d66dc9d..35e9ac3 100644
--- a/src/apps/smart_grid/SmartOpcServer.cpp
+++ b/src/apps/smart_grid/SmartOpcServer.cpp
@@ -74,7 +74,7 @@ void SmartOpcServer::setup_server()
     m_power_production = m_state.AddVariable(m_idx, "power_production", Variant(m_state_machine.m_model.get_power_production().sum()));
     m_usage = m_state.AddVariable(m_idx, "used_power", Variant(m_state_machine.m_model.get_power_usage().sum()));
     m_excess_power = m_state.AddVariable(m_idx, "excess_power", Variant(m_state_machine.m_model.get_excess_power()));
-
+    m_renewable_power = m_state.AddVariable(m_idx, "renewable_power", Variant(m_state_machine.m_model.get_power_production().clean()));
 
     m_controls = smart_grid_folder.AddObject(m_idx, "controls");
     m_time = m_controls.AddVariable(m_idx, "time", Variant(m_state_machine.m_model.get_time()));
@@ -112,7 +112,7 @@ void SmartOpcServer::run_server()
         m_time.SetValue(Variant(m_state_machine.m_model.get_time()));
         m_producing.SetValue(Variant(m_state_machine.m_model.get_producing_state()));
         m_sim_mode_enabled.SetValue(Variant(m_state_machine.is_sim_mode_enabled()));
-
+        m_renewable_power.SetValue(m_state_machine.m_model.get_power_production().clean());
         std::this_thread::sleep_for(std::chrono::seconds(1));
     }
 }
\ No newline at end of file
diff --git a/src/apps/smart_grid/SmartOpcServer.hpp b/src/apps/smart_grid/SmartOpcServer.hpp
index 2d489e7..bebc3ef 100644
--- a/src/apps/smart_grid/SmartOpcServer.hpp
+++ b/src/apps/smart_grid/SmartOpcServer.hpp
@@ -36,7 +36,7 @@ private:
     OpcUa::Node m_power_production;
     OpcUa::Node m_usage;
     OpcUa::Node m_excess_power;
-
+    OpcUa::Node m_renewable_power;
 
     OpcUa::Node m_controls;
     OpcUa::Node m_time;
diff --git a/src/smart_grid/SmartGridModel.cpp b/src/smart_grid/SmartGridModel.cpp
index eaa20d1..77a36c7 100644
--- a/src/smart_grid/SmartGridModel.cpp
+++ b/src/smart_grid/SmartGridModel.cpp
@@ -44,7 +44,7 @@ void SmartGridModel::update_modell()
 
 void SmartGridModel::update_power_production()
 {
-     m_production.renewable.solar = m_sun * m_solar_size;
+    m_production.renewable.solar = m_sun * m_solar_size;
     m_production.renewable.wind = m_wind * m_windpark_size;
     if (m_usage.sum() > m_production.clean())
     {
diff --git a/src/smart_grid/SmartGridModel.hpp b/src/smart_grid/SmartGridModel.hpp
index cfa3179..11ed5a4 100644
--- a/src/smart_grid/SmartGridModel.hpp
+++ b/src/smart_grid/SmartGridModel.hpp
@@ -100,8 +100,8 @@ private:
 
     double calc_excess_power();
 
-    double m_solar_size{10}; ///< scale for solar power production
-    double m_windpark_size{1.0}; ///< scale the power production by wind 
+    double m_solar_size{30}; ///< scale for solar power production
+    double m_windpark_size{5.0}; ///< scale the power production by wind 
     double m_village_size{10}; ///< scale how much power is used by the village
 
     int m_time{0};
-- 
GitLab