Timer
end · seconds · start

Timer

class Timer
Syntax:

timer = new Timer("stmt")

Description:

Execute “stmt” at the end of each interval specified by timer.seconds(interval). The timer must be started and can be stopped. A Timer is used to implement the NEURON Main Menu ‣ Tools ‣ MovieRun in nrn/lib/hoc/movierun.hoc

Example:

load_file("nrngui.hoc")
objref timer
timer = new Timer("p()")
invl = .2
nstep = 10
proc p() {local x
    istep += 1
    tt = startsw() - t0
    print istep, tt
    if (istep >= nstep) {
            timer.end()
    }
    doNotify()
}
proc begin() {
    istep = 0
    timer.seconds(invl)
    t0 = startsw()
    tt = 0
    timer.start()
}

xpanel("Timer Demo")
    xbutton("Start", "begin()")
    xbutton("Stop", "timer.end()")
    xpvalue("Interval", &invl, 1)
    xpvalue("#steps", &nstep, 1)
    xpvalue("istep", &istep)
    xpvalue("t", &tt)
xpanel()
begin()

Timer.seconds()
Syntax:

interval = timer.seconds()

interval = timer.seconds(interval)

Description:

Specify the timer interval. Timer resolution is system dependent but is probably around 10 ms. The time it takes to execute the “stmt” is a part of the interval.


Timer.start()
Syntax:

timer.start()

Description:

Start the timer. “stmt” will be called at the end of each interval defined by the argument to timer.seconds(interval).


Timer.end()
Syntax:

timer.end()

Description:

Stop calling the “stmt”. At least on linux, this will prevent the calling of “stmt” at the end of the current interval.