Commit 7861a4d6 authored by Martin Drechsler's avatar Martin Drechsler
parents 90a247c3 1a56662a
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: martindrech
File with some general settings:
WORKING_DIR: it is were the data will be stored.
CAMERA_TYPE: if dummy, then a dummy camera is loaded.
"""
WORKING_DIR = '/home/martindrech/Documents/total_control_app/resources/'
CAMERA_TYPE = {'dummy': True}
...@@ -17,8 +17,10 @@ from zylaCameraWorker import CameraWorker ...@@ -17,8 +17,10 @@ from zylaCameraWorker import CameraWorker
from subclasses.controllayouts import LaserControlLayout, LaserScanLayout from subclasses.controllayouts import LaserControlLayout, LaserScanLayout
from subclasses.cameraParameterFrame import CameraParameterFrame from subclasses.cameraParameterFrame import CameraParameterFrame
from resources.scanFunctions import create_measurement_array from resources.scanFunctions import create_measurement_array
from resources.storage import get_date_string
from appsettings import WORKING_DIR
from measurement import MeasurementFrame from measurement import MeasurementFrame
import sys import sys, os
import numpy as np import numpy as np
import logging import logging
...@@ -39,6 +41,7 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -39,6 +41,7 @@ class CameraGuiMainWindow(QMainWindow):
self.frames_checker_timer = QtCore.QTimer() self.frames_checker_timer = QtCore.QTimer()
self.isMeasuring = False self.isMeasuring = False
self.initUI() self.initUI()
self.current_image = np.array([])
def initUI(self): def initUI(self):
GUI_LOG.info('Initializing gui') GUI_LOG.info('Initializing gui')
...@@ -140,7 +143,8 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -140,7 +143,8 @@ class CameraGuiMainWindow(QMainWindow):
self.console = console.ConsoleWidget( self.console = console.ConsoleWidget(
namespace = {'np': np, 'cam': backend.cam, 'roi': self.rois[0], namespace = {'np': np, 'cam': backend.cam, 'roi': self.rois[0],
'storage': backend.storage, 'param_tree': self.cameraParamFrame.paramTree 'storage': backend.storage, 'param_tree': self.cameraParamFrame.paramTree,
'gui': self
} }
) )
self.dConsole.addWidget(self.console) self.dConsole.addWidget(self.console)
...@@ -156,6 +160,8 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -156,6 +160,8 @@ class CameraGuiMainWindow(QMainWindow):
) )
self.measurementFrame.abortMeasureButton.clicked.connect(backend.abort_measurement) self.measurementFrame.abortMeasureButton.clicked.connect(backend.abort_measurement)
self.cameraParamFrame.saveImgButton.clicked.connect(self.save_current_image)
for roi in self.rois: for roi in self.rois:
self.cameraParamFrame.saveRoiButton.clicked.connect(lambda: roi.save( self.cameraParamFrame.saveRoiButton.clicked.connect(lambda: roi.save(
current_binning=self.cameraParamFrame.paramTree.p.child('Basic acq parameters') current_binning=self.cameraParamFrame.paramTree.p.child('Basic acq parameters')
...@@ -167,6 +173,7 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -167,6 +173,7 @@ class CameraGuiMainWindow(QMainWindow):
roi.sigRegionChanged.connect(self.cameraParamFrame.updateRoiSpinBoxes) roi.sigRegionChanged.connect(self.cameraParamFrame.updateRoiSpinBoxes)
def camera_button_pressed(self): def camera_button_pressed(self):
if self.isCameraAcquiring: if self.isCameraAcquiring:
...@@ -238,7 +245,7 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -238,7 +245,7 @@ class CameraGuiMainWindow(QMainWindow):
"Dephasing in camera gui has occured: while frame index is %i, the acq index is %i" "Dephasing in camera gui has occured: while frame index is %i, the acq index is %i"
% (self.frame_index, acq_index) % (self.frame_index, acq_index)
) )
self.current_image = image
self.img.setImage(image, autoDownsample=True, autoHistogramRange=False, autoLevels=False, self.img.setImage(image, autoDownsample=True, autoHistogramRange=False, autoLevels=False,
autoRange=False) autoRange=False)
self.updatePlots() self.updatePlots()
...@@ -299,9 +306,6 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -299,9 +306,6 @@ class CameraGuiMainWindow(QMainWindow):
plot.setLabel('left', 'Y Axis', 'Counts') plot.setLabel('left', 'Y Axis', 'Counts')
def __del__(self):
print("chau gui")
def emit_measurement_parameters_and_start(self): def emit_measurement_parameters_and_start(self):
measure_params = dict() measure_params = dict()
measure_params['signal_to_scan'] = self.measurementFrame.selectScanSignal.currentText() measure_params['signal_to_scan'] = self.measurementFrame.selectScanSignal.currentText()
...@@ -317,12 +321,19 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -317,12 +321,19 @@ class CameraGuiMainWindow(QMainWindow):
for roi in self.rois: for roi in self.rois:
measure_params['Roi Pos'] = roi.pos() measure_params['Roi Pos'] = roi.pos()
measure_params['Roi Size'] = roi.size() measure_params['Roi Size'] = roi.size()
self.signalWithMeasurementParameters.emit(measure_params)
def save_current_image(self):
saving_directory = WORKING_DIR + get_date_string()
if not os.path.exists(saving_directory):
os.makedirs(saving_directory)
os.makedirs(saving_directory + '/images')
np.save(saving_directory+'/images/'+self.cameraParamFrame.imagePrefix.text(), self.current_image)
def __del__(self):
print("chau gui")
self.signalWithMeasurementParameters.emit(measure_params)
############################################################################### ###############################################################################
if __name__ == "__main__": if __name__ == "__main__":
......
from PyQt5 import QtGui, QtCore from appsettings import CAMERA_TYPE
from drivers.andorzyla import AndorZyla if CAMERA_TYPE['dummy']==True:
#from drivers.dummyAndor import AndorZyla from drivers.dummyAndor import AndorZyla
else:
from drivers.andorzyla import AndorZyla
from cameraGui import CameraGuiMainWindow from cameraGui import CameraGuiMainWindow
from zylaCameraWorker import CameraWorker from zylaCameraWorker import CameraWorker
...@@ -9,6 +11,7 @@ from MCDAQcontrolsignals import anal_control_signal ...@@ -9,6 +11,7 @@ from MCDAQcontrolsignals import anal_control_signal
from MCDAQcontrolsignals import digital_control_signal from MCDAQcontrolsignals import digital_control_signal
from controlGui import ControlGui from controlGui import ControlGui
from PyQt5 import QtGui, QtCore
import logging import logging
from logging.handlers import SocketHandler from logging.handlers import SocketHandler
......
...@@ -14,6 +14,8 @@ from PyQt5.QtWidgets import QAction, QFileDialog, QInputDialog, QWidget ...@@ -14,6 +14,8 @@ from PyQt5.QtWidgets import QAction, QFileDialog, QInputDialog, QWidget
from measurement_ui import Ui_Frame from measurement_ui import Ui_Frame
from MCDAQcontrolsignals import anal_control_signal from MCDAQcontrolsignals import anal_control_signal
from appsettings import WORKING_DIR
class MeasurementFrame(QtWidgets.QFrame, Ui_Frame): class MeasurementFrame(QtWidgets.QFrame, Ui_Frame):
...@@ -44,6 +46,7 @@ class MeasurementFrame(QtWidgets.QFrame, Ui_Frame): ...@@ -44,6 +46,7 @@ class MeasurementFrame(QtWidgets.QFrame, Ui_Frame):
self.saveMeasureButton.setEnabled(False) self.saveMeasureButton.setEnabled(False)
self.folderBrowser.setText(WORKING_DIR)
def select_folder(self): def select_folder(self):
directory = QFileDialog.getExistingDirectory(self, 'Choose directory') directory = QFileDialog.getExistingDirectory(self, 'Choose directory')
......
...@@ -17,6 +17,13 @@ import datetime ...@@ -17,6 +17,13 @@ import datetime
import os import os
import shutil import shutil
def get_date_string():
y = datetime.datetime.now().year
m = datetime.datetime.now().month
d = datetime.datetime.now().day
s = str(y) + str(m).zfill(2) + str(d).zfill(2)
return s
class Storage(object): class Storage(object):
""" """
Class to handle data saving. Class to handle data saving.
...@@ -39,6 +46,9 @@ class Storage(object): ...@@ -39,6 +46,9 @@ class Storage(object):
if not os.path.exists(saving_directory): if not os.path.exists(saving_directory):
os.makedirs(saving_directory) os.makedirs(saving_directory)
os.makedirs(saving_directory + '/dump') os.makedirs(saving_directory + '/dump')
if not os.path.exists(saving_directory+'/dump'):
os.makedirs(saving_directory + '/dump')
s_num = self.get_saving_number() s_num = self.get_saving_number()
......
...@@ -62,6 +62,11 @@ class CameraParameterFrame(QtWidgets.QFrame): ...@@ -62,6 +62,11 @@ class CameraParameterFrame(QtWidgets.QFrame):
self.grid.addWidget(self.loadRoiButton, 8, 1) self.grid.addWidget(self.loadRoiButton, 8, 1)
self.grid.addWidget(self.saveToRoiButton, 9, 1) self.grid.addWidget(self.saveToRoiButton, 9, 1)
#self.grid.addWidget(self.roiLayout, 7, 0, 1, 2) #self.grid.addWidget(self.roiLayout, 7, 0, 1, 2)
self.imagePrefix = QtWidgets.QLineEdit()
self.saveImgButton = QtWidgets.QPushButton('Save image')
self.grid.addWidget(self.imagePrefix, 10, 1)
self.grid.addWidget(self.saveImgButton, 10, 0)
self.make_connections() self.make_connections()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment