X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Farducontrol.cpp;fp=source%2Flibr2c2%2Farducontrol.cpp;h=6d75c7542dd0490fb3cde74b8b2e771560636eb1;hb=85dba3e775b10d1a653175318e79881e416db19a;hp=8e28ea66c9ce275142c0dbb9f59f42001e0acfd5;hpb=83d2cda02939e450f858456915210625d634946d;p=r2c2.git diff --git a/source/libr2c2/arducontrol.cpp b/source/libr2c2/arducontrol.cpp index 8e28ea6..6d75c75 100644 --- a/source/libr2c2/arducontrol.cpp +++ b/source/libr2c2/arducontrol.cpp @@ -459,8 +459,9 @@ void ArduControl::tick() if(active_accessory && off_timeout) { + bool success = (monitor.get_peak()>0.35f && monitor.get_current()off_timeout) + if(t>off_timeout || success) { Accessory &acc = *active_accessory; @@ -469,7 +470,7 @@ void ArduControl::tick() // Assume success if we were uncertain of the physical setting if(acc.uncertain&bit) acc.uncertain &= ~bit; - else if(acc.kind==Accessory::TURNOUT && monitor.get_peak()<0.5f) + else if(acc.kind==Accessory::TURNOUT && !success) { if(debug>=1) IO::print("Peak current only %.2f A\n", monitor.get_peak()); @@ -597,7 +598,7 @@ ArduControl::Accessory::Accessory(Kind k, unsigned a, unsigned b, unsigned s): state(0), uncertain((1<