Compare commits

...

2 Commits

Author SHA1 Message Date
j
d1e44539d5 end whats going on if hour changed 2021-11-23 12:40:05 +01:00
j
2a8f137034 faster hour 2021-11-23 12:36:23 +01:00

View File

@ -168,15 +168,18 @@ class Camera:
time.sleep(1) time.sleep(1)
print('presets loaded') print('presets loaded')
def hour_changed(self):
return self.hour is not None and time.gmtime().tm_hour != self.hour:
def sleep(self, seconds): def sleep(self, seconds):
n = float(seconds) n = float(seconds)
if self.abort: if self.abort or self.hour_changed():
return return
while n > 0: while n > 0:
step = min(n, 0.5) step = min(n, 0.5)
time.sleep(step) time.sleep(step)
n -= step n -= step
if self.abort: if self.abort or self.hour_changed():
return return
def sequence(self, steps=[], speed=12, goto_first=True, loop=False, hour_loop=False): def sequence(self, steps=[], speed=12, goto_first=True, loop=False, hour_loop=False):
@ -185,7 +188,11 @@ class Camera:
#self.goto_preset(steps[0], pan=100, tilt=100, zoom=100) #self.goto_preset(steps[0], pan=100, tilt=100, zoom=100)
first = steps[0] first = steps[0]
steps = steps[1:] steps = steps[1:]
hour = time.gmtime().tm_hour if hour_loop:
self.hour = time.gmtime().tm_hour
else:
self.hour = None
while True: while True:
if goto_first: if goto_first:
if isinstance(first, dict): if isinstance(first, dict):
@ -198,8 +205,8 @@ class Camera:
self.sequence_start = t0 = time.time() self.sequence_start = t0 = time.time()
for step in steps: for step in steps:
next_hour = time.gmtime().tm_hour next_hour = time.gmtime().tm_hour
if hour_loop and next_hour != hour: if hour_loop and next_hour != self.hour:
hour = next_hour self.hour = next_hour
break break
self.next_target = step self.next_target = step
segment_t0 = time.time() segment_t0 = time.time()
@ -243,7 +250,7 @@ class Camera:
last = self.status() last = self.status()
def goto_preset(self, id, pan, tilt, zoom=1, zoom_last=False): def goto_preset(self, id, pan, tilt, zoom=1, zoom_last=False):
if self.abort: if self.abort or self.hour_changed():
return return
presets = self.get_presets(True) presets = self.get_presets(True)
if isinstance(id, str): if isinstance(id, str):
@ -361,7 +368,7 @@ class Camera:
self.continuous(move) self.continuous(move)
if sum(map(abs, move.values())) and not self.abort: if sum(map(abs, move.values())) and not self.abort:
time.sleep(0.1) time.sleep(0.1)
if self.abort: if self.abort or self.hour_changed():
self.continuous(self.STOP) self.continuous(self.STOP)
return return
self.continuous(self.STOP) self.continuous(self.STOP)