@@ -55,13 +55,14 @@ def register(blynk, *args, **kwargs):
55
55
# kwargs with defaults are used cause PEP 3102 no supported by Python2
56
56
interval = kwargs .pop ('interval' , DEFAULT_INTERVAL )
57
57
run_once = kwargs .pop ('run_once' , False )
58
+ stopped = kwargs .pop ('stopped' , False )
58
59
59
60
class Deco (object ):
60
61
def __init__ (self , func ):
61
62
self .func = func
62
63
if len (list (Timer .timers .keys ())) >= MAX_TIMERS :
63
64
raise TimerError ('Max allowed timers num={}' .format (MAX_TIMERS ))
64
- _timer = _Timer (interval , func , run_once , * args , ** kwargs )
65
+ _timer = _Timer (interval , func , run_once , stopped , * args , ** kwargs )
65
66
Timer .timers ['{}_{}' .format (len (list (Timer .timers .keys ())), blynk ._get_func_name (func ))] = _timer
66
67
67
68
def __call__ (self , * f_args , ** f_kwargs ):
@@ -76,6 +77,13 @@ def stop(t_id):
76
77
raise TimerError ('Timer id={} not found' .format (t_id ))
77
78
Timer .timers [t_id ].stopped = True
78
79
80
+ @staticmethod
81
+ def start (t_id ):
82
+ timer = Timer .timers .get (t_id , None )
83
+ if timer is None :
84
+ raise TimerError ('Timer id={} not found' .format (t_id ))
85
+ Timer .timers [t_id ].stopped = False
86
+
79
87
@staticmethod
80
88
def is_stopped (t_id ):
81
89
timer = Timer .timers .get (t_id , None )
@@ -96,15 +104,15 @@ def run(self):
96
104
97
105
98
106
class _Timer (object ):
99
- def __init__ (self , interval , deco , run_once , * args , ** kwargs ):
107
+ def __init__ (self , interval , deco , run_once , stopped , * args , ** kwargs ):
100
108
self .interval = interval
101
109
self .deco = deco
102
110
self .args = args
103
111
self .run_once = run_once
104
112
self .kwargs = kwargs
105
113
self .fire_time = None
106
114
self .fire_time_prev = None
107
- self .stopped = False
115
+ self .stopped = stopped
108
116
109
117
def run (self ):
110
118
timer_real_interval = 0
0 commit comments