diff --git a/tcl/startup/flow_ctrl.tcl b/tcl/startup/flow_ctrl.tcl index a2dc8b0..e63be9c 100644 --- a/tcl/startup/flow_ctrl.tcl +++ b/tcl/startup/flow_ctrl.tcl @@ -30,7 +30,17 @@ proc flow::loop {difget flowget flowset path flowstd flowlim} { set flowtarget $setval } putIntoLimits flowtarget $flowstd $flowlim - hupdate $path/flowtarget $flowtarget + set suppress_auto [silent 0 sct suppress_auto] + if {$suppress_auto || $flowtarget > ($flowstd + $flowlim) * 0.5} { + sct suppress_auto 0 + hupdate $path/flowtarget $flowtarget + } else { + if {$flowtarget < $flowstd + 0.1} { + sct suppress_auto 1 + } else { + hupdate $path/flowtarget $flowtarget + } + } } proc flow::bufferPut {path name var value} {