Relevante Dateien und Umgebung gesammelt
This commit is contained in:
commit
f98949b798
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
build/
|
||||||
|
dist/
|
||||||
|
__pycache__/
|
||||||
|
|
||||||
14
jfs_info.txt
Normal file
14
jfs_info.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Juni 2022
|
||||||
|
This creates an Environment for the Software based on
|
||||||
|
poseidon https://github.com/pachterlab/poseidon
|
||||||
|
PyQtGraph https://www.pyqtgraph.org/
|
||||||
|
|
||||||
|
conda create --name piPyGra
|
||||||
|
conda activate piPyGra
|
||||||
|
conda install -c conda-forge pyqtgraph
|
||||||
|
conda install pyserial
|
||||||
|
pip install pyinstaller pyqt5
|
||||||
|
pip install PyQtWebEngine
|
||||||
|
|
||||||
|
...
|
||||||
|
conda deactivate
|
||||||
307
jfs_main01.py
Normal file
307
jfs_main01.py
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
|
||||||
|
from poseidon_main import MainWindow, Thread
|
||||||
|
import sys, time
|
||||||
|
import serial
|
||||||
|
from PyQt5 import QtCore, QtWidgets
|
||||||
|
import pyqtgraph as pg
|
||||||
|
|
||||||
|
|
||||||
|
class MainWindow2( MainWindow):
|
||||||
|
|
||||||
|
leftsignal = QtCore.pyqtSignal(float)
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(MainWindow2,self).__init__()
|
||||||
|
self.setWindowTitle('Pyshi´ne drag and drop')
|
||||||
|
#print(self.globports)
|
||||||
|
#print(self.microstepping)
|
||||||
|
self.threadx = {}
|
||||||
|
## grapfic output
|
||||||
|
self.timeBase=50
|
||||||
|
self.x = []
|
||||||
|
self.y = []
|
||||||
|
self.grafwg = pg.PlotWidget()
|
||||||
|
self.ui.gridLayout_2.addWidget(self.grafwg, 0, 1, 1, 1)
|
||||||
|
self.data_line = self.grafwg.plot(self.x,self.y,pen=(0,255,0))
|
||||||
|
## limit to stop the flow
|
||||||
|
self.wait2Stopflow = False
|
||||||
|
self.stopFlowLimit = 0
|
||||||
|
## serail things
|
||||||
|
if self.globports == []:
|
||||||
|
self.populate_ports()
|
||||||
|
self.ui.rheo_port_comboBox.addItems(self.globports)
|
||||||
|
self.ui.comboBox.addItems(self.globports)
|
||||||
|
#self.ui.rheo_port_comboBox.currentIndexChanged['QString'].connect(self.setRheoPort)
|
||||||
|
self.ui.openRheo_btn.clicked.connect(self.connectESP32)
|
||||||
|
self.ui.closeRheo_btn.clicked.connect(self.disconnectESP32)
|
||||||
|
self.ui.clearDisplay.clicked.connect(self.clearPlot)
|
||||||
|
self.ui.start_btn.clicked.connect(self.startesp32)
|
||||||
|
self.ui.stop_btn.clicked.connect(self.stopesp32)
|
||||||
|
self.ui.comboBox_tb.setCurrentText(str(self.timeBase))
|
||||||
|
self.ui.comboBox_tb.currentIndexChanged['QString'].connect(self.setTimeBase)
|
||||||
|
self.ui.checkBox.stateChanged.connect(self.clickedBox)
|
||||||
|
self.ui.lineEdit.returnPressed.connect(self.setFrequency)
|
||||||
|
self.ui.checkBox_2.stateChanged.connect(self.flowBox)
|
||||||
|
|
||||||
|
self.ui.pushButton.clicked.connect(self.connectRheo)
|
||||||
|
self.ui.pushButton_2.clicked.connect(self.disconnectRheo)
|
||||||
|
self.ui.checkBox_3.stateChanged.connect(self.clickedBox3)
|
||||||
|
self.ui.pushButton_3.clicked.connect(self.sendRheoHome)
|
||||||
|
self.ui.pushButton_4.clicked.connect(self.sendRheoInject)
|
||||||
|
self.leftsignal.connect(self.setwhatsleft)
|
||||||
|
|
||||||
|
### ESP32
|
||||||
|
def setFrequency(self):
|
||||||
|
s = self.ui.lineEdit.text()
|
||||||
|
cmd='o'+str(s)+'\n'
|
||||||
|
thread = Thread(self.sendToEsp32, cmd)
|
||||||
|
thread.finished.connect(lambda:self.thread_finished(thread))
|
||||||
|
thread.start()
|
||||||
|
|
||||||
|
def sendToEsp32(self, sendStr):
|
||||||
|
self.esp32_serial.write(sendStr.encode('utf-8'))
|
||||||
|
self.esp32_serial.flushInput()
|
||||||
|
|
||||||
|
def clickedBox(self,state):
|
||||||
|
if state == QtCore.Qt.Checked:
|
||||||
|
print('checkes')
|
||||||
|
self.threadx[2] =ThC_2(parent=None,port = self.esp32_serial)
|
||||||
|
self.threadx[2].start()
|
||||||
|
else:
|
||||||
|
print('no')
|
||||||
|
self.threadx[2].stop()
|
||||||
|
|
||||||
|
def flowBox(self,state):
|
||||||
|
if state == QtCore.Qt.Checked:
|
||||||
|
print('checkes')
|
||||||
|
self.wait2Stopflow=True
|
||||||
|
self.stopFlowLimit = float(self.ui.lineEdit_2.text())
|
||||||
|
else:
|
||||||
|
print('no')
|
||||||
|
self.wait2Stopflow=False
|
||||||
|
|
||||||
|
|
||||||
|
def startesp32(self):
|
||||||
|
self.threadx[1] = ThC(parent=None,index=1,port = self.esp32_serial,base=self.timeBase)
|
||||||
|
self.threadx[1].start()
|
||||||
|
self.threadx[1].datasignal.connect(self.updateData)
|
||||||
|
self.ui.start_btn.setEnabled(False)
|
||||||
|
self.ui.stop_btn.setEnabled(True)
|
||||||
|
|
||||||
|
def stopesp32(self):
|
||||||
|
self.threadx[1].stop()
|
||||||
|
self.ui.start_btn.setEnabled(True)
|
||||||
|
self.ui.stop_btn.setEnabled(False)
|
||||||
|
|
||||||
|
def setTimeBase(self):
|
||||||
|
self.timeBase=int(self.ui.comboBox_tb.currentText())
|
||||||
|
|
||||||
|
def connectRheo(self):
|
||||||
|
self.rheo_port = self.ui.comboBox.currentText()
|
||||||
|
self.statusBar().showMessage("You clicked CONNECT TO Rheo Ventil")
|
||||||
|
try:
|
||||||
|
port_declared = self.port in vars()
|
||||||
|
try:
|
||||||
|
print(self.rheo_port)
|
||||||
|
self.rheo_serial = serial.Serial()
|
||||||
|
self.rheo_serial.port = self.rheo_port
|
||||||
|
self.rheo_serial.baudrate = 115200
|
||||||
|
self.rheo_serial.parity = serial.PARITY_NONE
|
||||||
|
self.rheo_serial.stopbits = serial.STOPBITS_ONE
|
||||||
|
self.rheo_serial.bytesize = serial.EIGHTBITS
|
||||||
|
self.rheo_serial.timeout = 1
|
||||||
|
self.rheo_serial.open()
|
||||||
|
# self.ui.closeRheo_btn.setEnabled(True)
|
||||||
|
# self.ui.openRheo_btn.setEnabled(False)
|
||||||
|
# self.ui.start_btn.setEnabled(True)
|
||||||
|
# self.ui.stop_btn.setEnabled(False)
|
||||||
|
|
||||||
|
# self.ui.connect_BTN.setEnabled(False)
|
||||||
|
time.sleep(1)
|
||||||
|
self.statusBar().showMessage("Successfully connected to Rheo board.")
|
||||||
|
|
||||||
|
except:
|
||||||
|
self.statusBar().showMessage("Cannot connect to board. Try again..")
|
||||||
|
#raise CannotConnectException
|
||||||
|
except AttributeError:
|
||||||
|
self.statusBar().showMessage("Please plug in the board and select a proper port, then press connect.")
|
||||||
|
|
||||||
|
def disconnectRheo(self):
|
||||||
|
self.statusBar().showMessage("You clicked DISCONNECT FROM Rheo")
|
||||||
|
print("Disconnecting from board..")
|
||||||
|
time.sleep(0.1)
|
||||||
|
self.rheo_serial.close()
|
||||||
|
print("Board has been disconnected")
|
||||||
|
|
||||||
|
def clickedBox3(self,state):
|
||||||
|
if state == QtCore.Qt.Checked:
|
||||||
|
print('checkes')
|
||||||
|
self.sendRheoLoad()
|
||||||
|
else:
|
||||||
|
print('no')
|
||||||
|
self.sendRheoVentil()
|
||||||
|
|
||||||
|
def sendRheoInject(self):
|
||||||
|
xx = int(self.ui.lineEdit_3.text())
|
||||||
|
if (xx > 7) or (xx<0):
|
||||||
|
cmd=str(xx)+'\r\n'
|
||||||
|
self.sendToRheo(cmd)
|
||||||
|
|
||||||
|
def sendRheoHome(self):
|
||||||
|
cmd=str(3)+'\r\n'
|
||||||
|
self.sendToRheo(cmd)
|
||||||
|
|
||||||
|
def sendRheoLoad(self):
|
||||||
|
cmd=str(1)+'\r\n'
|
||||||
|
self.sendToRheo(cmd)
|
||||||
|
|
||||||
|
def sendRheoVentil(self):
|
||||||
|
cmd=str(2)+'\r\n'
|
||||||
|
self.sendToRheo(cmd)
|
||||||
|
|
||||||
|
def sendToRheo(self,cmd):
|
||||||
|
thread = Thread(self.sendRheo, cmd)
|
||||||
|
thread.finished.connect(lambda:self.thread_finished(thread))
|
||||||
|
thread.start()
|
||||||
|
|
||||||
|
def setwhatsleft(self,xx):
|
||||||
|
print (f'that left {xx} ')
|
||||||
|
|
||||||
|
def sendRheo(self, sendStr):
|
||||||
|
self.rheo_serial.flushInput()
|
||||||
|
self.rheo_serial.write(sendStr.encode('utf-8'))
|
||||||
|
cmd=str(5)+'\r\n'
|
||||||
|
self.rheo_serial.write(sendStr.encode('utf-8'))
|
||||||
|
inp = self.rheo_serial.readline().decode('utf')
|
||||||
|
self.leftsignal.emit(float(inp))
|
||||||
|
|
||||||
|
|
||||||
|
def connectESP32(self):
|
||||||
|
self.esp32_port = self.ui.rheo_port_comboBox.currentText()
|
||||||
|
self.statusBar().showMessage("You clicked CONNECT TO Esp32")
|
||||||
|
try:
|
||||||
|
port_declared = self.port in vars()
|
||||||
|
try:
|
||||||
|
print(self.esp32_port)
|
||||||
|
self.esp32_serial = serial.Serial()
|
||||||
|
self.esp32_serial.port = self.esp32_port
|
||||||
|
self.esp32_serial.baudrate = 115200
|
||||||
|
self.esp32_serial.parity = serial.PARITY_NONE
|
||||||
|
self.esp32_serial.stopbits = serial.STOPBITS_ONE
|
||||||
|
self.esp32_serial.bytesize = serial.EIGHTBITS
|
||||||
|
self.esp32_serial.timeout = 1
|
||||||
|
self.esp32_serial.open()
|
||||||
|
self.ui.closeRheo_btn.setEnabled(True)
|
||||||
|
self.ui.openRheo_btn.setEnabled(False)
|
||||||
|
self.ui.start_btn.setEnabled(True)
|
||||||
|
self.ui.stop_btn.setEnabled(False)
|
||||||
|
|
||||||
|
# self.ui.connect_BTN.setEnabled(False)
|
||||||
|
time.sleep(1)
|
||||||
|
self.statusBar().showMessage("Successfully connected to esp32 board.")
|
||||||
|
|
||||||
|
except:
|
||||||
|
self.statusBar().showMessage("Cannot connect to board. Try again..")
|
||||||
|
#raise CannotConnectException
|
||||||
|
except AttributeError:
|
||||||
|
self.statusBar().showMessage("Please plug in the board and select a proper port, then press connect.")
|
||||||
|
|
||||||
|
|
||||||
|
def disconnectESP32(self):
|
||||||
|
self.statusBar().showMessage("You clicked DISCONNECT FROM ESP32")
|
||||||
|
print("Disconnecting from board..")
|
||||||
|
time.sleep(0.1)
|
||||||
|
self.esp32_serial.close()
|
||||||
|
print("Board has been disconnected")
|
||||||
|
|
||||||
|
self.ui.openRheo_btn.setEnabled(True)
|
||||||
|
self.ui.closeRheo_btn.setEnabled(False)
|
||||||
|
self.ui.start_btn.setEnabled(False)
|
||||||
|
self.ui.stop_btn.setEnabled(False)
|
||||||
|
|
||||||
|
def checkForStopFlow(self):
|
||||||
|
if self.checkForStopFlow :
|
||||||
|
if self.y[-1] > self.stopFlowLimit :
|
||||||
|
self.ui.pause_BTN.clicked.emit()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def updateData(self,x,y):
|
||||||
|
self.x.append(x)
|
||||||
|
self.y.append(y)
|
||||||
|
self.data_line.setData(self.x,self.y)
|
||||||
|
if self.wait2Stopflow == True:
|
||||||
|
if (self.y[-1] >= self.stopFlowLimit):
|
||||||
|
self.ui.pause_BTN.clicked.emit()
|
||||||
|
self.wait2Stopflow = False
|
||||||
|
self.ui.checkBox_2.setChecked(False)
|
||||||
|
|
||||||
|
|
||||||
|
def clearPlot(self):
|
||||||
|
self.x.clear()
|
||||||
|
self.y.clear()
|
||||||
|
self.data_line.setData(self.x,self.y)
|
||||||
|
|
||||||
|
|
||||||
|
def sendToEsp32(self, sendStr):
|
||||||
|
self.esp32_serial.write(sendStr.encode())
|
||||||
|
self.esp32_serial.flushInput()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ThC(QtCore.QThread):
|
||||||
|
datasignal = QtCore.pyqtSignal(int,float)
|
||||||
|
def __init__(self,parent=None,port=None,index=0,base=100):
|
||||||
|
super(ThC, self).__init__(parent)
|
||||||
|
self.index = index
|
||||||
|
self.is_running = True
|
||||||
|
self.port = port
|
||||||
|
self.base = base
|
||||||
|
def run(self):
|
||||||
|
print(f"Thread {self.index} started")
|
||||||
|
self.port.flushOutput()
|
||||||
|
self.port.flushInput()
|
||||||
|
i = self.base*1000
|
||||||
|
cmd = 's'+str(i)+'\n'
|
||||||
|
self.port.write(cmd.encode('utf-8'))
|
||||||
|
cnt = 0;
|
||||||
|
while True:
|
||||||
|
cnt+=1
|
||||||
|
inp = self.port.readline()
|
||||||
|
if inp[0] == 62 and inp[-3] == 60 :
|
||||||
|
inp = inp[1:-3]
|
||||||
|
y = float(inp.decode('utf-8'))
|
||||||
|
self.datasignal.emit(cnt,y)
|
||||||
|
|
||||||
|
time.sleep(0.001)
|
||||||
|
def stop(self):
|
||||||
|
self.is_running=False
|
||||||
|
print(f"Thread {self.index} stopped")
|
||||||
|
self.terminate()
|
||||||
|
|
||||||
|
class ThC_2(QtCore.QThread):
|
||||||
|
def __init__(self,parent=None,port=None):
|
||||||
|
super(ThC_2,self).__init__(parent)
|
||||||
|
self.is_running = True
|
||||||
|
self.port=port
|
||||||
|
def run(self):
|
||||||
|
cnt=0
|
||||||
|
while True:
|
||||||
|
cnt+= 1
|
||||||
|
if cnt >= 100 : cnt = 1
|
||||||
|
cmd = 'o'+str(cnt*10000)+'\n'
|
||||||
|
print(cmd)
|
||||||
|
self.port.write(cmd.encode('utf-8'))
|
||||||
|
time.sleep(1)
|
||||||
|
def stop(self):
|
||||||
|
self.is_running=False
|
||||||
|
print(f'Thread ThC-2 stopped')
|
||||||
|
self.terminate()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
window = MainWindow2()
|
||||||
|
window.show()
|
||||||
|
sys.exit(app.exec_())
|
||||||
963
poseidon_controller_gui2.py
Normal file
963
poseidon_controller_gui2.py
Normal file
@ -0,0 +1,963 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Form implementation generated from reading ui file 'poseidon_controller_gui2.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
|
#
|
||||||
|
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||||
|
# run again. Do not edit this file unless you know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_MainWindow(object):
|
||||||
|
def setupUi(self, MainWindow):
|
||||||
|
MainWindow.setObjectName("MainWindow")
|
||||||
|
MainWindow.resize(1071, 869)
|
||||||
|
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||||
|
self.centralwidget.setObjectName("centralwidget")
|
||||||
|
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
|
||||||
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
|
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
|
||||||
|
self.tabWidget.setFocusPolicy(QtCore.Qt.TabFocus)
|
||||||
|
self.tabWidget.setAcceptDrops(False)
|
||||||
|
self.tabWidget.setTabPosition(QtWidgets.QTabWidget.North)
|
||||||
|
self.tabWidget.setTabShape(QtWidgets.QTabWidget.Triangular)
|
||||||
|
self.tabWidget.setIconSize(QtCore.QSize(16, 16))
|
||||||
|
self.tabWidget.setMovable(False)
|
||||||
|
self.tabWidget.setObjectName("tabWidget")
|
||||||
|
self.control = QtWidgets.QWidget()
|
||||||
|
self.control.setObjectName("control")
|
||||||
|
self.horizontalLayout_10 = QtWidgets.QHBoxLayout(self.control)
|
||||||
|
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
|
||||||
|
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||||
|
self.verticalLayout_9 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_9.setObjectName("verticalLayout_9")
|
||||||
|
self.gridLayout_6 = QtWidgets.QGridLayout()
|
||||||
|
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||||
|
self.line_4 = QtWidgets.QFrame(self.control)
|
||||||
|
self.line_4.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_4.setLineWidth(3)
|
||||||
|
self.line_4.setFrameShape(QtWidgets.QFrame.VLine)
|
||||||
|
self.line_4.setObjectName("line_4")
|
||||||
|
self.gridLayout_6.addWidget(self.line_4, 0, 2, 1, 1)
|
||||||
|
self.label = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label.setFont(font)
|
||||||
|
self.label.setText("")
|
||||||
|
self.label.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label.setObjectName("label")
|
||||||
|
self.gridLayout_6.addWidget(self.label, 0, 0, 1, 1)
|
||||||
|
self.p2_incremental_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p2_incremental_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p2_incremental_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p2_incremental_DISP.setDigitCount(5)
|
||||||
|
self.p2_incremental_DISP.setObjectName("p2_incremental_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p2_incremental_DISP, 2, 3, 1, 1)
|
||||||
|
self.p3_remain_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p3_remain_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p3_remain_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p3_remain_DISP.setDigitCount(5)
|
||||||
|
self.p3_remain_DISP.setObjectName("p3_remain_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p3_remain_DISP, 3, 4, 1, 1)
|
||||||
|
self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
|
||||||
|
self.p2_activate_CHECKBOX = QtWidgets.QCheckBox(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.p2_activate_CHECKBOX.sizePolicy().hasHeightForWidth())
|
||||||
|
self.p2_activate_CHECKBOX.setSizePolicy(sizePolicy)
|
||||||
|
self.p2_activate_CHECKBOX.setText("")
|
||||||
|
self.p2_activate_CHECKBOX.setObjectName("p2_activate_CHECKBOX")
|
||||||
|
self.horizontalLayout_12.addWidget(self.p2_activate_CHECKBOX)
|
||||||
|
self.label_6 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_6.setFont(font)
|
||||||
|
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_6.setObjectName("label_6")
|
||||||
|
self.horizontalLayout_12.addWidget(self.label_6)
|
||||||
|
self.gridLayout_6.addLayout(self.horizontalLayout_12, 0, 3, 1, 1)
|
||||||
|
self.label_56 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.label_56.setFont(font)
|
||||||
|
self.label_56.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_56.setObjectName("label_56")
|
||||||
|
self.gridLayout_6.addWidget(self.label_56, 2, 0, 1, 1)
|
||||||
|
self.p3_incremental_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p3_incremental_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p3_incremental_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p3_incremental_DISP.setDigitCount(5)
|
||||||
|
self.p3_incremental_DISP.setObjectName("p3_incremental_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p3_incremental_DISP, 2, 4, 1, 1)
|
||||||
|
self.horizontalLayout_14 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_14.setObjectName("horizontalLayout_14")
|
||||||
|
self.p1_activate_CHECKBOX = QtWidgets.QCheckBox(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.p1_activate_CHECKBOX.sizePolicy().hasHeightForWidth())
|
||||||
|
self.p1_activate_CHECKBOX.setSizePolicy(sizePolicy)
|
||||||
|
self.p1_activate_CHECKBOX.setText("")
|
||||||
|
self.p1_activate_CHECKBOX.setObjectName("p1_activate_CHECKBOX")
|
||||||
|
self.horizontalLayout_14.addWidget(self.p1_activate_CHECKBOX)
|
||||||
|
self.label_8 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_8.setFont(font)
|
||||||
|
self.label_8.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_8.setObjectName("label_8")
|
||||||
|
self.horizontalLayout_14.addWidget(self.label_8)
|
||||||
|
self.gridLayout_6.addLayout(self.horizontalLayout_14, 0, 1, 1, 1)
|
||||||
|
self.label_57 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.label_57.setFont(font)
|
||||||
|
self.label_57.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_57.setObjectName("label_57")
|
||||||
|
self.gridLayout_6.addWidget(self.label_57, 3, 0, 1, 1)
|
||||||
|
self.p2_absolute_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p2_absolute_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p2_absolute_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p2_absolute_DISP.setDigitCount(5)
|
||||||
|
self.p2_absolute_DISP.setObjectName("p2_absolute_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p2_absolute_DISP, 1, 3, 1, 1)
|
||||||
|
self.p1_remain_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p1_remain_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p1_remain_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p1_remain_DISP.setDigitCount(5)
|
||||||
|
self.p1_remain_DISP.setObjectName("p1_remain_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p1_remain_DISP, 3, 1, 1, 1)
|
||||||
|
self.p1_incremental_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p1_incremental_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p1_incremental_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p1_incremental_DISP.setDigitCount(5)
|
||||||
|
self.p1_incremental_DISP.setObjectName("p1_incremental_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p1_incremental_DISP, 2, 1, 1, 1)
|
||||||
|
self.label_58 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.label_58.setFont(font)
|
||||||
|
self.label_58.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_58.setObjectName("label_58")
|
||||||
|
self.gridLayout_6.addWidget(self.label_58, 1, 0, 1, 1)
|
||||||
|
self.p3_absolute_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p3_absolute_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p3_absolute_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p3_absolute_DISP.setDigitCount(5)
|
||||||
|
self.p3_absolute_DISP.setObjectName("p3_absolute_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p3_absolute_DISP, 1, 4, 1, 1)
|
||||||
|
self.p2_remain_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p2_remain_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p2_remain_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p2_remain_DISP.setDigitCount(5)
|
||||||
|
self.p2_remain_DISP.setObjectName("p2_remain_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p2_remain_DISP, 3, 3, 1, 1)
|
||||||
|
self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_13.setObjectName("horizontalLayout_13")
|
||||||
|
self.line_5 = QtWidgets.QFrame(self.control)
|
||||||
|
self.line_5.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_5.setLineWidth(3)
|
||||||
|
self.line_5.setFrameShape(QtWidgets.QFrame.VLine)
|
||||||
|
self.line_5.setObjectName("line_5")
|
||||||
|
self.horizontalLayout_13.addWidget(self.line_5)
|
||||||
|
self.p3_activate_CHECKBOX = QtWidgets.QCheckBox(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.p3_activate_CHECKBOX.sizePolicy().hasHeightForWidth())
|
||||||
|
self.p3_activate_CHECKBOX.setSizePolicy(sizePolicy)
|
||||||
|
self.p3_activate_CHECKBOX.setText("")
|
||||||
|
self.p3_activate_CHECKBOX.setObjectName("p3_activate_CHECKBOX")
|
||||||
|
self.horizontalLayout_13.addWidget(self.p3_activate_CHECKBOX)
|
||||||
|
self.label_25 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_25.setFont(font)
|
||||||
|
self.label_25.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_25.setObjectName("label_25")
|
||||||
|
self.horizontalLayout_13.addWidget(self.label_25)
|
||||||
|
self.gridLayout_6.addLayout(self.horizontalLayout_13, 0, 4, 1, 1)
|
||||||
|
self.p1_absolute_DISP = QtWidgets.QLCDNumber(self.control)
|
||||||
|
self.p1_absolute_DISP.setFrameShape(QtWidgets.QFrame.Panel)
|
||||||
|
self.p1_absolute_DISP.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
self.p1_absolute_DISP.setDigitCount(4)
|
||||||
|
self.p1_absolute_DISP.setObjectName("p1_absolute_DISP")
|
||||||
|
self.gridLayout_6.addWidget(self.p1_absolute_DISP, 1, 1, 1, 1)
|
||||||
|
self.verticalLayout_9.addLayout(self.gridLayout_6)
|
||||||
|
self.line_3 = QtWidgets.QFrame(self.control)
|
||||||
|
self.line_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_3.setLineWidth(2)
|
||||||
|
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
|
self.line_3.setObjectName("line_3")
|
||||||
|
self.verticalLayout_9.addWidget(self.line_3)
|
||||||
|
self.gridLayout_3 = QtWidgets.QGridLayout()
|
||||||
|
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||||
|
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
|
||||||
|
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
|
||||||
|
self.p2_amount_INPUT = QtWidgets.QDoubleSpinBox(self.control)
|
||||||
|
self.p2_amount_INPUT.setDecimals(3)
|
||||||
|
self.p2_amount_INPUT.setMinimum(-99.0)
|
||||||
|
self.p2_amount_INPUT.setObjectName("p2_amount_INPUT")
|
||||||
|
self.horizontalLayout_9.addWidget(self.p2_amount_INPUT)
|
||||||
|
self.horizontalLayout_8.addLayout(self.horizontalLayout_9)
|
||||||
|
self.p2_units_LABEL_2 = QtWidgets.QLabel(self.control)
|
||||||
|
self.p2_units_LABEL_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p2_units_LABEL_2.setObjectName("p2_units_LABEL_2")
|
||||||
|
self.horizontalLayout_8.addWidget(self.p2_units_LABEL_2)
|
||||||
|
self.gridLayout_3.addLayout(self.horizontalLayout_8, 3, 3, 1, 1)
|
||||||
|
self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_15.setObjectName("horizontalLayout_15")
|
||||||
|
self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_16.setObjectName("horizontalLayout_16")
|
||||||
|
self.p3_amount_INPUT = QtWidgets.QDoubleSpinBox(self.control)
|
||||||
|
self.p3_amount_INPUT.setDecimals(3)
|
||||||
|
self.p3_amount_INPUT.setMinimum(-99.0)
|
||||||
|
self.p3_amount_INPUT.setObjectName("p3_amount_INPUT")
|
||||||
|
self.horizontalLayout_16.addWidget(self.p3_amount_INPUT)
|
||||||
|
self.horizontalLayout_15.addLayout(self.horizontalLayout_16)
|
||||||
|
self.p3_units_LABEL_2 = QtWidgets.QLabel(self.control)
|
||||||
|
self.p3_units_LABEL_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p3_units_LABEL_2.setObjectName("p3_units_LABEL_2")
|
||||||
|
self.horizontalLayout_15.addWidget(self.p3_units_LABEL_2)
|
||||||
|
self.gridLayout_3.addLayout(self.horizontalLayout_15, 4, 3, 1, 1)
|
||||||
|
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
|
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||||
|
self.p1_amount_INPUT = QtWidgets.QDoubleSpinBox(self.control)
|
||||||
|
self.p1_amount_INPUT.setDecimals(3)
|
||||||
|
self.p1_amount_INPUT.setMinimum(-99.0)
|
||||||
|
self.p1_amount_INPUT.setObjectName("p1_amount_INPUT")
|
||||||
|
self.horizontalLayout_6.addWidget(self.p1_amount_INPUT)
|
||||||
|
self.horizontalLayout.addLayout(self.horizontalLayout_6)
|
||||||
|
self.p1_units_LABEL_2 = QtWidgets.QLabel(self.control)
|
||||||
|
self.p1_units_LABEL_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p1_units_LABEL_2.setObjectName("p1_units_LABEL_2")
|
||||||
|
self.horizontalLayout.addWidget(self.p1_units_LABEL_2)
|
||||||
|
self.gridLayout_3.addLayout(self.horizontalLayout, 2, 3, 1, 1)
|
||||||
|
self.label_23 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setItalic(False)
|
||||||
|
font.setUnderline(False)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_23.setFont(font)
|
||||||
|
self.label_23.setText("")
|
||||||
|
self.label_23.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_23.setObjectName("label_23")
|
||||||
|
self.gridLayout_3.addWidget(self.label_23, 1, 0, 1, 1)
|
||||||
|
self.label_14 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_14.setFont(font)
|
||||||
|
self.label_14.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_14.setObjectName("label_14")
|
||||||
|
self.gridLayout_3.addWidget(self.label_14, 3, 0, 1, 1)
|
||||||
|
self.label_15 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_15.setFont(font)
|
||||||
|
self.label_15.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_15.setObjectName("label_15")
|
||||||
|
self.gridLayout_3.addWidget(self.label_15, 4, 0, 1, 1)
|
||||||
|
self.label_24 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setItalic(False)
|
||||||
|
font.setUnderline(False)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_24.setFont(font)
|
||||||
|
self.label_24.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_24.setObjectName("label_24")
|
||||||
|
self.gridLayout_3.addWidget(self.label_24, 1, 2, 1, 1)
|
||||||
|
self.p1_units_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p1_units_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p1_units_LABEL.setObjectName("p1_units_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p1_units_LABEL, 2, 2, 1, 1)
|
||||||
|
self.p3_syringe_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p3_syringe_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p3_syringe_LABEL.setObjectName("p3_syringe_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p3_syringe_LABEL, 4, 1, 1, 1)
|
||||||
|
self.p2_units_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p2_units_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p2_units_LABEL.setObjectName("p2_units_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p2_units_LABEL, 3, 2, 1, 1)
|
||||||
|
self.label_13 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_13.setFont(font)
|
||||||
|
self.label_13.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_13.setObjectName("label_13")
|
||||||
|
self.gridLayout_3.addWidget(self.label_13, 2, 0, 1, 1)
|
||||||
|
self.label_27 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setItalic(False)
|
||||||
|
font.setUnderline(False)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_27.setFont(font)
|
||||||
|
self.label_27.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_27.setObjectName("label_27")
|
||||||
|
self.gridLayout_3.addWidget(self.label_27, 1, 1, 1, 1)
|
||||||
|
self.p3_units_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p3_units_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p3_units_LABEL.setObjectName("p3_units_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p3_units_LABEL, 4, 2, 1, 1)
|
||||||
|
self.p2_syringe_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p2_syringe_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p2_syringe_LABEL.setObjectName("p2_syringe_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p2_syringe_LABEL, 3, 1, 1, 1)
|
||||||
|
self.p1_syringe_LABEL = QtWidgets.QLabel(self.control)
|
||||||
|
self.p1_syringe_LABEL.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.p1_syringe_LABEL.setObjectName("p1_syringe_LABEL")
|
||||||
|
self.gridLayout_3.addWidget(self.p1_syringe_LABEL, 2, 1, 1, 1)
|
||||||
|
self.label_10 = QtWidgets.QLabel(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setItalic(False)
|
||||||
|
font.setUnderline(False)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_10.setFont(font)
|
||||||
|
self.label_10.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_10.setObjectName("label_10")
|
||||||
|
self.gridLayout_3.addWidget(self.label_10, 1, 3, 1, 1)
|
||||||
|
self.verticalLayout_9.addLayout(self.gridLayout_3)
|
||||||
|
self.horizontalLayout_3.addLayout(self.verticalLayout_9)
|
||||||
|
self.line = QtWidgets.QFrame(self.control)
|
||||||
|
self.line.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line.setLineWidth(2)
|
||||||
|
self.line.setFrameShape(QtWidgets.QFrame.VLine)
|
||||||
|
self.line.setObjectName("line")
|
||||||
|
self.horizontalLayout_3.addWidget(self.line)
|
||||||
|
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||||
|
self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_11.setObjectName("horizontalLayout_11")
|
||||||
|
self.run_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.run_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.run_BTN.setSizePolicy(sizePolicy)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.run_BTN.setFont(font)
|
||||||
|
self.run_BTN.setObjectName("run_BTN")
|
||||||
|
self.horizontalLayout_11.addWidget(self.run_BTN)
|
||||||
|
self.pause_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.pause_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pause_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.pause_BTN.setObjectName("pause_BTN")
|
||||||
|
self.horizontalLayout_11.addWidget(self.pause_BTN)
|
||||||
|
self.zero_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.zero_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.zero_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.zero_BTN.setObjectName("zero_BTN")
|
||||||
|
self.horizontalLayout_11.addWidget(self.zero_BTN)
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout_11)
|
||||||
|
self.stop_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.stop_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.stop_BTN.setSizePolicy(sizePolicy)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.stop_BTN.setFont(font)
|
||||||
|
self.stop_BTN.setObjectName("stop_BTN")
|
||||||
|
self.verticalLayout_2.addWidget(self.stop_BTN)
|
||||||
|
self.line_2 = QtWidgets.QFrame(self.control)
|
||||||
|
self.line_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_2.setLineWidth(2)
|
||||||
|
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
|
self.line_2.setObjectName("line_2")
|
||||||
|
self.verticalLayout_2.addWidget(self.line_2)
|
||||||
|
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||||
|
self.verticalLayout_12 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_12.setObjectName("verticalLayout_12")
|
||||||
|
self.jog_plus_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.jog_plus_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.jog_plus_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.jog_plus_BTN.setObjectName("jog_plus_BTN")
|
||||||
|
self.verticalLayout_12.addWidget(self.jog_plus_BTN)
|
||||||
|
self.jog_minus_BTN = QtWidgets.QPushButton(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.jog_minus_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.jog_minus_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.jog_minus_BTN.setObjectName("jog_minus_BTN")
|
||||||
|
self.verticalLayout_12.addWidget(self.jog_minus_BTN)
|
||||||
|
self.horizontalLayout_4.addLayout(self.verticalLayout_12)
|
||||||
|
self.line_15 = QtWidgets.QFrame(self.control)
|
||||||
|
self.line_15.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_15.setLineWidth(2)
|
||||||
|
self.line_15.setFrameShape(QtWidgets.QFrame.VLine)
|
||||||
|
self.line_15.setObjectName("line_15")
|
||||||
|
self.horizontalLayout_4.addWidget(self.line_15)
|
||||||
|
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||||
|
self.label_43 = QtWidgets.QLabel(self.control)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.label_43.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_43.setSizePolicy(sizePolicy)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_43.setFont(font)
|
||||||
|
self.label_43.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_43.setObjectName("label_43")
|
||||||
|
self.verticalLayout_3.addWidget(self.label_43)
|
||||||
|
self.absolute_RADIO = QtWidgets.QRadioButton(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.absolute_RADIO.setFont(font)
|
||||||
|
self.absolute_RADIO.setChecked(True)
|
||||||
|
self.absolute_RADIO.setObjectName("absolute_RADIO")
|
||||||
|
self.verticalLayout_3.addWidget(self.absolute_RADIO)
|
||||||
|
self.incremental_RADIO = QtWidgets.QRadioButton(self.control)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.incremental_RADIO.setFont(font)
|
||||||
|
self.incremental_RADIO.setObjectName("incremental_RADIO")
|
||||||
|
self.verticalLayout_3.addWidget(self.incremental_RADIO)
|
||||||
|
self.horizontalLayout_4.addLayout(self.verticalLayout_3)
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout_4)
|
||||||
|
self.horizontalLayout_3.addLayout(self.verticalLayout_2)
|
||||||
|
self.horizontalLayout_10.addLayout(self.horizontalLayout_3)
|
||||||
|
self.tabWidget.addTab(self.control, "")
|
||||||
|
self.camera = QtWidgets.QWidget()
|
||||||
|
self.camera.setObjectName("camera")
|
||||||
|
self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.camera)
|
||||||
|
self.verticalLayout_11.setObjectName("verticalLayout_11")
|
||||||
|
self.imgLabel = QtWidgets.QLabel(self.camera)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.imgLabel.sizePolicy().hasHeightForWidth())
|
||||||
|
self.imgLabel.setSizePolicy(sizePolicy)
|
||||||
|
self.imgLabel.setText("")
|
||||||
|
self.imgLabel.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.imgLabel.setObjectName("imgLabel")
|
||||||
|
self.verticalLayout_11.addWidget(self.imgLabel)
|
||||||
|
self.verticalLayout_10 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_10.setObjectName("verticalLayout_10")
|
||||||
|
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||||
|
self.camera_connect_BTN = QtWidgets.QPushButton(self.camera)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.camera_connect_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.camera_connect_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.camera_connect_BTN.setObjectName("camera_connect_BTN")
|
||||||
|
self.horizontalLayout_5.addWidget(self.camera_connect_BTN)
|
||||||
|
self.camera_disconnect_BTN = QtWidgets.QPushButton(self.camera)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.camera_disconnect_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.camera_disconnect_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.camera_disconnect_BTN.setObjectName("camera_disconnect_BTN")
|
||||||
|
self.horizontalLayout_5.addWidget(self.camera_disconnect_BTN)
|
||||||
|
self.camera_capture_image_BTN = QtWidgets.QPushButton(self.camera)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.camera_capture_image_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.camera_capture_image_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.camera_capture_image_BTN.setObjectName("camera_capture_image_BTN")
|
||||||
|
self.horizontalLayout_5.addWidget(self.camera_capture_image_BTN)
|
||||||
|
self.verticalLayout_10.addLayout(self.horizontalLayout_5)
|
||||||
|
self.verticalLayout_11.addLayout(self.verticalLayout_10)
|
||||||
|
self.tabWidget.addTab(self.camera, "")
|
||||||
|
self.setup = QtWidgets.QWidget()
|
||||||
|
self.setup.setObjectName("setup")
|
||||||
|
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.setup)
|
||||||
|
self.verticalLayout_14.setObjectName("verticalLayout_14")
|
||||||
|
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||||
|
self.label_7 = QtWidgets.QLabel(self.setup)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_7.setSizePolicy(sizePolicy)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.label_7.setFont(font)
|
||||||
|
self.label_7.setObjectName("label_7")
|
||||||
|
self.horizontalLayout_2.addWidget(self.label_7)
|
||||||
|
self.port_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.port_DROPDOWN.setObjectName("port_DROPDOWN")
|
||||||
|
self.horizontalLayout_2.addWidget(self.port_DROPDOWN)
|
||||||
|
self.refresh_ports_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.refresh_ports_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.refresh_ports_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.refresh_ports_BTN.setObjectName("refresh_ports_BTN")
|
||||||
|
self.horizontalLayout_2.addWidget(self.refresh_ports_BTN)
|
||||||
|
self.verticalLayout_14.addLayout(self.horizontalLayout_2)
|
||||||
|
self.horizontalLayout_17 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_17.setObjectName("horizontalLayout_17")
|
||||||
|
self.label_5 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
self.label_5.setFont(font)
|
||||||
|
self.label_5.setObjectName("label_5")
|
||||||
|
self.horizontalLayout_17.addWidget(self.label_5)
|
||||||
|
self.microstepping_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.microstepping_DROPDOWN.setObjectName("microstepping_DROPDOWN")
|
||||||
|
self.horizontalLayout_17.addWidget(self.microstepping_DROPDOWN)
|
||||||
|
self.verticalLayout_14.addLayout(self.horizontalLayout_17)
|
||||||
|
self.line_6 = QtWidgets.QFrame(self.setup)
|
||||||
|
self.line_6.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.line_6.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
|
self.line_6.setObjectName("line_6")
|
||||||
|
self.verticalLayout_14.addWidget(self.line_6)
|
||||||
|
self.verticalLayout_13 = QtWidgets.QVBoxLayout()
|
||||||
|
self.verticalLayout_13.setObjectName("verticalLayout_13")
|
||||||
|
self.gridLayout = QtWidgets.QGridLayout()
|
||||||
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
|
self.p3_units_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p3_units_DROPDOWN.setObjectName("p3_units_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p3_units_DROPDOWN, 3, 2, 1, 1)
|
||||||
|
self.p2_units_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p2_units_DROPDOWN.setObjectName("p2_units_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p2_units_DROPDOWN, 2, 2, 1, 1)
|
||||||
|
self.p2_accel_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p2_accel_INPUT.setMaximum(99999.99)
|
||||||
|
self.p2_accel_INPUT.setObjectName("p2_accel_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p2_accel_INPUT, 2, 4, 1, 1)
|
||||||
|
self.label_19 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_19.setFont(font)
|
||||||
|
self.label_19.setObjectName("label_19")
|
||||||
|
self.gridLayout.addWidget(self.label_19, 0, 4, 1, 1)
|
||||||
|
self.p1_speed_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p1_speed_INPUT.setDecimals(4)
|
||||||
|
self.p1_speed_INPUT.setMaximum(9999.999)
|
||||||
|
self.p1_speed_INPUT.setObjectName("p1_speed_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p1_speed_INPUT, 1, 3, 1, 1)
|
||||||
|
self.p2_syringe_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p2_syringe_DROPDOWN.setObjectName("p2_syringe_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p2_syringe_DROPDOWN, 2, 1, 1, 1)
|
||||||
|
self.p2_speed_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p2_speed_INPUT.setDecimals(4)
|
||||||
|
self.p2_speed_INPUT.setMaximum(9999.999)
|
||||||
|
self.p2_speed_INPUT.setObjectName("p2_speed_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p2_speed_INPUT, 2, 3, 1, 1)
|
||||||
|
self.p1_accel_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p1_accel_INPUT.setMaximum(99999.99)
|
||||||
|
self.p1_accel_INPUT.setObjectName("p1_accel_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p1_accel_INPUT, 1, 4, 1, 1)
|
||||||
|
self.p3_syringe_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p3_syringe_DROPDOWN.setObjectName("p3_syringe_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p3_syringe_DROPDOWN, 3, 1, 1, 1)
|
||||||
|
self.p3_speed_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p3_speed_INPUT.setDecimals(4)
|
||||||
|
self.p3_speed_INPUT.setMaximum(9999.999)
|
||||||
|
self.p3_speed_INPUT.setObjectName("p3_speed_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p3_speed_INPUT, 3, 3, 1, 1)
|
||||||
|
self.p1_units_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p1_units_DROPDOWN.setObjectName("p1_units_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p1_units_DROPDOWN, 1, 2, 1, 1)
|
||||||
|
self.p1_syringe_DROPDOWN = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p1_syringe_DROPDOWN.setObjectName("p1_syringe_DROPDOWN")
|
||||||
|
self.gridLayout.addWidget(self.p1_syringe_DROPDOWN, 1, 1, 1, 1)
|
||||||
|
self.label_16 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_16.setFont(font)
|
||||||
|
self.label_16.setObjectName("label_16")
|
||||||
|
self.gridLayout.addWidget(self.label_16, 0, 1, 1, 1)
|
||||||
|
self.label_20 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_20.setFont(font)
|
||||||
|
self.label_20.setObjectName("label_20")
|
||||||
|
self.gridLayout.addWidget(self.label_20, 0, 5, 1, 1)
|
||||||
|
self.label_2 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_2.setFont(font)
|
||||||
|
self.label_2.setObjectName("label_2")
|
||||||
|
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
||||||
|
self.label_3 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_3.setFont(font)
|
||||||
|
self.label_3.setObjectName("label_3")
|
||||||
|
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
||||||
|
self.label_18 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_18.setFont(font)
|
||||||
|
self.label_18.setObjectName("label_18")
|
||||||
|
self.gridLayout.addWidget(self.label_18, 0, 3, 1, 1)
|
||||||
|
self.label_17 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_17.setFont(font)
|
||||||
|
self.label_17.setObjectName("label_17")
|
||||||
|
self.gridLayout.addWidget(self.label_17, 0, 2, 1, 1)
|
||||||
|
self.p3_accel_INPUT = QtWidgets.QDoubleSpinBox(self.setup)
|
||||||
|
self.p3_accel_INPUT.setMaximum(99999.99)
|
||||||
|
self.p3_accel_INPUT.setObjectName("p3_accel_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p3_accel_INPUT, 3, 4, 1, 1)
|
||||||
|
self.label_4 = QtWidgets.QLabel(self.setup)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setPointSize(15)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_4.setFont(font)
|
||||||
|
self.label_4.setObjectName("label_4")
|
||||||
|
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
|
||||||
|
self.p1_setup_send_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
self.p1_setup_send_BTN.setObjectName("p1_setup_send_BTN")
|
||||||
|
self.gridLayout.addWidget(self.p1_setup_send_BTN, 1, 6, 1, 1)
|
||||||
|
self.p2_setup_send_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
self.p2_setup_send_BTN.setObjectName("p2_setup_send_BTN")
|
||||||
|
self.gridLayout.addWidget(self.p2_setup_send_BTN, 2, 6, 1, 1)
|
||||||
|
self.p3_setup_send_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
self.p3_setup_send_BTN.setObjectName("p3_setup_send_BTN")
|
||||||
|
self.gridLayout.addWidget(self.p3_setup_send_BTN, 3, 6, 1, 1)
|
||||||
|
self.p1_setup_jog_delta_INPUT = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p1_setup_jog_delta_INPUT.setObjectName("p1_setup_jog_delta_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p1_setup_jog_delta_INPUT, 1, 5, 1, 1)
|
||||||
|
self.p2_setup_jog_delta_INPUT = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p2_setup_jog_delta_INPUT.setObjectName("p2_setup_jog_delta_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p2_setup_jog_delta_INPUT, 2, 5, 1, 1)
|
||||||
|
self.p3_setup_jog_delta_INPUT = QtWidgets.QComboBox(self.setup)
|
||||||
|
self.p3_setup_jog_delta_INPUT.setObjectName("p3_setup_jog_delta_INPUT")
|
||||||
|
self.gridLayout.addWidget(self.p3_setup_jog_delta_INPUT, 3, 5, 1, 1)
|
||||||
|
self.verticalLayout_13.addLayout(self.gridLayout)
|
||||||
|
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||||
|
self.connect_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.connect_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.connect_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.connect_BTN.setObjectName("connect_BTN")
|
||||||
|
self.horizontalLayout_7.addWidget(self.connect_BTN)
|
||||||
|
self.disconnect_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
self.disconnect_BTN.setEnabled(False)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.disconnect_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.disconnect_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.disconnect_BTN.setObjectName("disconnect_BTN")
|
||||||
|
self.horizontalLayout_7.addWidget(self.disconnect_BTN)
|
||||||
|
self.send_all_BTN = QtWidgets.QPushButton(self.setup)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.send_all_BTN.sizePolicy().hasHeightForWidth())
|
||||||
|
self.send_all_BTN.setSizePolicy(sizePolicy)
|
||||||
|
self.send_all_BTN.setAcceptDrops(True)
|
||||||
|
self.send_all_BTN.setObjectName("send_all_BTN")
|
||||||
|
self.horizontalLayout_7.addWidget(self.send_all_BTN)
|
||||||
|
self.verticalLayout_13.addLayout(self.horizontalLayout_7)
|
||||||
|
self.verticalLayout_14.addLayout(self.verticalLayout_13)
|
||||||
|
self.experiment_notes = QtWidgets.QLineEdit(self.setup)
|
||||||
|
self.experiment_notes.setObjectName("experiment_notes")
|
||||||
|
self.verticalLayout_14.addWidget(self.experiment_notes)
|
||||||
|
self.tabWidget.addTab(self.setup, "")
|
||||||
|
self.rheo = QtWidgets.QWidget()
|
||||||
|
self.rheo.setObjectName("rheo")
|
||||||
|
self.gridLayout_4 = QtWidgets.QGridLayout(self.rheo)
|
||||||
|
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||||
|
self.gridLayout_2 = QtWidgets.QGridLayout()
|
||||||
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.gridLayout_2.addItem(spacerItem, 1, 1, 1, 1)
|
||||||
|
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
|
self.gridLayout_2.addItem(spacerItem1, 0, 0, 1, 1)
|
||||||
|
self.jfscanvas = QtWidgets.QWidget(self.rheo)
|
||||||
|
self.jfscanvas.setObjectName("jfscanvas")
|
||||||
|
self.gridLayout_2.addWidget(self.jfscanvas, 0, 1, 1, 1)
|
||||||
|
self.gridLayout_4.addLayout(self.gridLayout_2, 1, 0, 1, 1)
|
||||||
|
self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_18.setObjectName("horizontalLayout_18")
|
||||||
|
self.label_9 = QtWidgets.QLabel(self.rheo)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_9.setSizePolicy(sizePolicy)
|
||||||
|
self.label_9.setObjectName("label_9")
|
||||||
|
self.horizontalLayout_18.addWidget(self.label_9)
|
||||||
|
self.rheo_port_comboBox = QtWidgets.QComboBox(self.rheo)
|
||||||
|
self.rheo_port_comboBox.setObjectName("rheo_port_comboBox")
|
||||||
|
self.horizontalLayout_18.addWidget(self.rheo_port_comboBox)
|
||||||
|
self.openRheo_btn = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.openRheo_btn.setObjectName("openRheo_btn")
|
||||||
|
self.horizontalLayout_18.addWidget(self.openRheo_btn)
|
||||||
|
self.closeRheo_btn = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.closeRheo_btn.setObjectName("closeRheo_btn")
|
||||||
|
self.horizontalLayout_18.addWidget(self.closeRheo_btn)
|
||||||
|
self.label_11 = QtWidgets.QLabel(self.rheo)
|
||||||
|
self.label_11.setObjectName("label_11")
|
||||||
|
self.horizontalLayout_18.addWidget(self.label_11)
|
||||||
|
self.comboBox_tb = QtWidgets.QComboBox(self.rheo)
|
||||||
|
self.comboBox_tb.setObjectName("comboBox_tb")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.comboBox_tb.addItem("")
|
||||||
|
self.horizontalLayout_18.addWidget(self.comboBox_tb)
|
||||||
|
self.start_btn = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.start_btn.setObjectName("start_btn")
|
||||||
|
self.horizontalLayout_18.addWidget(self.start_btn)
|
||||||
|
self.stop_btn = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.stop_btn.setObjectName("stop_btn")
|
||||||
|
self.horizontalLayout_18.addWidget(self.stop_btn)
|
||||||
|
self.clearDisplay = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.clearDisplay.setObjectName("clearDisplay")
|
||||||
|
self.horizontalLayout_18.addWidget(self.clearDisplay)
|
||||||
|
self.checkBox = QtWidgets.QCheckBox(self.rheo)
|
||||||
|
self.checkBox.setObjectName("checkBox")
|
||||||
|
self.horizontalLayout_18.addWidget(self.checkBox)
|
||||||
|
self.label_12 = QtWidgets.QLabel(self.rheo)
|
||||||
|
self.label_12.setObjectName("label_12")
|
||||||
|
self.horizontalLayout_18.addWidget(self.label_12)
|
||||||
|
self.lineEdit = QtWidgets.QLineEdit(self.rheo)
|
||||||
|
self.lineEdit.setMaxLength(12)
|
||||||
|
self.lineEdit.setObjectName("lineEdit")
|
||||||
|
self.horizontalLayout_18.addWidget(self.lineEdit)
|
||||||
|
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.horizontalLayout_18.addItem(spacerItem2)
|
||||||
|
self.gridLayout_4.addLayout(self.horizontalLayout_18, 0, 0, 1, 1)
|
||||||
|
self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_19.setObjectName("horizontalLayout_19")
|
||||||
|
self.label_21 = QtWidgets.QLabel(self.rheo)
|
||||||
|
self.label_21.setObjectName("label_21")
|
||||||
|
self.horizontalLayout_19.addWidget(self.label_21)
|
||||||
|
self.lineEdit_2 = QtWidgets.QLineEdit(self.rheo)
|
||||||
|
self.lineEdit_2.setMaximumSize(QtCore.QSize(50, 16777215))
|
||||||
|
self.lineEdit_2.setObjectName("lineEdit_2")
|
||||||
|
self.horizontalLayout_19.addWidget(self.lineEdit_2)
|
||||||
|
self.checkBox_2 = QtWidgets.QCheckBox(self.rheo)
|
||||||
|
self.checkBox_2.setObjectName("checkBox_2")
|
||||||
|
self.horizontalLayout_19.addWidget(self.checkBox_2)
|
||||||
|
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.horizontalLayout_19.addItem(spacerItem3)
|
||||||
|
self.label_22 = QtWidgets.QLabel(self.rheo)
|
||||||
|
self.label_22.setObjectName("label_22")
|
||||||
|
self.horizontalLayout_19.addWidget(self.label_22)
|
||||||
|
self.comboBox = QtWidgets.QComboBox(self.rheo)
|
||||||
|
self.comboBox.setObjectName("comboBox")
|
||||||
|
self.horizontalLayout_19.addWidget(self.comboBox)
|
||||||
|
self.pushButton = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.pushButton.setObjectName("pushButton")
|
||||||
|
self.horizontalLayout_19.addWidget(self.pushButton)
|
||||||
|
self.pushButton_2 = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.pushButton_2.setObjectName("pushButton_2")
|
||||||
|
self.horizontalLayout_19.addWidget(self.pushButton_2)
|
||||||
|
self.checkBox_3 = QtWidgets.QCheckBox(self.rheo)
|
||||||
|
self.checkBox_3.setObjectName("checkBox_3")
|
||||||
|
self.horizontalLayout_19.addWidget(self.checkBox_3)
|
||||||
|
self.pushButton_3 = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.pushButton_3.setObjectName("pushButton_3")
|
||||||
|
self.horizontalLayout_19.addWidget(self.pushButton_3)
|
||||||
|
self.pushButton_4 = QtWidgets.QPushButton(self.rheo)
|
||||||
|
self.pushButton_4.setObjectName("pushButton_4")
|
||||||
|
self.horizontalLayout_19.addWidget(self.pushButton_4)
|
||||||
|
self.lineEdit_3 = QtWidgets.QLineEdit(self.rheo)
|
||||||
|
self.lineEdit_3.setMaxLength(60)
|
||||||
|
self.lineEdit_3.setObjectName("lineEdit_3")
|
||||||
|
self.horizontalLayout_19.addWidget(self.lineEdit_3)
|
||||||
|
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.horizontalLayout_19.addItem(spacerItem4)
|
||||||
|
self.gridLayout_4.addLayout(self.horizontalLayout_19, 2, 0, 1, 1)
|
||||||
|
self.tabWidget.addTab(self.rheo, "")
|
||||||
|
self.verticalLayout.addWidget(self.tabWidget)
|
||||||
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
|
self.status_bar_DISP = QtWidgets.QStatusBar(MainWindow)
|
||||||
|
self.status_bar_DISP.setObjectName("status_bar_DISP")
|
||||||
|
MainWindow.setStatusBar(self.status_bar_DISP)
|
||||||
|
self.menuBar = QtWidgets.QMenuBar(MainWindow)
|
||||||
|
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1071, 26))
|
||||||
|
self.menuBar.setNativeMenuBar(False)
|
||||||
|
self.menuBar.setObjectName("menuBar")
|
||||||
|
self.menuFile = QtWidgets.QMenu(self.menuBar)
|
||||||
|
self.menuFile.setObjectName("menuFile")
|
||||||
|
MainWindow.setMenuBar(self.menuBar)
|
||||||
|
self.load_settings_INPUT = QtWidgets.QAction(MainWindow)
|
||||||
|
self.load_settings_INPUT.setObjectName("load_settings_INPUT")
|
||||||
|
self.save_settings_INPUT = QtWidgets.QAction(MainWindow)
|
||||||
|
self.save_settings_INPUT.setObjectName("save_settings_INPUT")
|
||||||
|
self.load_settings_BTN = QtWidgets.QAction(MainWindow)
|
||||||
|
self.load_settings_BTN.setObjectName("load_settings_BTN")
|
||||||
|
self.save_settings_BTN = QtWidgets.QAction(MainWindow)
|
||||||
|
self.save_settings_BTN.setObjectName("save_settings_BTN")
|
||||||
|
self.menuFile.addAction(self.load_settings_BTN)
|
||||||
|
self.menuFile.addAction(self.save_settings_BTN)
|
||||||
|
self.menuBar.addAction(self.menuFile.menuAction())
|
||||||
|
|
||||||
|
self.retranslateUi(MainWindow)
|
||||||
|
self.tabWidget.setCurrentIndex(3)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||||
|
|
||||||
|
def retranslateUi(self, MainWindow):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
MainWindow.setWindowTitle(_translate("MainWindow", "Poseidon Controller"))
|
||||||
|
self.label_6.setText(_translate("MainWindow", "Pump 2"))
|
||||||
|
self.label_56.setText(_translate("MainWindow", "Incremental"))
|
||||||
|
self.label_8.setText(_translate("MainWindow", "Pump 1"))
|
||||||
|
self.label_57.setText(_translate("MainWindow", "Remain"))
|
||||||
|
self.label_58.setText(_translate("MainWindow", "Absolute"))
|
||||||
|
self.label_25.setText(_translate("MainWindow", "Pump 3"))
|
||||||
|
self.p2_units_LABEL_2.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.p3_units_LABEL_2.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.p1_units_LABEL_2.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.label_14.setText(_translate("MainWindow", "Pump 2"))
|
||||||
|
self.label_15.setText(_translate("MainWindow", "Pump 3"))
|
||||||
|
self.label_24.setText(_translate("MainWindow", "Speed"))
|
||||||
|
self.p1_units_LABEL.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.p3_syringe_LABEL.setText(_translate("MainWindow", "syringe"))
|
||||||
|
self.p2_units_LABEL.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.label_13.setText(_translate("MainWindow", "Pump 1"))
|
||||||
|
self.label_27.setText(_translate("MainWindow", "Syringe"))
|
||||||
|
self.p3_units_LABEL.setText(_translate("MainWindow", "[units]"))
|
||||||
|
self.p2_syringe_LABEL.setText(_translate("MainWindow", "syringe"))
|
||||||
|
self.p1_syringe_LABEL.setText(_translate("MainWindow", "syringe"))
|
||||||
|
self.label_10.setText(_translate("MainWindow", "Amount "))
|
||||||
|
self.run_BTN.setText(_translate("MainWindow", "Run"))
|
||||||
|
self.pause_BTN.setText(_translate("MainWindow", "Pause"))
|
||||||
|
self.zero_BTN.setText(_translate("MainWindow", "Zero"))
|
||||||
|
self.stop_BTN.setText(_translate("MainWindow", "STOP"))
|
||||||
|
self.jog_plus_BTN.setText(_translate("MainWindow", "Jog +"))
|
||||||
|
self.jog_minus_BTN.setText(_translate("MainWindow", "Jog -"))
|
||||||
|
self.label_43.setText(_translate("MainWindow", "Coord."))
|
||||||
|
self.absolute_RADIO.setText(_translate("MainWindow", "Abs."))
|
||||||
|
self.incremental_RADIO.setText(_translate("MainWindow", "Incr."))
|
||||||
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.control), _translate("MainWindow", "Syringe Control"))
|
||||||
|
self.camera_connect_BTN.setText(_translate("MainWindow", "Connect"))
|
||||||
|
self.camera_disconnect_BTN.setText(_translate("MainWindow", "Disconnect"))
|
||||||
|
self.camera_capture_image_BTN.setText(_translate("MainWindow", "Capture Image"))
|
||||||
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.camera), _translate("MainWindow", "Camera"))
|
||||||
|
self.label_7.setText(_translate("MainWindow", "Select port:"))
|
||||||
|
self.refresh_ports_BTN.setText(_translate("MainWindow", "Refresh ports"))
|
||||||
|
self.label_5.setText(_translate("MainWindow", "Set Microstepping:"))
|
||||||
|
self.label_19.setText(_translate("MainWindow", "Accel"))
|
||||||
|
self.label_16.setText(_translate("MainWindow", "Syringe"))
|
||||||
|
self.label_20.setText(_translate("MainWindow", "Jog Delta"))
|
||||||
|
self.label_2.setText(_translate("MainWindow", "Pump 1"))
|
||||||
|
self.label_3.setText(_translate("MainWindow", "Pump 2"))
|
||||||
|
self.label_18.setText(_translate("MainWindow", "Speed"))
|
||||||
|
self.label_17.setText(_translate("MainWindow", "Units"))
|
||||||
|
self.label_4.setText(_translate("MainWindow", "Pump 3"))
|
||||||
|
self.p1_setup_send_BTN.setText(_translate("MainWindow", "Send"))
|
||||||
|
self.p2_setup_send_BTN.setText(_translate("MainWindow", "Send"))
|
||||||
|
self.p3_setup_send_BTN.setText(_translate("MainWindow", "Send"))
|
||||||
|
self.connect_BTN.setText(_translate("MainWindow", "Connect to Controller"))
|
||||||
|
self.disconnect_BTN.setText(_translate("MainWindow", "Disconnect from Controller"))
|
||||||
|
self.send_all_BTN.setText(_translate("MainWindow", "Send all settings"))
|
||||||
|
self.experiment_notes.setPlaceholderText(_translate("MainWindow", "Write notes about your experiment here. These will be appended to the end of your settings file."))
|
||||||
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.setup), _translate("MainWindow", "Setup"))
|
||||||
|
self.label_9.setText(_translate("MainWindow", "Port"))
|
||||||
|
self.openRheo_btn.setText(_translate("MainWindow", "open port"))
|
||||||
|
self.closeRheo_btn.setText(_translate("MainWindow", "close port"))
|
||||||
|
self.label_11.setText(_translate("MainWindow", "Timebase [ms]"))
|
||||||
|
self.comboBox_tb.setCurrentText(_translate("MainWindow", "50"))
|
||||||
|
self.comboBox_tb.setItemText(0, _translate("MainWindow", "1"))
|
||||||
|
self.comboBox_tb.setItemText(1, _translate("MainWindow", "5"))
|
||||||
|
self.comboBox_tb.setItemText(2, _translate("MainWindow", "10"))
|
||||||
|
self.comboBox_tb.setItemText(3, _translate("MainWindow", "50"))
|
||||||
|
self.comboBox_tb.setItemText(4, _translate("MainWindow", "100"))
|
||||||
|
self.comboBox_tb.setItemText(5, _translate("MainWindow", "500"))
|
||||||
|
self.comboBox_tb.setItemText(6, _translate("MainWindow", "1000"))
|
||||||
|
self.start_btn.setText(_translate("MainWindow", "start"))
|
||||||
|
self.stop_btn.setText(_translate("MainWindow", "stop"))
|
||||||
|
self.clearDisplay.setText(_translate("MainWindow", "clear display"))
|
||||||
|
self.checkBox.setText(_translate("MainWindow", "Test Run"))
|
||||||
|
self.label_12.setText(_translate("MainWindow", "set Freqency"))
|
||||||
|
self.label_21.setText(_translate("MainWindow", "limit for stop flow"))
|
||||||
|
self.checkBox_2.setText(_translate("MainWindow", "check the limit"))
|
||||||
|
self.label_22.setText(_translate("MainWindow", "Rheo Port"))
|
||||||
|
self.pushButton.setText(_translate("MainWindow", "open port"))
|
||||||
|
self.pushButton_2.setText(_translate("MainWindow", "close port"))
|
||||||
|
self.checkBox_3.setText(_translate("MainWindow", "load"))
|
||||||
|
self.pushButton_3.setText(_translate("MainWindow", "Home"))
|
||||||
|
self.pushButton_4.setText(_translate("MainWindow", "inject.."))
|
||||||
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.rheo), _translate("MainWindow", "Counter"))
|
||||||
|
self.menuFile.setTitle(_translate("MainWindow", "File"))
|
||||||
|
self.load_settings_INPUT.setText(_translate("MainWindow", "Load settings"))
|
||||||
|
self.save_settings_INPUT.setText(_translate("MainWindow", "Save settings"))
|
||||||
|
self.load_settings_BTN.setText(_translate("MainWindow", "Load settings"))
|
||||||
|
self.save_settings_BTN.setText(_translate("MainWindow", "Save settings"))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
MainWindow = QtWidgets.QMainWindow()
|
||||||
|
ui = Ui_MainWindow()
|
||||||
|
ui.setupUi(MainWindow)
|
||||||
|
MainWindow.show()
|
||||||
|
sys.exit(app.exec_())
|
||||||
1609
poseidon_controller_gui2.ui
Normal file
1609
poseidon_controller_gui2.ui
Normal file
File diff suppressed because it is too large
Load Diff
1530
poseidon_main.py
Normal file
1530
poseidon_main.py
Normal file
File diff suppressed because it is too large
Load Diff
250
show_html.py
Normal file
250
show_html.py
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
|
||||||
|
import sys,os
|
||||||
|
from PyQt5.QtCore import *
|
||||||
|
from PyQt5.QtWebEngineWidgets import *
|
||||||
|
from PyQt5.QtWidgets import QApplication
|
||||||
|
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
|
||||||
|
web =QWebEngineView()
|
||||||
|
#web.load(QUrl('http://192.168.2.242:8000/'))
|
||||||
|
|
||||||
|
|
||||||
|
script_dir = os.path.dirname(__file__)
|
||||||
|
file_path = os.path.join(script_dir, 'test.html')
|
||||||
|
with open(file_path,encoding="UTF-8") as f:
|
||||||
|
html = f.read()
|
||||||
|
print(file_path)
|
||||||
|
|
||||||
|
web.load(QUrl.fromLocalFile(file_path))
|
||||||
|
|
||||||
|
web.show()
|
||||||
|
|
||||||
|
sys.exit(app.exec_())
|
||||||
|
|
||||||
|
# import pandas as pd
|
||||||
|
# from bokeh import plotting, embed, resources
|
||||||
|
# from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
|
||||||
|
# import os
|
||||||
|
|
||||||
|
# class Widget(QtWidgets.QWidget):
|
||||||
|
# def __init__(self, parent=None):
|
||||||
|
# super(Widget, self).__init__(parent)
|
||||||
|
|
||||||
|
# button = QtWidgets.QPushButton("Submit")
|
||||||
|
# saveit = QtWidgets.QPushButton('save')
|
||||||
|
# self.m_output = QtWebEngineWidgets.QWebEngineView()
|
||||||
|
|
||||||
|
# button.clicked.connect(self.on_button_clicked)
|
||||||
|
# saveit.clicked.connect(self.do_save)
|
||||||
|
|
||||||
|
# lay = QtWidgets.QVBoxLayout(self)
|
||||||
|
# lay.addWidget(button)
|
||||||
|
# lay.addWidget(saveit)
|
||||||
|
# lay.addWidget(self.m_output)
|
||||||
|
# self.resize(640, 480)
|
||||||
|
|
||||||
|
# @QtCore.pyqtSlot()
|
||||||
|
# def do_save(self):
|
||||||
|
# p = plotting.figure(plot_width=300, plot_height=300)
|
||||||
|
# data = {"Day": [0, 1, 2, 3, 0, 1], "Num": [0, 0, 1, 1, 2, 3]}
|
||||||
|
# df = pd.DataFrame(data)
|
||||||
|
# p.hexbin(df.Day, df.Num, size=0.5)
|
||||||
|
# html = embed.file_html(p, resources.CDN, "my plot")
|
||||||
|
# script_dir = os.path.dirname(__file__)
|
||||||
|
# file_path = os.path.join(script_dir, './test.html')
|
||||||
|
# with open(file_path,'w',encoding='utf_8') as f:
|
||||||
|
# f.write(html)
|
||||||
|
|
||||||
|
|
||||||
|
# print(html)
|
||||||
|
# self.m_output.setHtml(html)
|
||||||
|
|
||||||
|
|
||||||
|
# @QtCore.pyqtSlot()
|
||||||
|
# def on_button_clicked(self):
|
||||||
|
# # p = plotting.figure(plot_width=300, plot_height=300)
|
||||||
|
# # data = {"Day": [0, 1, 2, 3, 0, 1], "Num": [0, 0, 1, 1, 2, 3]}
|
||||||
|
# # df = pd.DataFrame(data)
|
||||||
|
# # p.hexbin(df.Day, df.Num, size=0.5)
|
||||||
|
# # html = embed.file_html(p, resources.CDN, "my plot")
|
||||||
|
# # self.m_output.setHtml(html)
|
||||||
|
# #self.m_output.setContent(html,"text/html;charset=UTF-8","")
|
||||||
|
# # html =''
|
||||||
|
# # script_dir = os.path.dirname(__file__)
|
||||||
|
# # file_path = os.path.join(script_dir, './test.html')
|
||||||
|
# # with open(file_path,encoding="UTF-8") as f:
|
||||||
|
# # html = f.read()
|
||||||
|
# # print(html)
|
||||||
|
# self.m_output.load(QtCore.QUrl('https://t-online.de'))
|
||||||
|
|
||||||
|
# if __name__ == "__main__":
|
||||||
|
# import sys
|
||||||
|
|
||||||
|
# app = QtWidgets.QApplication(sys.argv)
|
||||||
|
|
||||||
|
# w = Widget()
|
||||||
|
# w.show()
|
||||||
|
|
||||||
|
# sys.exit(app.exec_())
|
||||||
|
|
||||||
|
# from PyQt5.QtWidgets import QApplication
|
||||||
|
# from PyQt5.QtWebEngineWidgets import QWebEngineView
|
||||||
|
# from PyQt5.QtWebChannel import QWebChannel
|
||||||
|
|
||||||
|
# from PyQt5.QtCore import QObject, pyqtSlot, QUrl, QVariant
|
||||||
|
|
||||||
|
# import os
|
||||||
|
|
||||||
|
# class CallHandler(QObject):
|
||||||
|
|
||||||
|
|
||||||
|
# @pyqtSlot(result=QVariant)
|
||||||
|
# def test(self):
|
||||||
|
# print('call received')
|
||||||
|
# return QVariant({"abc": "def", "ab": 22})
|
||||||
|
|
||||||
|
# # take an argument from javascript - JS: handler.test1('hello!')
|
||||||
|
# @pyqtSlot(QVariant, result=QVariant)
|
||||||
|
# def test1(self, args):
|
||||||
|
# print('i got')
|
||||||
|
# print(args)
|
||||||
|
# return "ok"
|
||||||
|
|
||||||
|
# class WebView(QWebEngineView):
|
||||||
|
|
||||||
|
# def __init__(self):
|
||||||
|
# super(WebView, self).__init__()
|
||||||
|
|
||||||
|
# self.channel = QWebChannel()
|
||||||
|
# self.handler = CallHandler()
|
||||||
|
# self.channel.registerObject('handler', self.handler)
|
||||||
|
# self.page().setWebChannel(self.channel)
|
||||||
|
|
||||||
|
# file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "test.html"))
|
||||||
|
# local_url = QUrl.fromLocalFile(file_path)
|
||||||
|
|
||||||
|
# self.load(local_url)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# if __name__ == "__main__":
|
||||||
|
# app = QApplication([])
|
||||||
|
# view = WebView()
|
||||||
|
# view.show()
|
||||||
|
# app.exec_()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# from bokeh.plotting import figure, show
|
||||||
|
|
||||||
|
# # prepare some data
|
||||||
|
# x = [1, 2, 3, 4, 5]
|
||||||
|
# y = [6, 7, 2, 4, 5]
|
||||||
|
|
||||||
|
# # create a new plot with a title and axis labels
|
||||||
|
# p = figure(title="Simple line example", x_axis_label="x", y_axis_label="y")
|
||||||
|
|
||||||
|
# # add a line renderer with legend and line thickness
|
||||||
|
# p.line(x, y, legend_label="Temp.", line_width=2)
|
||||||
|
|
||||||
|
# # show the results
|
||||||
|
# show(p)
|
||||||
|
|
||||||
|
# import sys
|
||||||
|
# from pathlib import Path
|
||||||
|
|
||||||
|
# from PyQt5 import QAxContainer
|
||||||
|
# from PyQt5.QtCore import Qt
|
||||||
|
# from PyQt5.QtWidgets import QWidget, QVBoxLayout, QPushButton, QLineEdit, QApplication
|
||||||
|
|
||||||
|
# import sys
|
||||||
|
# from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
|
||||||
|
# from PyQt5.QtWebEngineWidgets import QWebEngineView
|
||||||
|
# from PyQt5.QtCore import pyqtSlot
|
||||||
|
|
||||||
|
# from bokeh.layouts import column
|
||||||
|
# from bokeh.models import ColumnDataSource, CustomJS, Slider
|
||||||
|
# from bokeh.plotting import Figure, output_file
|
||||||
|
# from bokeh.embed import file_html
|
||||||
|
# from bokeh.resources import CDN
|
||||||
|
|
||||||
|
# class App(QWidget):
|
||||||
|
|
||||||
|
# def __init__(self):
|
||||||
|
# super().__init__()
|
||||||
|
# self.resize(500, 500)
|
||||||
|
# self.initUI()
|
||||||
|
|
||||||
|
# def initUI(self):
|
||||||
|
# button = QPushButton('start', self)
|
||||||
|
# button.move(100, 70)
|
||||||
|
# button.clicked.connect(self.on_click)
|
||||||
|
# self.layout = QVBoxLayout()
|
||||||
|
# self.layout1 = QVBoxLayout()
|
||||||
|
# self.layout1.addWidget(button)
|
||||||
|
|
||||||
|
# self.layout2 = QVBoxLayout()
|
||||||
|
# self.layout.addLayout(self.layout1)
|
||||||
|
# self.layout.addLayout(self.layout2)
|
||||||
|
# self.setLayout(self.layout)
|
||||||
|
|
||||||
|
|
||||||
|
# self.show()
|
||||||
|
|
||||||
|
# @pyqtSlot()
|
||||||
|
# def on_click(self):
|
||||||
|
# print('PyQt5 button click')
|
||||||
|
# self.m_output = QWebEngineView()
|
||||||
|
# self.layout2.addWidget(self.m_output)
|
||||||
|
# #html_file = self.bokeh_function()
|
||||||
|
# html_file = self.test_html()
|
||||||
|
# self.m_output.setHtml(html_file)
|
||||||
|
# self.m_output.show()
|
||||||
|
|
||||||
|
|
||||||
|
# def bokeh_function(self):
|
||||||
|
# # taken from https://docs.bokeh.org/en/latest/docs/user_guide/interaction/callbacks.html
|
||||||
|
# output_file("js_on_change.html")
|
||||||
|
|
||||||
|
# x = [x * 0.005 for x in range(0, 200)]
|
||||||
|
# y = x
|
||||||
|
|
||||||
|
# source = ColumnDataSource(data=dict(x=x, y=y))
|
||||||
|
|
||||||
|
# plot = Figure(width=400, height=400)
|
||||||
|
# plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)
|
||||||
|
|
||||||
|
# callback = CustomJS(args=dict(source=source), code="""
|
||||||
|
# const data = source.data;
|
||||||
|
# const f = cb_obj.value
|
||||||
|
# const x = data['x']
|
||||||
|
# const y = data['y']
|
||||||
|
# for (let i = 0; i < x.length; i++) {
|
||||||
|
# y[i] = Math.pow(x[i], f)
|
||||||
|
# }
|
||||||
|
# source.change.emit();
|
||||||
|
# """)
|
||||||
|
|
||||||
|
# slider = Slider(start=0.1, end=4, value=1, step=.1, title="power")
|
||||||
|
# slider.js_on_change('value', callback)
|
||||||
|
|
||||||
|
# layout = column(slider, plot)
|
||||||
|
# html = file_html(layout, CDN, "my plot")
|
||||||
|
# return html
|
||||||
|
|
||||||
|
# def test_html(self):
|
||||||
|
# html = '<html><head><meta charset="utf-8" />'
|
||||||
|
# html += '<script src="{}"></script></head>'
|
||||||
|
# html += '<body>'
|
||||||
|
# #html += plotly.offline.plot(fig, include_plotlyjs=False, output_type='div')
|
||||||
|
# html += 'Hi there!'
|
||||||
|
# html += '</body></html>'
|
||||||
|
# return html
|
||||||
|
|
||||||
|
|
||||||
|
# if __name__ == '__main__':
|
||||||
|
# app = QApplication(sys.argv)
|
||||||
|
# ex = App()
|
||||||
|
# sys.exit(app.exec_())
|
||||||
38
systemHtml.py
Normal file
38
systemHtml.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
from PyQt5.QtCore import QUrl
|
||||||
|
from PyQt5.QtWidgets import QMainWindow, QApplication
|
||||||
|
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
|
||||||
|
from PyQt5.QtGui import QDesktopServices
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class CustomWebEnginePage(QWebEnginePage):
|
||||||
|
""" Custom WebEnginePage to customize how we handle link navigation """
|
||||||
|
# Store external windows.
|
||||||
|
external_windows = []
|
||||||
|
|
||||||
|
def acceptNavigationRequest(self, url, _type, isMainFrame):
|
||||||
|
if (_type == QWebEnginePage.NavigationTypeLinkClicked and
|
||||||
|
url.host() != 'next.jefro.de'):
|
||||||
|
# Send the URL to the system default URL handler.
|
||||||
|
QDesktopServices.openUrl(url)
|
||||||
|
return False
|
||||||
|
return super().acceptNavigationRequest(url, _type, isMainFrame)
|
||||||
|
|
||||||
|
|
||||||
|
class MainWindow(QMainWindow):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(MainWindow, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
self.browser = QWebEngineView()
|
||||||
|
self.browser.setPage(CustomWebEnginePage(self))
|
||||||
|
self.browser.setUrl(QUrl("https://next.jefro.de/"))
|
||||||
|
self.setCentralWidget(self.browser)
|
||||||
|
|
||||||
|
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
window = MainWindow()
|
||||||
|
window.show()
|
||||||
|
|
||||||
|
app.exec_()
|
||||||
21
test_settings.txt
Normal file
21
test_settings.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
File name: /Users/sinabooeshaghi/Dropbox (Personal)/Caltech/Research/Syringe Pump/poseidon/SOFTWARE/test_settings.txt
|
||||||
|
Date time: 2018-12-03 15_39_08
|
||||||
|
:================================
|
||||||
|
P1 Syrin: BD 60 mL
|
||||||
|
P1 Units: ml/s
|
||||||
|
P1 Speed: 0.02
|
||||||
|
P1 Accel: 5.0
|
||||||
|
P1 Jog D: 1.0
|
||||||
|
:================================
|
||||||
|
P2 Syrin: BD 60 mL
|
||||||
|
P2 Units: ml/s
|
||||||
|
P2 Speed: 0.02
|
||||||
|
P2 Accel: 5.0
|
||||||
|
P2 Jog D: 1.0
|
||||||
|
:================================
|
||||||
|
P3 Syrin: BD 60 mL
|
||||||
|
P3 Units: ml/s
|
||||||
|
P3 Speed: 0.02
|
||||||
|
P3 Accel: 5.0
|
||||||
|
P3 Jog D: 1.0
|
||||||
|
Exp Note:
|
||||||
Loading…
Reference in New Issue
Block a user