Skip to content
Snippets Groups Projects
main.py 2.15 KiB
Newer Older
import sys
esarrey's avatar
esarrey committed
from datetime import datetime
from pylablib.devices import Thorlabs
from pymeasure.experiment import unique_filename
from pymeasure.experiment import Results
from pymeasure.display.Qt import QtWidgets
import logging
esarrey's avatar
esarrey committed
from time import sleep
esarrey's avatar
esarrey committed
from PyQt5 import QtCore, QtWidgets
esarrey's avatar
esarrey committed
from pymeasure.log import console_log
from pymeasure.experiment import Results, Worker
from src.classes.ui import UIWindown
from src.classes.controltab import ControlTab
from src.procedures import B_Sweep, X_Sweep, Y_Sweep
esarrey's avatar
esarrey committed
log = logging.getLogger(__name__)
log.addHandler(logging.NullHandler())

class MainWindow(UIWindown):
    def __init__(self):
        super().__init__(
            procedure_class=[B_Sweep, X_Sweep, Y_Sweep],
            inputs=[
                ['acq_time', 'freq', 'b_min', 'b_max', 'b_step', 'x', 'y'],
                ['acq_time', 'freq', 'x_min', 'x_max', 'x_step', 'y', 'field'],
                ['acq_time', 'freq', 'y_min', 'y_max', 'y_step', 'x', 'field']
                ],
            displays=['acq_time', 'freq'],
esarrey's avatar
esarrey committed
            x_axis='X Position',
            y_axis='Voltage',
esarrey's avatar
esarrey committed
            widget_list=tuple([ControlTab("Manual control")]),
esarrey's avatar
esarrey committed
            directory_input=True
        )
        self.setWindowTitle('Mini MOKE')
esarrey's avatar
esarrey committed
        self.directory = 'data'
        try:
            for device in Thorlabs.list_kinesis_devices():
                log.info(f"Thorlab device connected: {device[1]} with serial number: {device[0]}")
        except:
            pass

    def queue(self, procedure=None):
esarrey's avatar
esarrey committed
        direc = self.directory + '/' + datetime.now().strftime('%Y-%m')
esarrey's avatar
esarrey committed
    data_filename = 'random.csv'
    log.info("Constructing the Results with a data file: %s" % data_filename)
    results = Results(procedure, data_filename)
        file = unique_filename(direc, procedure.name+"_")
esarrey's avatar
esarrey committed
        results = Results(procedure, file)
        experiment = self.new_experiment(results)

    # log.info("Constructing the Worker")
    # worker = Worker(results)
    # worker.start()
    # log.info("Started the Worker")
    # log.info("Joining with the worker in at most 10 hours")
    # worker.join(timeout=36000)
    # log.info("Finished the measurement")

    sys.exit(app.exec())