34 lines
989 B
Python
34 lines
989 B
Python
from io import StringIO
|
|
from json import loads as json_parse, dumps as _json_stringify
|
|
from typing import Dict, Optional, Any
|
|
import paho.mqtt.client as mqtt
|
|
from .project import Project
|
|
from biopro.device.manager import DeviceManager
|
|
|
|
def json_stringify(o: Any) -> str:
|
|
return _json_stringify(o, separators=(',', ':'))
|
|
|
|
class ProjectManager():
|
|
def __init__(self, device_manager: DeviceManager, mqtt_thread=None) :
|
|
self._project_list = []
|
|
self._mqtt_thread = mqtt_thread
|
|
self._device_manager = device_manager
|
|
|
|
def create(self, project):
|
|
new_project = Project(project, self._device_manager, self._mqtt_thread)
|
|
self._project_list.append(new_project)
|
|
return new_project
|
|
|
|
def remove(self, index):
|
|
self._project_list[index].stop()
|
|
del self._project_list[index]
|
|
|
|
def get(self):
|
|
return self._project_list
|
|
|
|
def run(self, project):
|
|
project.start()
|
|
|
|
def stop(self, project):
|
|
project.stop()
|