File: timer.rst

package info (click to toggle)
neuron 8.2.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,760 kB
  • sloc: cpp: 149,571; python: 58,465; ansic: 50,329; sh: 3,510; xml: 213; pascal: 51; makefile: 35; sed: 5
file content (99 lines) | stat: -rwxr-xr-x 1,867 bytes parent folder | download | duplicates (3)
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.