Skip to content

Commit d6dcf84

Browse files
committed
Initial Position after Restart
This patch ensures that the calendar data is updated at least once before repositioning the camera. This ensures that active recordings are no longer interrupted by moving the camera to the neutral position on (re-)start. This fixes #63
1 parent 7aac488 commit d6dcf84

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

occameracontrol/agent.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class Agent:
6060
'''
6161
agent_id: str
6262
events: list[Event] = []
63+
calendar_initialized: bool = False
6364

6465
def __init__(self, agent_id: str):
6566
self.agent_id = agent_id
@@ -108,6 +109,7 @@ def update_calendar(self):
108109

109110
self.events = self.parse_calendar(calendar)
110111
register_calendar_update(self.agent_id)
112+
self.calendar_initialized = True
111113

112114
def active_events(self):
113115
'''Return a list of active events

occameracontrol/camera.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,14 @@ def update_position(self):
104104
necessary.
105105
'''
106106
agent_id = self.agent.agent_id
107+
level = logging.DEBUG if int(time.time()) % 60 else logging.INFO
108+
109+
while not self.agent.calendar_initialized:
110+
logger.log(level, '[%s] Calendar not yet initialized…', agent_id)
111+
time.sleep(1)
112+
107113
event = self.agent.next_event()
108114

109-
level = logging.DEBUG if int(time.time()) % 60 else logging.INFO
110115
if event.future():
111116
logger.log(level, '[%s] Next event `%s` starts in %i seconds',
112117
agent_id, event.title[:40], event.start - time.time())

0 commit comments

Comments
 (0)