示例#1
0
 def engine_warmup():
     """Spawns a task to wait for the actual rpm signal to settle."""
     desired_rpm.value = 2500
     # Waits for up to 120 seconds for the actual RPM to be between 999999 and 2450 for 25 seconds.
     wait_until_settled(actual_rpm, 9999999, 2450, 25, 120)
     desired_rpm.value = 8000
     wait_until_settled(actual_rpm, 9999999, 7800, 25, 120)
     warmup_complete.value = True
def measure_set_point_response(setpoint, timeout, tolerance):
    """Sets the desired rpm to the specified setpoint and wait until the signal settles.

    The tolerance is used to create upper and lower boundaries for the signal.
    Returns the amount of time it takes the signal to settle or timeout.
    """
    actual_rpm = ChannelReference('Aliases/ActualRPM')
    desired_rpm = ChannelReference('Aliases/DesiredRPM')
    start_time = DoubleValue(0)
    settle_time = DoubleValue(0)

    desired_rpm.value = setpoint.value
    # Waits .5 seconds, so the gateway has time to update.
    localhost_wait(0.5)

    start_time.value = seqtime()
    wait_until_settled(actual_rpm, desired_rpm.value + tolerance.value,
                       desired_rpm.value - tolerance.value, DoubleValue(2.0),
                       timeout.value)
    settle_time.value = seqtime() - start_time.value
    return settle_time.value