]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.cpp
Improve accessory turn-off logic in arducontrol driver
[r2c2.git] / source / libr2c2 / arducontrol.cpp
index 8aced3be4ad9d15f137da9a93f38c1e4abf96284..3fc9f577e9cc5106d170f8a4ad586ea24fd8d2fe 100644 (file)
@@ -503,9 +503,11 @@ void ArduControl::tick()
 
        if(active_accessory && off_timeout)
        {
-               bool success = (monitor.get_peak()>0.35f && monitor.get_current()<monitor.get_peak()-0.2f);
+               bool got_peak = monitor.get_peak()>0.0f;
+               bool success = monitor.get_peak()>0.42f;
+               bool complete = (success && monitor.get_current()<monitor.get_peak()-0.2f);
                Time::TimeStamp t = Time::now();
-               if(t>off_timeout || success)
+               if((t>off_timeout && got_peak) || complete)
                {
                        Accessory &acc = *active_accessory;