Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
total_control_app
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Martin Drechsler
total_control_app
Commits
7861a4d6
Commit
7861a4d6
authored
May 30, 2019
by
Martin Drechsler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://code.df.uba.ar/martindrech/total_control_app
parents
90a247c3
1a56662a
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
60 additions
and
15 deletions
+60
-15
appsettings.py
appsettings.py
+13
-0
cameraGui.py
cameraGui.py
+22
-11
main.py
main.py
+6
-3
measurement.py
measurement.py
+3
-0
storage.py
resources/storage.py
+10
-0
cameraParameterFrame.py
subclasses/cameraParameterFrame.py
+6
-1
No files found.
appsettings.py
0 → 100644
View file @
7861a4d6
#!/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
}
cameraGui.py
View file @
7861a4d6
...
...
@@ -17,8 +17,10 @@ from zylaCameraWorker import CameraWorker
from
subclasses.controllayouts
import
LaserControlLayout
,
LaserScanLayout
from
subclasses.cameraParameterFrame
import
CameraParameterFrame
from
resources.scanFunctions
import
create_measurement_array
from
resources.storage
import
get_date_string
from
appsettings
import
WORKING_DIR
from
measurement
import
MeasurementFrame
import
sys
import
sys
,
os
import
numpy
as
np
import
logging
...
...
@@ -39,6 +41,7 @@ class CameraGuiMainWindow(QMainWindow):
self
.
frames_checker_timer
=
QtCore
.
QTimer
()
self
.
isMeasuring
=
False
self
.
initUI
()
self
.
current_image
=
np
.
array
([])
def
initUI
(
self
):
GUI_LOG
.
info
(
'Initializing gui'
)
...
...
@@ -140,7 +143,8 @@ class CameraGuiMainWindow(QMainWindow):
self
.
console
=
console
.
ConsoleWidget
(
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
)
...
...
@@ -155,7 +159,9 @@ class CameraGuiMainWindow(QMainWindow):
lambda
:
self
.
measurementFrame
.
saveMeasureButton
.
setEnabled
(
False
)
)
self
.
measurementFrame
.
abortMeasureButton
.
clicked
.
connect
(
backend
.
abort_measurement
)
self
.
cameraParamFrame
.
saveImgButton
.
clicked
.
connect
(
self
.
save_current_image
)
for
roi
in
self
.
rois
:
self
.
cameraParamFrame
.
saveRoiButton
.
clicked
.
connect
(
lambda
:
roi
.
save
(
current_binning
=
self
.
cameraParamFrame
.
paramTree
.
p
.
child
(
'Basic acq parameters'
)
...
...
@@ -167,6 +173,7 @@ class CameraGuiMainWindow(QMainWindow):
roi
.
sigRegionChanged
.
connect
(
self
.
cameraParamFrame
.
updateRoiSpinBoxes
)
def
camera_button_pressed
(
self
):
if
self
.
isCameraAcquiring
:
...
...
@@ -238,7 +245,7 @@ class CameraGuiMainWindow(QMainWindow):
"Dephasing in camera gui has occured: while frame index is
%
i, the acq index is
%
i"
%
(
self
.
frame_index
,
acq_index
)
)
self
.
current_image
=
image
self
.
img
.
setImage
(
image
,
autoDownsample
=
True
,
autoHistogramRange
=
False
,
autoLevels
=
False
,
autoRange
=
False
)
self
.
updatePlots
()
...
...
@@ -299,9 +306,6 @@ class CameraGuiMainWindow(QMainWindow):
plot
.
setLabel
(
'left'
,
'Y Axis'
,
'Counts'
)
def
__del__
(
self
):
print
(
"chau gui"
)
def
emit_measurement_parameters_and_start
(
self
):
measure_params
=
dict
()
measure_params
[
'signal_to_scan'
]
=
self
.
measurementFrame
.
selectScanSignal
.
currentText
()
...
...
@@ -317,12 +321,19 @@ class CameraGuiMainWindow(QMainWindow):
for
roi
in
self
.
rois
:
measure_params
[
'Roi Pos'
]
=
roi
.
pos
()
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"
)
###############################################################################
if
__name__
==
"__main__"
:
...
...
main.py
View file @
7861a4d6
from
PyQt5
import
QtGui
,
QtCore
from
drivers.andorzyla
import
AndorZyla
#from drivers.dummyAndor import AndorZyla
from
appsettings
import
CAMERA_TYPE
if
CAMERA_TYPE
[
'dummy'
]
==
True
:
from
drivers.dummyAndor
import
AndorZyla
else
:
from
drivers.andorzyla
import
AndorZyla
from
cameraGui
import
CameraGuiMainWindow
from
zylaCameraWorker
import
CameraWorker
...
...
@@ -9,6 +11,7 @@ from MCDAQcontrolsignals import anal_control_signal
from
MCDAQcontrolsignals
import
digital_control_signal
from
controlGui
import
ControlGui
from
PyQt5
import
QtGui
,
QtCore
import
logging
from
logging.handlers
import
SocketHandler
...
...
measurement.py
View file @
7861a4d6
...
...
@@ -14,6 +14,8 @@ from PyQt5.QtWidgets import QAction, QFileDialog, QInputDialog, QWidget
from
measurement_ui
import
Ui_Frame
from
MCDAQcontrolsignals
import
anal_control_signal
from
appsettings
import
WORKING_DIR
class
MeasurementFrame
(
QtWidgets
.
QFrame
,
Ui_Frame
):
...
...
@@ -44,6 +46,7 @@ class MeasurementFrame(QtWidgets.QFrame, Ui_Frame):
self
.
saveMeasureButton
.
setEnabled
(
False
)
self
.
folderBrowser
.
setText
(
WORKING_DIR
)
def
select_folder
(
self
):
directory
=
QFileDialog
.
getExistingDirectory
(
self
,
'Choose directory'
)
...
...
resources/storage.py
View file @
7861a4d6
...
...
@@ -17,6 +17,13 @@ import datetime
import
os
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 to handle data saving.
...
...
@@ -39,6 +46,9 @@ class Storage(object):
if
not
os
.
path
.
exists
(
saving_directory
):
os
.
makedirs
(
saving_directory
)
os
.
makedirs
(
saving_directory
+
'/dump'
)
if
not
os
.
path
.
exists
(
saving_directory
+
'/dump'
):
os
.
makedirs
(
saving_directory
+
'/dump'
)
s_num
=
self
.
get_saving_number
()
...
...
subclasses/cameraParameterFrame.py
View file @
7861a4d6
...
...
@@ -62,7 +62,12 @@ class CameraParameterFrame(QtWidgets.QFrame):
self
.
grid
.
addWidget
(
self
.
loadRoiButton
,
8
,
1
)
self
.
grid
.
addWidget
(
self
.
saveToRoiButton
,
9
,
1
)
#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
.
show
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment