#-------------------------------------------------------------------------------
# Name:          Main Script Enzyme Vision
# Purpose:       Starts the automated experimental campaign with all dependencies
# Authors:       Leon H, Jonathan G, Eric N
#
# Last Version:  22.09.2022
# Copyright:     (c) Institute of Technical Biocatalysis TUHH
# Licence:       GNU GPL-v3 
#-------------------------------------------------------------------------------
from multiprocessing import Process, Queue
from Control_2022_05_24 import Controller
from InputManager_2022_05_24 import InputManager
from MailManager_2022_09_16 import MailManager
from PerformMeasurements_EnzymeVision_2022_08_10 import Measurements
import sys


if __name__ =='__main__':
    print(sys.version)
    inputManager = InputManager() # entnimmt Startwerte aus "UserInputs.xlsx" und von Pubchem
    mailManager = MailManager(inputManager.adminParameters.ReceiverAddress)
    CMQueue = Queue() # Queue Controller -> Measurements
    MCQueue = Queue() # Queue Measurements -> Controller
    Controll = Process(target = Controller,args=(CMQueue,MCQueue,inputManager)) # Regelung des Prozesses
    Controll.daemon = True
    MeasurementProcess = Process(target = Measurements, args = (CMQueue,MCQueue,inputManager)) # Auslesung und Auswertung der Messdaten
    MeasurementProcess.daemon = True
    Controll.start()
    MeasurementProcess.start()

    Controll.join()
    MeasurementProcess.join()

    mailManager.connectAndSend()