I can't decide if this is expected behavior or not. Unfortunately this path-dependence makes orchestration clients like rxn_control harder to deal with.
The ramp_time is only accounted for at the time that a new destination is set.
# this will ramp to 100 deg C over one minute
def will_ramp():
furnace.set_ramp_time(1)
furnace.set_position(100)
# in contrast, this will not ramp
def wont_ramp():
furnace.set_position(100)
furnace.set_ramp_time(1)
I'm thinking I might have a window of 30 seconds for "set_recently". If within that window, setting ramp_time will imply that the controller should change to be ramping to that previous destination.