From 0ef66acd3328b75cabe3d7b922c64b7de8cb3041 Mon Sep 17 00:00:00 2001
From: Armin Co <armin.co@hs-bochum.de>
Date: Wed, 7 Oct 2020 07:45:13 +0200
Subject: [PATCH] Subscribe to all data changes

---
 src/apps/smart_grid/SmartOpcServer.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/apps/smart_grid/SmartOpcServer.cpp b/src/apps/smart_grid/SmartOpcServer.cpp
index 0933e39..b5d5f23 100644
--- a/src/apps/smart_grid/SmartOpcServer.cpp
+++ b/src/apps/smart_grid/SmartOpcServer.cpp
@@ -90,10 +90,20 @@ void SmartOpcServer::run_server()
     auto sub_production_enabled = m_server.CreateSubscription(100, subcl_production_enabled);
     sub_production_enabled->SubscribeDataChange(m_producing);
 
+    SubClientSimModeEnabled subcl_sim_mode_enabled{m_state_machine};
+    auto sub_sim_mode_enabled = m_server.CreateSubscription(100, subcl_sim_mode_enabled);
+    sub_sim_mode_enabled->SubscribeDataChange(m_sim_mode_enabled);
 
     while(true)
     {
         m_state_machine.run();
+
+        // update opc objects
+        m_time.SetValue(Variant(m_state_machine.m_model.get_time()));
+        m_excess_power.SetValue(Variant(m_state_machine.m_model.get_excess_power()));
+        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()));
+
         std::this_thread::sleep_for(std::chrono::seconds(1));
     }
 }
\ No newline at end of file
-- 
GitLab