Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add battery-chiller-solar example.
[simgrid.git] / examples / cpp / battery-degradation / s4u-battery-degradation.cpp
index 1099c6d..13b149e 100644 (file)
@@ -14,24 +14,27 @@ static void manager()
 {
   auto battery = simgrid::plugins::Battery::init("Battery", 0.8, -200, 200, 0.9, 0.9, 10, 100);
 
-  battery->set_load("load", 100);
+  battery->set_load("load", 100.0);
 
-  auto handler1 = battery->schedule_handler(0.2, simgrid::plugins::Battery::DISCHARGE, true, [battery]() {
-    XBT_INFO("%f,%f,SoC", simgrid::s4u::Engine::get_clock(), battery->get_state_of_charge());
-    XBT_INFO("%f,%f,SoH", simgrid::s4u::Engine::get_clock(), battery->get_state_of_health());
-    battery->set_load("load", -100);
-  });
+  auto handler1 = battery->schedule_handler(
+      0.2, simgrid::plugins::Battery::DISCHARGE, simgrid::plugins::Battery::Handler::PERSISTANT, [battery]() {
+        XBT_INFO("%f,%f,SoC", simgrid::s4u::Engine::get_clock(), battery->get_state_of_charge());
+        XBT_INFO("%f,%f,SoH", simgrid::s4u::Engine::get_clock(), battery->get_state_of_health());
+        battery->set_load("load", -100.0);
+      });
 
   std::shared_ptr<simgrid::plugins::Battery::Handler> handler2;
-  handler2 = battery->schedule_handler(0.8, simgrid::plugins::Battery::CHARGE, true, [battery, handler1, handler2]() {
-    XBT_INFO("%f,%f,SoC", simgrid::s4u::Engine::get_clock(), battery->get_state_of_charge());
-    XBT_INFO("%f,%f,SoH", simgrid::s4u::Engine::get_clock(), battery->get_state_of_health());
-    if (battery->get_state_of_health() < 0.1) {
-      battery->delete_handler(handler1);
-      battery->delete_handler(handler2);
-    }
-    battery->set_load("load", 100);
-  });
+  handler2 = battery->schedule_handler(
+      0.8, simgrid::plugins::Battery::CHARGE, simgrid::plugins::Battery::Handler::PERSISTANT,
+      [battery, handler1, handler2]() {
+        XBT_INFO("%f,%f,SoC", simgrid::s4u::Engine::get_clock(), battery->get_state_of_charge());
+        XBT_INFO("%f,%f,SoH", simgrid::s4u::Engine::get_clock(), battery->get_state_of_health());
+        if (battery->get_state_of_health() < 0.1) {
+          battery->delete_handler(handler1);
+          battery->delete_handler(handler2);
+        }
+        battery->set_load("load", 100.0);
+      });
 }
 
 int main(int argc, char* argv[])