From f3f9f70eaa1b9ca9764a352069ad92bc230c4f4b Mon Sep 17 00:00:00 2001 From: Aedan Lawrence Date: Sun, 29 Mar 2026 15:20:41 +0200 Subject: [PATCH] fix: omit timewarp from /state when inactive, matching real device behaviour --- lib/SunRiser/Simulator.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/SunRiser/Simulator.pm b/lib/SunRiser/Simulator.pm index 2cf705a..a2d906f 100644 --- a/lib/SunRiser/Simulator.pm +++ b/lib/SunRiser/Simulator.pm @@ -185,7 +185,6 @@ sub state { tick => ( ( $time - $self->start_time ) * 1000 ), logsize => 0, errsize => 1000, - timewarp => 0, # PWM name is a number but must be treated like a string pwms => { map { $_."", ( int(rand(21)) * 50 ) } 1..$pwms }, sensors => { @@ -501,9 +500,17 @@ sub set_timewarp { if (!defined $env->{'psgix.session'}->{state}) { $env->{'psgix.session'}->{state} = $self->state; } - $env->{'psgix.session'}->{state}->{timewarp} = $value; + if ($value) { + $env->{'psgix.session'}->{state}->{timewarp} = $value; + } else { + delete $env->{'psgix.session'}->{state}->{timewarp}; + } } else { - $self->state->{timewarp} = $value; + if ($value) { + $self->state->{timewarp} = $value; + } else { + delete $self->state->{timewarp}; + } } }