diff --git a/src/smart_grid/SmartGridModell.cpp b/src/smart_grid/SmartGridModell.cpp index 89697a1159b29f095ddd2d07f9abdc2bdf73a9e4..0eae7bfd8f0c99f4552530a20e189ad126f68a68 100644 --- a/src/smart_grid/SmartGridModell.cpp +++ b/src/smart_grid/SmartGridModell.cpp @@ -58,14 +58,18 @@ void SmartGridModell::default_state_fancy() void SmartGridModell::update_windmill_speed(uint8_t speed) { - constexpr uint8_t min_motor_speed {35}; - if (speed >= min_motor_speed) + constexpr uint8_t min_motor_speed {40}; + if (speed == 0) { - set_output_pin(Pin::WindmillMotor, speed); + set_output_pin(Pin::WindmillMotor, 0); } - else if (speed == 0) + else if (speed > 180) { - set_output_pin(Pin::WindmillMotor, 0); + set_output_pin(Pin::WindmillMotor, 140); + } + else if (speed <= min_motor_speed) + { + set_output_pin(Pin::WindmillMotor, speed); } else { @@ -115,7 +119,7 @@ void SmartGridModell::set_output_pin(Pin pin, uint8_t value) bool succ = m_modell.send(static_cast<uint8_t>(pin), value); spdlog::debug("Send: {} {}, success: {}", pin, value, succ); using namespace std; - this_thread::sleep_for(chrono::milliseconds(12)); + this_thread::sleep_for(chrono::milliseconds(14)); } void SmartGridModell::set_house_color(House number, uint8_t red, uint8_t green) diff --git a/src/smg_server.cpp b/src/smg_server.cpp index 7d5af531b717924d34e5ad05299dc43e627ed257..f7dfec4f441f08499aa83ce783ccd91c1e22059a 100644 --- a/src/smg_server.cpp +++ b/src/smg_server.cpp @@ -65,7 +65,8 @@ void run_sim() sim_state = SimState::Do; break; case SimState::Do: - std::this_thread::sleep_for(std::chrono::milliseconds(50)); + // limit speed of simulation + std::this_thread::sleep_for(std::chrono::milliseconds(500)); if (sim_state_do(day) == true) { sim_state = SimState::Exit;