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.

Previous topic

Obsolete Pointer Functions

Next topic

System Calls

This Page

Questions?