[update] add new api set_project & add new condition until_button_trigger & add new action idle

This commit is contained in:
Roy
2022-09-06 16:28:38 +08:00
parent df39f241b3
commit e134b9780c
8 changed files with 75 additions and 3 deletions
+13
View File
@@ -117,6 +117,10 @@ class Project(threading.Thread):
def mqtt_thread(self):
return self._mqtt_thread
@property
def running_task(self):
return self._task_manager.running_task
def run(self):
self._status = 1
self._start_time = time()
@@ -166,6 +170,9 @@ class Project(threading.Thread):
self.mqtt_thread.broadcast_command('project:task ' + str(self._task_manager.running_task.name) + ' stop at ' + datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])
self._task_manager.running_task.stop()
elif action.type == 'idle':
self._task_manager.running_task.stop()
device = self._complete_device[action.target]
task_info = task.get_task_info(action)
instruction_set = getattr(self._instruction_set, action.type, None)
@@ -183,6 +190,7 @@ class Project(threading.Thread):
if self._task_manager.running_task.cycle == -1:
self.mqtt_thread.broadcast_command('project:task ' + str(self._task_manager.running_task.name) + ' stop at ' + datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])
self._task_manager.running_task.stop()
# self._task_manager.set_running_task(task)
# check project done then close project
if self.check_project_done() == True:
@@ -217,6 +225,9 @@ class Project(threading.Thread):
return False
return True
def set_content(self, content):
self.running_task.button_trigger = True
def check_running_task_not_run(self):
# if no running task
if self._task_manager.running_task == None:
@@ -226,6 +237,8 @@ class Project(threading.Thread):
# print('action key', key, self._task_manager.running_task, self._task_manager.running_task.action[key])
if len(self._task_manager.running_task.parameter_set) == 0 and self._task_manager.running_task.action[key]['type'] == 'stop':
return False
if len(self._task_manager.running_task.parameter_set) == 0 and self._task_manager.running_task.action[key]['type'] == 'idle':
return False
for device in self._task_manager.running_task.device:
if self._complete_device[device].status == 1: