1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
.. _timer:
Timer
-----
.. class:: Timer
Syntax:
``timer = h.Timer(python_func)``
Description:
Execute a Python function 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 :menuselection:`NEURON Main Menu --> Tools --> MovieRun` in
:file:`nrn/lib/hoc/movierun.hoc`
.. warning::
This code must be run with `nrniv -python` and not directly via `python`.
The better solution is to `use Python's threading module <https://docs.python.org/3/library/threading.html>`_
which works regardless of how NEURON is launched.
Example:
.. code-block::
python
from neuron import h
def foo():
print('Hello')
timer = h.Timer(foo)
timer.seconds(1)
timer.start()
# type timer.end() to end timer
----
.. method:: 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 Python function is part of the interval.
----
.. method:: Timer.start
Syntax:
``timer.start()``
Description:
Start the timer. The Python function will be called at the end of each interval defined
by the argument to timer.seconds(interval).
----
.. method:: Timer.end
Syntax:
``timer.end()``
Description:
Stop calling the Python function. At least on Linux, this will prevent the calling
of the function at the end of the current interval.
|