Work on client
This commit is contained in:
parent
4678656e0f
commit
e596c12a7b
BIN
datasheets/MCP3204.pdf
Normal file
BIN
datasheets/MCP3204.pdf
Normal file
Binary file not shown.
BIN
datasheets/Variable phase shifter_01202.pdf
Normal file
BIN
datasheets/Variable phase shifter_01202.pdf
Normal file
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
|
||||
*** These modified files were found in JOE when it aborted on Tue Aug 9 19:43:11 2022
|
||||
*** JOE was aborted because the terminal closed
|
||||
|
||||
*** File '(Unnamed)'
|
||||
_registerAcc
|
||||
spi_write
|
||||
@ -113,6 +113,9 @@ class PID:
|
||||
|
||||
def setOutmax(self,outMax):
|
||||
self.outMax = outMax
|
||||
|
||||
def setOutmin(self,outMin):
|
||||
self.outMin = outMin
|
||||
|
||||
def getSetpoint(self):
|
||||
return self.setpoint
|
||||
@ -186,6 +189,9 @@ def run(pid_obj, freq, num):
|
||||
elif msg[0] == 'set_outmax':
|
||||
pid_obj.setOutmax(msg[1])
|
||||
server.send_string('ACK')
|
||||
elif msg[0] == 'set_outmin':
|
||||
pid_obj.setOutmin(msg[1])
|
||||
server.send_string('ACK')
|
||||
elif msg[0] == 'get_setpoint':
|
||||
#out_queue.put(pid_obj.getSetpoint() )
|
||||
server.send_string(str(pid_obj.getSetpoint()))
|
||||
|
||||
@ -86,6 +86,11 @@ def clientthread(conn):
|
||||
pidclient[tmp[2]].send_string('set_outmax\t%f' % tmp[3])
|
||||
pidclient[tmp[2]].recv_string()
|
||||
TCP.send_msg(conn, 'I set maximal output voltage for output {:.0f} to {: f}'.format(tmp[2],tmp[3]))
|
||||
elif tmp[1] == 'SET_OUTMIN':
|
||||
#out_queue[tmp[2]].put(['set_outmax',tmp[3]])
|
||||
pidclient[tmp[2]].send_string('set_outmin\t%f' % tmp[3])
|
||||
pidclient[tmp[2]].recv_string()
|
||||
TCP.send_msg(conn, 'I set minimal output voltage for output {:.0f} to {: f}'.format(tmp[2],tmp[3]))
|
||||
elif tmp[1] == 'GET_SETPOINT':
|
||||
#out_queue[tmp[2]].put(['get_setpoint'])
|
||||
pidclient[tmp[2]].send_string('get_setpoint')
|
||||
|
||||
@ -2,30 +2,27 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'channel.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.14.1
|
||||
# Created by: PyQt5 UI code generator 5.10.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName("Form")
|
||||
Form.resize(846, 423)
|
||||
Form.resize(846, 421)
|
||||
self.gridLayout = QtWidgets.QGridLayout(Form)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout.addItem(spacerItem, 6, 1, 1, 1)
|
||||
self.label = QtWidgets.QLabel(Form)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(Form)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
self.gridLayout.addItem(spacerItem1, 7, 1, 1, 1)
|
||||
self.kpBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
self.kpBox.setMinimum(-99.0)
|
||||
self.kpBox.setSingleStep(0.01)
|
||||
self.kpBox.setProperty("value", 1.0)
|
||||
self.kpBox.setObjectName("kpBox")
|
||||
self.gridLayout.addWidget(self.kpBox, 1, 1, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(Form)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1)
|
||||
self.PIDenableButton = QtWidgets.QPushButton(Form)
|
||||
self.PIDenableButton.setStyleSheet("background-color: rgb(255,0,0)")
|
||||
self.PIDenableButton.setCheckable(True)
|
||||
@ -37,35 +34,20 @@ class Ui_Form(object):
|
||||
self.setpointBox.setProperty("value", 22.0)
|
||||
self.setpointBox.setObjectName("setpointBox")
|
||||
self.gridLayout.addWidget(self.setpointBox, 0, 1, 1, 1)
|
||||
self.label_3 = QtWidgets.QLabel(Form)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
|
||||
self.label = QtWidgets.QLabel(Form)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
|
||||
spacerItem = QtWidgets.QSpacerItem(0, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout.addItem(spacerItem, 6, 1, 1, 1)
|
||||
self.kdBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
self.kdBox.setMinimum(-99.0)
|
||||
self.kdBox.setSingleStep(0.01)
|
||||
self.kdBox.setProperty("value", 1.0)
|
||||
self.kdBox.setObjectName("kdBox")
|
||||
self.gridLayout.addWidget(self.kdBox, 3, 1, 1, 1)
|
||||
self.outputBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.outputBox.sizePolicy().hasHeightForWidth())
|
||||
self.outputBox.setSizePolicy(sizePolicy)
|
||||
self.outputBox.setMaximumSize(QtCore.QSize(100, 16777215))
|
||||
self.outputBox.setDecimals(3)
|
||||
self.outputBox.setSingleStep(0.01)
|
||||
self.outputBox.setObjectName("outputBox")
|
||||
self.gridLayout.addWidget(self.outputBox, 5, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(Form)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1)
|
||||
self.kpBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
self.kpBox.setMinimum(-99.0)
|
||||
self.kpBox.setSingleStep(0.01)
|
||||
self.kpBox.setProperty("value", 1.0)
|
||||
self.kpBox.setObjectName("kpBox")
|
||||
self.gridLayout.addWidget(self.kpBox, 1, 1, 1, 1)
|
||||
self.label_3 = QtWidgets.QLabel(Form)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
|
||||
self.OutputButton = QtWidgets.QPushButton(Form)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@ -75,6 +57,22 @@ class Ui_Form(object):
|
||||
self.OutputButton.setMaximumSize(QtCore.QSize(100, 16777215))
|
||||
self.OutputButton.setObjectName("OutputButton")
|
||||
self.gridLayout.addWidget(self.OutputButton, 5, 1, 1, 1)
|
||||
self.outputBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.outputBox.sizePolicy().hasHeightForWidth())
|
||||
self.outputBox.setSizePolicy(sizePolicy)
|
||||
self.outputBox.setMaximumSize(QtCore.QSize(100, 16777215))
|
||||
self.outputBox.setDecimals(3)
|
||||
self.outputBox.setMinimum(0.0)
|
||||
self.outputBox.setMaximum(5.0)
|
||||
self.outputBox.setSingleStep(0.01)
|
||||
self.outputBox.setObjectName("outputBox")
|
||||
self.gridLayout.addWidget(self.outputBox, 5, 0, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(Form)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
|
||||
self.kiBox = QtWidgets.QDoubleSpinBox(Form)
|
||||
self.kiBox.setMinimum(-99.0)
|
||||
self.kiBox.setSingleStep(0.01)
|
||||
@ -99,8 +97,59 @@ class Ui_Form(object):
|
||||
self.widget_4.setObjectName("widget_4")
|
||||
self.output_layout = QtWidgets.QHBoxLayout(self.widget_4)
|
||||
self.output_layout.setObjectName("output_layout")
|
||||
self.gridLayout_2.addWidget(self.widget_4, 1, 0, 1, 2)
|
||||
self.gridLayout_2.addWidget(self.widget_4, 1, 1, 1, 1)
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.widget)
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_3)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_3)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_4.addWidget(self.label_5, 1, 0, 1, 1)
|
||||
self.zeroVoltage = QtWidgets.QDoubleSpinBox(self.groupBox_3)
|
||||
self.zeroVoltage.setMinimum(-5.0)
|
||||
self.zeroVoltage.setMaximum(5.0)
|
||||
self.zeroVoltage.setSingleStep(0.1)
|
||||
self.zeroVoltage.setProperty("value", 1.29)
|
||||
self.zeroVoltage.setObjectName("zeroVoltage")
|
||||
self.gridLayout_4.addWidget(self.zeroVoltage, 2, 0, 1, 1)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_4.addItem(spacerItem1, 3, 0, 1, 1)
|
||||
self.peltierCheckBox = QtWidgets.QCheckBox(self.groupBox_3)
|
||||
self.peltierCheckBox.setObjectName("peltierCheckBox")
|
||||
self.gridLayout_4.addWidget(self.peltierCheckBox, 0, 0, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.groupBox_3, 1, 0, 1, 1)
|
||||
self.gridLayout.addWidget(self.widget, 0, 2, 8, 1)
|
||||
self.groupBox = QtWidgets.QGroupBox(Form)
|
||||
self.groupBox.setMinimumSize(QtCore.QSize(0, 160))
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.doubleSpinBox_3 = QtWidgets.QDoubleSpinBox(self.groupBox)
|
||||
self.doubleSpinBox_3.setObjectName("doubleSpinBox_3")
|
||||
self.gridLayout_3.addWidget(self.doubleSpinBox_3, 3, 0, 1, 1)
|
||||
self.currentBox = QtWidgets.QDoubleSpinBox(self.groupBox)
|
||||
self.currentBox.setPrefix("")
|
||||
self.currentBox.setSingleStep(0.1)
|
||||
self.currentBox.setObjectName("currentBox")
|
||||
self.gridLayout_3.addWidget(self.currentBox, 0, 0, 1, 1)
|
||||
self.CurrentButton = QtWidgets.QPushButton(self.groupBox)
|
||||
self.CurrentButton.setObjectName("CurrentButton")
|
||||
self.gridLayout_3.addWidget(self.CurrentButton, 0, 1, 1, 1)
|
||||
self.PhaseButton = QtWidgets.QPushButton(self.groupBox)
|
||||
self.PhaseButton.setObjectName("PhaseButton")
|
||||
self.gridLayout_3.addWidget(self.PhaseButton, 3, 1, 1, 1)
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.factorBox = QtWidgets.QDoubleSpinBox(self.groupBox_2)
|
||||
self.factorBox.setObjectName("factorBox")
|
||||
self.horizontalLayout.addWidget(self.factorBox)
|
||||
self.FactorButton = QtWidgets.QPushButton(self.groupBox_2)
|
||||
self.FactorButton.setObjectName("FactorButton")
|
||||
self.horizontalLayout.addWidget(self.FactorButton)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 1, 0, 1, 2)
|
||||
self.gridLayout.addWidget(self.groupBox, 7, 0, 1, 2)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
@ -108,9 +157,22 @@ class Ui_Form(object):
|
||||
def retranslateUi(self, Form):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Form.setWindowTitle(_translate("Form", "Form"))
|
||||
self.label.setText(_translate("Form", "kp"))
|
||||
self.label_2.setText(_translate("Form", "ki"))
|
||||
self.PIDenableButton.setText(_translate("Form", "PID enable"))
|
||||
self.label_4.setText(_translate("Form", "Setpoint (°C)"))
|
||||
self.PIDenableButton.setText(_translate("Form", "PID enable"))
|
||||
self.label_3.setText(_translate("Form", "kd"))
|
||||
self.label.setText(_translate("Form", "kp"))
|
||||
self.OutputButton.setText(_translate("Form", "Set output"))
|
||||
self.outputBox.setSuffix(_translate("Form", " V"))
|
||||
self.label_2.setText(_translate("Form", "ki"))
|
||||
self.groupBox_3.setTitle(_translate("Form", "Parameter"))
|
||||
self.label_5.setText(_translate("Form", "Zero voltage"))
|
||||
self.zeroVoltage.setSuffix(_translate("Form", " V"))
|
||||
self.peltierCheckBox.setText(_translate("Form", "Peltier? (allow negativ voltages)"))
|
||||
self.groupBox.setTitle(_translate("Form", "U-I-Wandler"))
|
||||
self.doubleSpinBox_3.setSuffix(_translate("Form", " °"))
|
||||
self.currentBox.setSuffix(_translate("Form", " mA"))
|
||||
self.CurrentButton.setText(_translate("Form", "Set current"))
|
||||
self.PhaseButton.setText(_translate("Form", "Set phase"))
|
||||
self.groupBox_2.setTitle(_translate("Form", "Current-phase factor:"))
|
||||
self.FactorButton.setText(_translate("Form", "Set factor"))
|
||||
|
||||
|
||||
@ -7,59 +7,33 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>846</width>
|
||||
<height>423</height>
|
||||
<height>421</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="6" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="kpBox">
|
||||
<property name="minimum">
|
||||
<double>-99.000000000000000</double>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>kp</string>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>ki</string>
|
||||
<string>Setpoint (°C)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Preferred</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="PIDenableButton">
|
||||
<property name="styleSheet">
|
||||
@ -86,6 +60,36 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>kd</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>kp</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QDoubleSpinBox" name="kdBox">
|
||||
<property name="minimum">
|
||||
@ -99,55 +103,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QDoubleSpinBox" name="outputBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Setpoint (°C)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="kpBox">
|
||||
<property name="minimum">
|
||||
<double>-99.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>kd</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QPushButton" name="OutputButton">
|
||||
<property name="sizePolicy">
|
||||
@ -167,6 +122,44 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QDoubleSpinBox" name="outputBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> V</string>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>5.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>ki</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="kiBox">
|
||||
<property name="minimum">
|
||||
@ -193,11 +186,134 @@
|
||||
<layout class="QHBoxLayout" name="error_layout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="1" column="1">
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QHBoxLayout" name="output_layout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Parameter</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Zero voltage</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QDoubleSpinBox" name="zeroVoltage">
|
||||
<property name="suffix">
|
||||
<string> V</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>-5.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>5.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.290000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="peltierCheckBox">
|
||||
<property name="text">
|
||||
<string>Peltier? (allow negativ voltages)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>160</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>U-I-Wandler</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="3" column="0">
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_3">
|
||||
<property name="suffix">
|
||||
<string> °</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QDoubleSpinBox" name="currentBox">
|
||||
<property name="prefix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> mA</string>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="CurrentButton">
|
||||
<property name="text">
|
||||
<string>Set current</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="PhaseButton">
|
||||
<property name="text">
|
||||
<string>Set phase</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Current-phase factor:</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="factorBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="FactorButton">
|
||||
<property name="text">
|
||||
<string>Set factor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@ -10,10 +10,11 @@ import globalvars
|
||||
from channelInfoWidgetClass import channelInfoWidget
|
||||
|
||||
class channelInfo(QObject):
|
||||
def __init__(self, channel_num, temp_field, out_field, enable_field, tabnumber, activTabWidget, parent):
|
||||
def __init__(self, device_num, channel_num, temp_field, out_field, enable_field, tabnumber, activTabWidget, parent):
|
||||
super(channelInfo,self).__init__(parent)
|
||||
self.widget_obj = channelInfoWidget(self)
|
||||
self.channel_num = channel_num
|
||||
self.device_num = device_num
|
||||
|
||||
self.temp_field = temp_field
|
||||
self.out_field = out_field
|
||||
@ -38,12 +39,16 @@ class channelInfo(QObject):
|
||||
self.widget_obj.kdBox.valueChanged.connect(self.kdChanged)
|
||||
self.widget_obj.PIDenableButton.clicked.connect(self.PIDenableButtonChanged)
|
||||
self.widget_obj.OutputButton.clicked.connect(self.OutputButtonChanged)
|
||||
|
||||
self.widget_obj.peltierCheckBox.stateChanged.connect(self.heaterTypeChanged)
|
||||
|
||||
self.widget_obj.CurrentButton.clicked.connect(self.CurrentButtonChanged)
|
||||
self.widget_obj.PhaseButton.clicked.connect(self.PhaseButton)
|
||||
|
||||
def update(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tGET_RUN_VALUES\t'+str(self.channel_num)+'\t')
|
||||
msg = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tGET_RUN_VALUES\t'+str(self.channel_num)+'\t')
|
||||
msg = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
|
||||
#ans = str2num(msg)
|
||||
try:
|
||||
@ -70,86 +75,114 @@ class channelInfo(QObject):
|
||||
|
||||
|
||||
def setpointChanged(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tSET_SETPOINT\t'+str(self.channel_num)+'\t'+str(self.widget_obj.setpointBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_SETPOINT\t'+str(self.channel_num)+'\t'+str(self.widget_obj.setpointBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
globalvars.settings["ch{0}".format(self.channel_num)]["setpoint"] = self.widget_obj.setpointBox.value()
|
||||
|
||||
def kpChanged(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tSET_KP\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kpBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_KP\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kpBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
globalvars.settings["ch{0}".format(self.channel_num)]["kp"] = self.widget_obj.kpBox.value()
|
||||
|
||||
def kiChanged(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tSET_KI\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kiBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_KI\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kiBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
globalvars.settings["ch{0}".format(self.channel_num)]["ki"] = self.widget_obj.kiBox.value()
|
||||
|
||||
def kdChanged(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tSET_KD\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kdBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_KD\t'+str(self.channel_num)+'\t'+str(self.widget_obj.kdBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
globalvars.settings["ch{0}".format(self.channel_num)]["kd"] = self.widget_obj.kdBox.value()
|
||||
print(ans)
|
||||
|
||||
def PIDenableButtonChanged(self):
|
||||
if globalvars.conStatus:
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
if self.widget_obj.PIDenableButton.isChecked():
|
||||
self.widget_obj.PIDenableButton.setStyleSheet("background-color: rgb(0,255,0)")
|
||||
self.widget_obj.OutputButton.setEnabled(False)
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tLOCK\t'+str(self.channel_num)+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tLOCK\t'+str(self.channel_num)+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
self.enable_field.setStyleSheet("background-color: rgb(0,255,0)")
|
||||
else:
|
||||
self.widget_obj.PIDenableButton.setStyleSheet("background-color: rgb(255,0,0)")
|
||||
self.widget_obj.OutputButton.setEnabled(True)
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tIDLE\t'+str(self.channel_num)+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tIDLE\t'+str(self.channel_num)+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
self.enable_field.setStyleSheet("background-color: rgb(255,0,0)")
|
||||
else:
|
||||
self.widget_obj.PIDenableButton.setChecked(False)
|
||||
|
||||
def OutputButtonChanged(self):
|
||||
if globalvars.conStatus:
|
||||
TCP.send_cmd(globalvars.sock, 'CMD:\tSET_VOLTAGE\t'+str(self.channel_num)+'\t'+str(self.widget_obj.outputBox.value())+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock)
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
setVoltage = self.widget_obj.zeroVoltage.value()/5 * self.widget_obj.outputBox.value() + self.widget_obj.zeroVoltage.value()
|
||||
#setVoltage = self.widget_obj.outputBox.value()
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_VOLTAGE\t'+str(1)+'\t'+str(setVoltage)+'\t')
|
||||
ans = TCP.recv_msg(globalvars.sock[self.device_num])
|
||||
print(ans)
|
||||
|
||||
def CurrentButtonChanged(self):
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
setVoltage = 3*self.widget_obj.currentBox.value()/65
|
||||
#setVoltage = self.widget_obj.outputBox.value()
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_VOLTAGE\t'+str(0)+'\t'+str(setVoltage)+'\t')
|
||||
|
||||
def PhaseButtonChanged(self):
|
||||
if globalvars.conStatus[self.device_num]:
|
||||
setVoltage = self.widget_obj.phaseBox.value() * self.widget_obj.factorBox.value() * 3/65
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_VOLTAGE\t'+str(0)+'\t'+str(setVoltage)+'\t')
|
||||
|
||||
|
||||
def heaterTypeChanged(self):
|
||||
if self.widget_obj.peltierCheckBox.isChecked():
|
||||
self.widget_obj.outputBox.setMinimum(-5)
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_OUTMAX\t'+str(0)+'\t'+str(3)+'\t')
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_OUTMIN\t'+str(0)+'\t'+str(0)+'\t')
|
||||
|
||||
else:
|
||||
self.widget_obj.outputBox.setMinimum(0)
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_OUTMAX\t'+str(0)+'\t'+str(3)+'\t')
|
||||
TCP.send_cmd(globalvars.sock[self.device_num], 'CMD:\tSET_OUTMIN\t'+str(0)+'\t'+str(self.widget_obj.zeroVoltage.value())+'\t')
|
||||
|
||||
def setEnabled(self, val):
|
||||
self.widget_obj.setEnabled(val)
|
||||
|
||||
def loadSettings(self):
|
||||
if globalvars.remoteSettings:
|
||||
TCP.send_cmd(globalvars.sock,"CMD:\tGET_SETPOINT\t{0}\t".format(self.channel_num))
|
||||
setpoint = float(TCP.recv_msg(globalvars.sock))
|
||||
if globalvars.remoteSettings[self.device_num]:
|
||||
TCP.send_cmd(globalvars.sock[self.device_num],"CMD:\tGET_SETPOINT\t{0}\t".format(self.channel_num))
|
||||
setpoint = float(TCP.recv_msg(globalvars.sock[self.device_num]))
|
||||
self.widget_obj.setpointBox.blockSignals(True)
|
||||
self.widget_obj.setpointBox.setValue(setpoint)
|
||||
self.widget_obj.setpointBox.blockSignals(False)
|
||||
|
||||
TCP.send_cmd(globalvars.sock,"CMD:\tGET_KP\t{0}\t".format(self.channel_num))
|
||||
kp = float(TCP.recv_msg(globalvars.sock))
|
||||
TCP.send_cmd(globalvars.sock[self.device_num],"CMD:\tGET_KP\t{0}\t".format(self.channel_num))
|
||||
kp = float(TCP.recv_msg(globalvars.sock[self.device_num]))
|
||||
self.widget_obj.kpBox.blockSignals(True)
|
||||
self.widget_obj.kpBox.setValue(kp)
|
||||
self.widget_obj.kpBox.blockSignals(False)
|
||||
|
||||
TCP.send_cmd(globalvars.sock,"CMD:\tGET_KI\t{0}\t".format(self.channel_num))
|
||||
ki = float(TCP.recv_msg(globalvars.sock))
|
||||
TCP.send_cmd(globalvars.sock[self.device_num],"CMD:\tGET_KI\t{0}\t".format(self.channel_num))
|
||||
ki = float(TCP.recv_msg(globalvars.sock[self.device_num]))
|
||||
self.widget_obj.kiBox.blockSignals(True)
|
||||
self.widget_obj.kiBox.setValue(ki)
|
||||
self.widget_obj.kiBox.blockSignals(False)
|
||||
|
||||
TCP.send_cmd(globalvars.sock,"CMD:\tGET_KD\t{0}\t".format(self.channel_num))
|
||||
kd = float(TCP.recv_msg(globalvars.sock))
|
||||
TCP.send_cmd(globalvars.sock[self.device_num],"CMD:\tGET_KD\t{0}\t".format(self.channel_num))
|
||||
kd = float(TCP.recv_msg(globalvars.sock[self.device_num]))
|
||||
self.widget_obj.kdBox.blockSignals(True)
|
||||
self.widget_obj.kdBox.setValue(kd)
|
||||
self.widget_obj.kdBox.blockSignals(False)
|
||||
|
||||
TCP.send_cmd(globalvars.sock,"CMD:\tGET_PID_STATUS\t{0}\t".format(self.channel_num))
|
||||
enabled = int(TCP.recv_msg(globalvars.sock))
|
||||
TCP.send_cmd(globalvars.sock[self.device_num],"CMD:\tGET_PID_STATUS\t{0}\t".format(self.channel_num))
|
||||
enabled = int(TCP.recv_msg(globalvars.sock[self.device_num]))
|
||||
print(enabled)
|
||||
self.widget_obj.PIDenableButton.setChecked(enabled)
|
||||
if self.widget_obj.PIDenableButton.isChecked():
|
||||
@ -163,8 +196,11 @@ class channelInfo(QObject):
|
||||
|
||||
else:
|
||||
#Set settings from file and trigger sending to server
|
||||
self.widget_obj.setpointBox.setValue(float(globalvars.settings["ch{0}".format(self.channel_num)]["setpoint"]))
|
||||
self.widget_obj.kpBox.setValue(float(globalvars.settings["ch{0}".format(self.channel_num)]["kp"]))
|
||||
self.widget_obj.kiBox.setValue(float(globalvars.settings["ch{0}".format(self.channel_num)]["ki"]))
|
||||
self.widget_obj.kdBox.setValue(float(globalvars.settings["ch{0}".format(self.channel_num)]["kd"]))
|
||||
self.widget_obj.PIDenableButton.setChecked(bool(globalvars.settings["ch{0}".format(self.channel_num)]["PIDenabled"]))
|
||||
self.widget_obj.setpointBox.setValue(float(globalvars.settings["ch{0}".format(self.device_num)]["setpoint"]))
|
||||
self.widget_obj.kpBox.setValue(float(globalvars.settings["ch{0}".format(self.device_num)]["kp"]))
|
||||
self.widget_obj.kiBox.setValue(float(globalvars.settings["ch{0}".format(self.device_num)]["ki"]))
|
||||
self.widget_obj.kdBox.setValue(float(globalvars.settings["ch{0}".format(self.device_num)]["kd"]))
|
||||
self.widget_obj.PIDenableButton.setChecked(bool(globalvars.settings["ch{0}".format(self.device_num)]["PIDenabled"]))
|
||||
|
||||
self.widget_obj.peltierCheckBox.setChecked(bool(globalvars.settings["ch{0}".format(self.device_num)]["peltier"]))
|
||||
self.widget_obj.zeroVoltage.setValue(float(globalvars.settings["ch{0}".format(self.device_num)]["zeroVolt"]))
|
||||
|
||||
@ -44,26 +44,34 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
def __init__(self, ):
|
||||
QMainWindow.__init__(self)
|
||||
self.setupUi(self)
|
||||
|
||||
self.sock = None
|
||||
self.address = ''
|
||||
self.port = 0
|
||||
|
||||
self.sock2 = None
|
||||
self.address2 = ''
|
||||
self.port2 = 0
|
||||
|
||||
self.tcpqueue = queue.Queue(100)
|
||||
|
||||
self.channel = [0]
|
||||
self.channel = [0,0]
|
||||
|
||||
temp_field = [self.temp_ch0]
|
||||
out_field = [self.out_ch0]
|
||||
enable_field = [self.enable_ch0]
|
||||
temp_field = [self.temp_ch0, self.temp_ch1]
|
||||
out_field = [self.out_ch0, self.out_ch1]
|
||||
enable_field = [self.enable_ch0, self.enable_ch1]
|
||||
|
||||
#Open json settings file defined in globalvars
|
||||
self.loadSettingsFile(globalvars.settingsFile)
|
||||
|
||||
for ch in range(len(self.channel)):
|
||||
self.channel[ch] = channelInfo(ch,temp_field[ch],out_field[ch],enable_field[ch], ch, self.tabWidget ,self)
|
||||
self.channel[ch] = channelInfo(ch,0,temp_field[ch],out_field[ch],enable_field[ch], ch, self.tabWidget ,self)
|
||||
self.channel[ch].setEnabled(False)
|
||||
|
||||
self.layout_ch0.addWidget(self.channel[0].widget_obj)
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_0),globalvars.settings["ch0"]["name"])
|
||||
#self.layout_ch1.addWidget(self.channel[1].widget_obj)
|
||||
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_1),globalvars.settings["ch1"]["name"])
|
||||
self.layout_ch1.addWidget(self.channel[1].widget_obj)
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_1),globalvars.settings["ch1"]["name"])
|
||||
#self.layout_ch2.addWidget(self.channel[2].widget_obj)
|
||||
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2),globalvars.settings["ch2"]["name"])
|
||||
#self.layout_ch3.addWidget(self.channel[3].widget_obj)
|
||||
@ -71,15 +79,22 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
self.ip_address.setText(globalvars.settings["defaultIP"])
|
||||
self.portField.setText(str(globalvars.settings["defaultPort"]))
|
||||
|
||||
self.ip_address2.setText(globalvars.settings["defaultIP2"])
|
||||
self.portField2.setText(str(globalvars.settings["defaultPort2"]))
|
||||
|
||||
#Connect radio buttons to functions
|
||||
self.remoteRadioButton.toggled.connect(lambda:self.settingsSelection(self.remoteRadioButton))
|
||||
self.localRadioButton.toggled.connect(lambda:self.settingsSelection(self.localRadioButton))
|
||||
|
||||
self.remoteRadioButton2.toggled.connect(lambda:self.settingsSelection2(self.remoteRadioButton2))
|
||||
self.localRadioButton2.toggled.connect(lambda:self.settingsSelection2(self.localRadioButton2))
|
||||
|
||||
# Close event to save settings
|
||||
app.aboutToQuit.connect(self.closeEvent)
|
||||
# Button functions
|
||||
self.connectButton.clicked.connect(self.connectButtonChange)
|
||||
self.connectButton2.clicked.connect(self.connectButton2Change)
|
||||
|
||||
self.refresh_timer = QTimer()
|
||||
self.refresh_timer.timeout.connect(self.refresh)
|
||||
@ -95,7 +110,7 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
self.sock.connect((self.address,int(self.port)))
|
||||
except Exception as e:
|
||||
print("something's wrong with %s:%s. Exception is %s" % (self.address, self.port, e))
|
||||
globalvars.conStatus = False
|
||||
globalvars.conStatus[0] = False
|
||||
self.connectButton.setChecked(False)
|
||||
return
|
||||
|
||||
@ -103,32 +118,75 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
data_recv = self.sock.recv(1024)
|
||||
print(data_recv.decode())
|
||||
except OSError:
|
||||
globalvars.conStatus = False
|
||||
globalvars.conStatus[0] = False
|
||||
self.connectButton.setChecked(False)
|
||||
print('\nSocket broken')
|
||||
return
|
||||
|
||||
globalvars.conStatus = True
|
||||
globalvars.sock = self.sock
|
||||
globalvars.conStatus[0] = True
|
||||
globalvars.sock[0] = self.sock
|
||||
print("connect to "+ self.address)
|
||||
|
||||
for ch in range(len(self.channel)):
|
||||
self.channel[ch].loadSettings()
|
||||
|
||||
self.channel[0].loadSettings()
|
||||
|
||||
self.refresh_timer.start(500)
|
||||
|
||||
else:
|
||||
globalvars.conStatus = False
|
||||
globalvars.conStatus[0] = False
|
||||
self.refresh_timer.stop()
|
||||
time.sleep(0.1)
|
||||
print("disconnect from "+ self.address)
|
||||
self.sock.close()
|
||||
|
||||
for ch in range(len(self.channel)):
|
||||
self.channel[ch].setEnabled(globalvars.conStatus)
|
||||
self.channel[0].setEnabled(globalvars.conStatus[0])
|
||||
|
||||
self.remoteRadioButton.setEnabled(not globalvars.conStatus)
|
||||
self.localRadioButton.setEnabled(not globalvars.conStatus)
|
||||
self.remoteRadioButton.setEnabled(not globalvars.conStatus[0])
|
||||
self.localRadioButton.setEnabled(not globalvars.conStatus[0])
|
||||
|
||||
def connectButton2Change(self):
|
||||
if self.connectButton2.isChecked():
|
||||
#Open connection to server
|
||||
self.sock2 = socket.socket()
|
||||
self.address2 = self.ip_address2.text()
|
||||
self.port2 = self.portField2.text()
|
||||
|
||||
try:
|
||||
self.sock2.connect((self.address2,int(self.port2)))
|
||||
except Exception as e:
|
||||
print("something's wrong with %s:%s. Exception is %s" % (self.address, self.port, e))
|
||||
globalvars.conStatus[1] = False
|
||||
self.connectButton2.setChecked(False)
|
||||
return
|
||||
|
||||
try:
|
||||
data_recv = self.sock2.recv(1024)
|
||||
print(data_recv.decode())
|
||||
except OSError:
|
||||
globalvars.conStatus[1] = False
|
||||
self.connectButton2.setChecked(False)
|
||||
print('\nSocket broken')
|
||||
return
|
||||
|
||||
globalvars.conStatus[1] = True
|
||||
globalvars.sock[1] = self.sock2
|
||||
print("connect to "+ self.address2)
|
||||
|
||||
self.channel[1].loadSettings()
|
||||
|
||||
self.refresh_timer.start(500)
|
||||
|
||||
else:
|
||||
globalvars.conStatus[1] = False
|
||||
self.refresh_timer.stop()
|
||||
time.sleep(0.1)
|
||||
print("disconnect from "+ self.address2)
|
||||
self.sock2.close()
|
||||
|
||||
self.channel[1].setEnabled(globalvars.conStatus[1])
|
||||
|
||||
self.remoteRadioButton.setEnabled(not globalvars.conStatus[1])
|
||||
self.localRadioButton.setEnabled(not globalvars.conStatus[1])
|
||||
|
||||
def refresh(self):
|
||||
for ch in range(len(self.channel)):
|
||||
@ -138,22 +196,36 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
def settingsSelection(self,b):
|
||||
if b.objectName() == "remoteRadioButton":
|
||||
if b.isChecked() == True:
|
||||
globalvars.remoteSettings = True
|
||||
globalvars.remoteSettings[0] = True
|
||||
else:
|
||||
globalvars.remoteSettings = False
|
||||
globalvars.remoteSettings[0] = False
|
||||
|
||||
if b.objectName() == "localRadioButton":
|
||||
if b.isChecked() == True:
|
||||
globalvars.remoteSettings = False
|
||||
globalvars.remoteSettings[0] = False
|
||||
else:
|
||||
globalvars.remoteSettings = True
|
||||
globalvars.remoteSettings[0] = True
|
||||
|
||||
def settingsSelection2(self,b):
|
||||
if b.objectName() == "remoteRadioButton2":
|
||||
if b.isChecked() == True:
|
||||
globalvars.remoteSettings[1] = True
|
||||
else:
|
||||
globalvars.remoteSettings[1] = False
|
||||
|
||||
if b.objectName() == "localRadioButton2":
|
||||
if b.isChecked() == True:
|
||||
globalvars.remoteSettings[1] = False
|
||||
else:
|
||||
globalvars.remoteSettings[1] = True
|
||||
|
||||
def loadSettingsFile(self,path):
|
||||
with open(path) as c:
|
||||
globalvars.settings = json.load(c)
|
||||
|
||||
def closeEvent(self, event):
|
||||
globalvars.conStatus = False
|
||||
globalvars.conStatus[0] = False
|
||||
globalvars.conStatus[1] = False
|
||||
|
||||
print("Saving settings... ")
|
||||
with open(globalvars.settingsFile, 'w') as f:
|
||||
@ -165,6 +237,6 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
main = ApplicationWindow()
|
||||
main.setWindowTitle("Tempertur-Controller V1")
|
||||
main.setWindowTitle("Time-Bin-Controller V1")
|
||||
main.show()
|
||||
app.exec_()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
|
||||
conStatus = False
|
||||
sock = 0
|
||||
conStatus = [False, False]
|
||||
sock = [0,0]
|
||||
settings = 0
|
||||
remoteSettings = True
|
||||
remoteSettings = [True, True]
|
||||
settingsFile = './settings.json'
|
||||
|
||||
@ -2,14 +2,12 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'main_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.14.1
|
||||
# Created by: PyQt5 UI code generator 5.10.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
@ -25,37 +23,31 @@ class Ui_MainWindow(object):
|
||||
sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox.setSizePolicy(sizePolicy)
|
||||
self.groupBox.setMinimumSize(QtCore.QSize(220, 0))
|
||||
self.groupBox.setMaximumSize(QtCore.QSize(157, 16777215))
|
||||
self.groupBox.setMaximumSize(QtCore.QSize(220, 16777215))
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_3.addWidget(self.label_5, 0, 1, 1, 1)
|
||||
self.connectButton = QtWidgets.QPushButton(self.groupBox)
|
||||
self.connectButton.setCheckable(True)
|
||||
self.connectButton.setObjectName("connectButton")
|
||||
self.gridLayout_3.addWidget(self.connectButton, 5, 0, 1, 3)
|
||||
self.localRadioButton = QtWidgets.QRadioButton(self.groupBox)
|
||||
self.localRadioButton.setObjectName("localRadioButton")
|
||||
self.gridLayout_3.addWidget(self.localRadioButton, 4, 0, 1, 3)
|
||||
self.remoteRadioButton = QtWidgets.QRadioButton(self.groupBox)
|
||||
self.remoteRadioButton.setChecked(True)
|
||||
self.remoteRadioButton.setObjectName("remoteRadioButton")
|
||||
self.gridLayout_3.addWidget(self.remoteRadioButton, 3, 0, 1, 3)
|
||||
self.label = QtWidgets.QLabel(self.groupBox)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
|
||||
self.ip_address = QtWidgets.QLineEdit(self.groupBox)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.ip_address.sizePolicy().hasHeightForWidth())
|
||||
self.ip_address.setSizePolicy(sizePolicy)
|
||||
self.ip_address.setMinimumSize(QtCore.QSize(130, 0))
|
||||
self.ip_address.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.ip_address.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.ip_address.setObjectName("ip_address")
|
||||
self.gridLayout_3.addWidget(self.ip_address, 1, 0, 1, 1)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_3.addWidget(self.label_5, 0, 1, 1, 1)
|
||||
self.localRadioButton = QtWidgets.QRadioButton(self.groupBox)
|
||||
self.localRadioButton.setObjectName("localRadioButton")
|
||||
self.gridLayout_3.addWidget(self.localRadioButton, 4, 0, 1, 3)
|
||||
self.connectButton = QtWidgets.QPushButton(self.groupBox)
|
||||
self.connectButton.setCheckable(True)
|
||||
self.connectButton.setObjectName("connectButton")
|
||||
self.gridLayout_3.addWidget(self.connectButton, 5, 0, 1, 3)
|
||||
self.portField = QtWidgets.QLineEdit(self.groupBox)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@ -65,8 +57,13 @@ class Ui_MainWindow(object):
|
||||
self.portField.setMaximumSize(QtCore.QSize(50, 16777215))
|
||||
self.portField.setObjectName("portField")
|
||||
self.gridLayout_3.addWidget(self.portField, 1, 1, 1, 2)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_3.addItem(spacerItem, 6, 0, 1, 1)
|
||||
self.label = QtWidgets.QLabel(self.groupBox)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
|
||||
self.remoteRadioButton = QtWidgets.QRadioButton(self.groupBox)
|
||||
self.remoteRadioButton.setChecked(True)
|
||||
self.remoteRadioButton.setObjectName("remoteRadioButton")
|
||||
self.gridLayout_3.addWidget(self.remoteRadioButton, 3, 0, 1, 3)
|
||||
self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 1)
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
@ -127,9 +124,9 @@ class Ui_MainWindow(object):
|
||||
self.enable_ch1.setText("")
|
||||
self.enable_ch1.setObjectName("enable_ch1")
|
||||
self.gridLayout_4.addWidget(self.enable_ch1, 2, 2, 1, 1)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_4.addItem(spacerItem1, 5, 0, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.groupBox_2, 0, 1, 1, 1)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_4.addItem(spacerItem, 5, 0, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.groupBox_2, 0, 1, 2, 1)
|
||||
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab_0 = QtWidgets.QWidget()
|
||||
@ -152,10 +149,46 @@ class Ui_MainWindow(object):
|
||||
self.layout_ch3 = QtWidgets.QHBoxLayout(self.tab_3)
|
||||
self.layout_ch3.setObjectName("layout_ch3")
|
||||
self.tabWidget.addTab(self.tab_3, "")
|
||||
self.gridLayout_2.addWidget(self.tabWidget, 1, 0, 1, 2)
|
||||
self.gridLayout_2.addWidget(self.tabWidget, 3, 0, 1, 2)
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(220, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(220, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.groupBox_3)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.label_6 = QtWidgets.QLabel(self.groupBox_3)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout.addWidget(self.label_6, 0, 0, 1, 1)
|
||||
self.label_7 = QtWidgets.QLabel(self.groupBox_3)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.gridLayout.addWidget(self.label_7, 0, 1, 1, 1)
|
||||
self.localRadioButton2 = QtWidgets.QRadioButton(self.groupBox_3)
|
||||
self.localRadioButton2.setObjectName("localRadioButton2")
|
||||
self.gridLayout.addWidget(self.localRadioButton2, 3, 0, 1, 2)
|
||||
self.remoteRadioButton2 = QtWidgets.QRadioButton(self.groupBox_3)
|
||||
self.remoteRadioButton2.setChecked(True)
|
||||
self.remoteRadioButton2.setObjectName("remoteRadioButton2")
|
||||
self.gridLayout.addWidget(self.remoteRadioButton2, 2, 0, 1, 2)
|
||||
self.portField2 = QtWidgets.QLineEdit(self.groupBox_3)
|
||||
self.portField2.setObjectName("portField2")
|
||||
self.gridLayout.addWidget(self.portField2, 1, 1, 1, 1)
|
||||
self.ip_address2 = QtWidgets.QLineEdit(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.ip_address2.sizePolicy().hasHeightForWidth())
|
||||
self.ip_address2.setSizePolicy(sizePolicy)
|
||||
self.ip_address2.setMinimumSize(QtCore.QSize(130, 0))
|
||||
self.ip_address2.setObjectName("ip_address2")
|
||||
self.gridLayout.addWidget(self.ip_address2, 1, 0, 1, 1)
|
||||
self.connectButton2 = QtWidgets.QPushButton(self.groupBox_3)
|
||||
self.connectButton2.setCheckable(True)
|
||||
self.connectButton2.setObjectName("connectButton2")
|
||||
self.gridLayout.addWidget(self.connectButton2, 4, 0, 1, 2)
|
||||
self.gridLayout_2.addWidget(self.groupBox_3, 1, 0, 1, 1)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 881, 22))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 881, 21))
|
||||
self.menubar.setObjectName("menubar")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
||||
@ -169,14 +202,14 @@ class Ui_MainWindow(object):
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
||||
self.groupBox.setTitle(_translate("MainWindow", "Connection setup"))
|
||||
self.label_5.setText(_translate("MainWindow", "Port:"))
|
||||
self.connectButton.setText(_translate("MainWindow", "Connect"))
|
||||
self.localRadioButton.setText(_translate("MainWindow", "use local settings"))
|
||||
self.remoteRadioButton.setText(_translate("MainWindow", "use remote settings"))
|
||||
self.label.setText(_translate("MainWindow", "IP:"))
|
||||
self.groupBox.setTitle(_translate("MainWindow", "Connection 1 setup"))
|
||||
self.ip_address.setText(_translate("MainWindow", "134.96.13.239"))
|
||||
self.label_5.setText(_translate("MainWindow", "Port:"))
|
||||
self.localRadioButton.setText(_translate("MainWindow", "use local settings"))
|
||||
self.connectButton.setText(_translate("MainWindow", "Connect"))
|
||||
self.portField.setText(_translate("MainWindow", "2000"))
|
||||
self.label.setText(_translate("MainWindow", "IP:"))
|
||||
self.remoteRadioButton.setText(_translate("MainWindow", "use remote settings"))
|
||||
self.groupBox_2.setTitle(_translate("MainWindow", "Overview"))
|
||||
self.label_2.setText(_translate("MainWindow", "temperatures (°C)"))
|
||||
self.label_3.setText(_translate("MainWindow", "PID enabled"))
|
||||
@ -185,3 +218,12 @@ class Ui_MainWindow(object):
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_1), _translate("MainWindow", "Channel 1"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Channel 2"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Channel 3"))
|
||||
self.groupBox_3.setTitle(_translate("MainWindow", "Connection 2 setup"))
|
||||
self.label_6.setText(_translate("MainWindow", "IP:"))
|
||||
self.label_7.setText(_translate("MainWindow", "Port:"))
|
||||
self.localRadioButton2.setText(_translate("MainWindow", "use local settings"))
|
||||
self.remoteRadioButton2.setText(_translate("MainWindow", "use remote settings"))
|
||||
self.portField2.setText(_translate("MainWindow", "2000"))
|
||||
self.ip_address2.setText(_translate("MainWindow", "134.96.13.250"))
|
||||
self.connectButton2.setText(_translate("MainWindow", "Connect"))
|
||||
|
||||
|
||||
@ -31,55 +31,14 @@
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>157</width>
|
||||
<width>220</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Connection setup</string>
|
||||
<string>Connection 1 setup</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Port:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3">
|
||||
<widget class="QPushButton" name="connectButton">
|
||||
<property name="text">
|
||||
<string>Connect</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<widget class="QRadioButton" name="localRadioButton">
|
||||
<property name="text">
|
||||
<string>use local settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QRadioButton" name="remoteRadioButton">
|
||||
<property name="text">
|
||||
<string>use remote settings</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>IP:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="ip_address">
|
||||
<property name="sizePolicy">
|
||||
@ -88,6 +47,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>130</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
@ -102,6 +67,30 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Port:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<widget class="QRadioButton" name="localRadioButton">
|
||||
<property name="text">
|
||||
<string>use local settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3">
|
||||
<widget class="QPushButton" name="connectButton">
|
||||
<property name="text">
|
||||
<string>Connect</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="portField">
|
||||
<property name="sizePolicy">
|
||||
@ -121,23 +110,27 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>IP:</string>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QRadioButton" name="remoteRadioButton">
|
||||
<property name="text">
|
||||
<string>use remote settings</string>
|
||||
</property>
|
||||
</spacer>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Overview</string>
|
||||
@ -250,7 +243,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
@ -281,6 +274,94 @@
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>220</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>220</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Connection 2 setup</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>IP:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Port:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="localRadioButton2">
|
||||
<property name="text">
|
||||
<string>use local settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="remoteRadioButton2">
|
||||
<property name="text">
|
||||
<string>use remote settings</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="portField2">
|
||||
<property name="text">
|
||||
<string>2000</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="ip_address2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>130</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>134.96.13.250</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="connectButton2">
|
||||
<property name="text">
|
||||
<string>Connect</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
@ -289,7 +370,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>881</width>
|
||||
<height>22</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
|
||||
@ -1 +1 @@
|
||||
{"defaultIP": "134.96.13.250", "defaultPort": 2000, "ch0": {"name": "Encoder", "setpoint": 26.62, "kp": 12.0, "ki": 4.0, "kd": 0, "PIDenabled": 0, "channelEnabled": 1}, "ch1": {"name": "Decoder", "setpoint": 26.62, "kp": 12.0, "ki": 4.0, "kd": 0, "PIDenabled": 0, "channelEnabled": 1}, "ch2": {"name": "Channel 3", "setpoint": 34.05, "kp": 0.0, "ki": 0.0, "kd": 0.0, "PIDenabled": 0, "channelEnabled": 1}, "ch3": {"name": "Channel 4", "setpoint": 21.5, "kp": 0.0, "ki": 0.0, "kd": 0.0, "PIDenabled": 0, "channelEnabled": 1}}
|
||||
{"defaultIP": "134.96.13.250", "defaultPort": 2000, "defaultIP2": "134.96.13.250", "defaultPort2": 2000, "ch0": {"name": "Encoder", "setpoint": 26.62, "kp": 12.0, "ki": 4.0, "kd": 0, "PIDenabled": 0, "channelEnabled": 1, "peltier": 0, "zeroVolt": 1.29}, "ch1": {"name": "Decoder", "setpoint": 26.62, "kp": 12.0, "ki": 4.0, "kd": 0, "PIDenabled": 0, "channelEnabled": 1, "peltier": 0, "zeroVolt": 1.29}, "ch2": {"name": "Channel 3", "setpoint": 34.05, "kp": 0.0, "ki": 0.0, "kd": 0.0, "PIDenabled": 0, "channelEnabled": 1}, "ch3": {"name": "Channel 4", "setpoint": 21.5, "kp": 0.0, "ki": 0.0, "kd": 0.0, "PIDenabled": 0, "channelEnabled": 1}}
|
||||
Loading…
x
Reference in New Issue
Block a user