[update] temp push

This commit is contained in:
peterlu14
2022-02-25 20:54:58 +08:00
parent 1dffa29658
commit 01d1bd989c
9 changed files with 102 additions and 39 deletions
+30 -4
View File
@@ -2,6 +2,7 @@ from json import loads as json_parse, dumps as _json_stringify
from typing import Dict, Optional, Any
from xml.dom.expatbuilder import parseString
import paho.mqtt.client as mqtt
from python.biopro.text import *
from .task import Task
_RUNTIME_COMPILE = False
@@ -16,18 +17,18 @@ class TaskManager():
self._need_to_check_task_list = []
for task in task_list:
print('task', task)
task = Task(task)
task = Task(task)
self._task_list.append(task)
print('self._task_list', self._task_list)
self.set_current_task(self._task_list[0])
self._current_task.run()
def remove(self, index):
pass
def get_task(self, task_id):
return self._task_list[task_id]
def get_check_task_list(self):
return self._need_to_check_task_list
@@ -47,3 +48,28 @@ class TaskManager():
for task_uuid in self._current_task.next:
task = next((task for task in self._task_list if task.uuid == task_uuid), None)
self._need_to_check_task_list.append(task)
def check_condition(self):
for task in self.get_check_task_list():
# [<match_condition>, ...]
match_condition_list = task.check_time_condition()
# [[<match_action>, ...], ...]
match_action_list = task.get_match_action_list(match_condition_list)
for action_list in match_action_list:
for action in action_list:
task.do_action(action)
while len(task.instruction_list) > 0:
instruction = task.instruction_list.pop(0)
if instruction.get('device', None) != None:
device = self._device_manager.get_device(self.device[instruction['device']]['connectDevice']['device_address'])
if device is None:
raise RuntimeError(DEVICE_NOT_FOUND, device)
print(instruction['header'], *instruction['arguments'].values())
getattr(device, instruction['header'])(*instruction['arguments'].values())