'PsychoPy: make trials happen with keypress until routine ends at time x

I have a routine with multiple possible trials (in a loop), and the participant must press a key to go to the next trial. I want these trials to go on (with keypresses) until a certain time has passed of the routine, say 5 seconds, regardless of how many possible trials are left in my conditionsFile. At the 5-second mark, the routine should end. (If this is relevant: each trial is only displayed once.)

I've tried a few things, all of which only end up making the routine skip to the next trial after 5 seconds, but still going through all the possible trials, i.e. not ending the routine at 5 s. For example, I've tried adding:

    # ------Prepare to start Routine "Images"-------
    continueRoutine = True
    routineTimer.add(5)

and then

    # -------Run Routine "Images"-------
    while continueRoutine and routineTimer.getTime() > 0:

I've also tried adding this to the while sequence from above:

        if image.status == STARTED:
        # is it time to stop? (based on global clock, using actual start)
            if tThisFlipGlobal > image.tStartRefresh + 5.0-frameTolerance:
                # keep track of stop time/frame for later
                image.tStop = t  # not accounting for scr refresh
                image.frameNStop = frameN  # exact frame index
                win.timeOnFlip(image, 'tStopRefresh')  # time at next scr refresh
                image.setAutoDraw(False)

Can anyone help?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source