Kommunication mit Rherodyne läuft nun
This commit is contained in:
parent
c2e2f302a4
commit
b018c0ccf2
153
jfs_main01.py
153
jfs_main01.py
@ -70,7 +70,51 @@ class MainWindow2( MainWindow):
|
|||||||
self.ui.checkBox_3.setEnabled(False)
|
self.ui.checkBox_3.setEnabled(False)
|
||||||
self.ui.pushButton_3.setEnabled(False)
|
self.ui.pushButton_3.setEnabled(False)
|
||||||
self.ui.pushButton_4.setEnabled(False)
|
self.ui.pushButton_4.setEnabled(False)
|
||||||
### ESP32
|
|
||||||
|
|
||||||
|
################### ESP32
|
||||||
|
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.checkBox.setEnabled(True)
|
||||||
|
self.ui.lineEdit.setEnabled(True)
|
||||||
|
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)
|
||||||
|
self.ui.checkBox.setEnabled(False)
|
||||||
|
self.ui.lineEdit.setEnabled(False)
|
||||||
|
|
||||||
def setFrequency(self):
|
def setFrequency(self):
|
||||||
s = self.ui.lineEdit.text()
|
s = self.ui.lineEdit.text()
|
||||||
cmd='o'+str(s)+'\n'
|
cmd='o'+str(s)+'\n'
|
||||||
@ -85,29 +129,21 @@ class MainWindow2( MainWindow):
|
|||||||
|
|
||||||
def clickedBox(self,state):
|
def clickedBox(self,state):
|
||||||
if state == QtCore.Qt.Checked:
|
if state == QtCore.Qt.Checked:
|
||||||
print('checkes')
|
|
||||||
#self.threadx[2] =ThC_2(parent=None,port = self.esp32_serial)
|
|
||||||
#self.threadx[2].start()
|
|
||||||
self.threadx[2] = ThC_2(port = self.esp32_serial)
|
self.threadx[2] = ThC_2(port = self.esp32_serial)
|
||||||
self.threadpool.start(self.threadx[2])
|
self.threadpool.start(self.threadx[2])
|
||||||
else:
|
else:
|
||||||
print('no')
|
|
||||||
self.threadx[2].stop()
|
self.threadx[2].stop()
|
||||||
|
|
||||||
def flowBox(self,state):
|
def flowBox(self,state):
|
||||||
if state == QtCore.Qt.Checked:
|
if state == QtCore.Qt.Checked:
|
||||||
print('checkes')
|
|
||||||
self.wait2Stopflow=True
|
self.wait2Stopflow=True
|
||||||
self.stopFlowLimit = float(self.ui.lineEdit_2.text())
|
self.stopFlowLimit = float(self.ui.lineEdit_2.text())
|
||||||
else:
|
else:
|
||||||
print('no')
|
|
||||||
self.wait2Stopflow=False
|
self.wait2Stopflow=False
|
||||||
|
|
||||||
|
|
||||||
def startesp32(self):
|
def startesp32(self):
|
||||||
self.clearPlot()
|
self.clearPlot()
|
||||||
self.threadx[1] = ThC(index=1,port = self.esp32_serial,base=self.timeBase)
|
self.threadx[1] = ThC(index=1,port = self.esp32_serial,base=self.timeBase)
|
||||||
#self.threadx[1].start()
|
|
||||||
self.threadpool.start(self.threadx[1])
|
self.threadpool.start(self.threadx[1])
|
||||||
self.threadx[1].signals.datasignal.connect(self.updateData)
|
self.threadx[1].signals.datasignal.connect(self.updateData)
|
||||||
self.ui.start_btn.setEnabled(False)
|
self.ui.start_btn.setEnabled(False)
|
||||||
@ -124,11 +160,7 @@ class MainWindow2( MainWindow):
|
|||||||
def setTimeBase(self):
|
def setTimeBase(self):
|
||||||
self.timeBase=int(self.ui.comboBox_tb.currentText())
|
self.timeBase=int(self.ui.comboBox_tb.currentText())
|
||||||
|
|
||||||
|
########### REODyneVentil
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def connectRheo(self):
|
def connectRheo(self):
|
||||||
self.rheo_port = self.ui.comboBox.currentText()
|
self.rheo_port = self.ui.comboBox.currentText()
|
||||||
self.statusBar().showMessage("You clicked CONNECT TO Rheo Ventil")
|
self.statusBar().showMessage("You clicked CONNECT TO Rheo Ventil")
|
||||||
@ -182,10 +214,24 @@ class MainWindow2( MainWindow):
|
|||||||
|
|
||||||
def sendRheoInject(self):
|
def sendRheoInject(self):
|
||||||
xx = int(self.ui.lineEdit_3.text())
|
xx = int(self.ui.lineEdit_3.text())
|
||||||
|
s = self.ui.label_26.text()[5:-2]
|
||||||
|
x1 = int(s)
|
||||||
|
left = x1 - xx
|
||||||
|
|
||||||
|
if ( left < 10):
|
||||||
|
self.statusBar().showMessage(f"Inject {xx} left {left} is to small !!")
|
||||||
|
return
|
||||||
if (xx > 7) or (xx<0):
|
if (xx > 7) or (xx<0):
|
||||||
|
self.ui.checkBox_3.setChecked(False)
|
||||||
|
time.sleep(1)
|
||||||
|
self.ui.pushButton_4.setEnabled(False)
|
||||||
cmd=str(xx)+'\r\n'
|
cmd=str(xx)+'\r\n'
|
||||||
self.sendToRheo(cmd)
|
self.sendToRheo(cmd)
|
||||||
self.getFromRheo()
|
self.getFromRheo()
|
||||||
|
self.statusBar().showMessage(f"Inject {xx} left {left}")
|
||||||
|
else:
|
||||||
|
self.statusBar().showMessage("Amount should be > 7")
|
||||||
|
|
||||||
|
|
||||||
def sendRheoHome(self):
|
def sendRheoHome(self):
|
||||||
cmd=str(3)+'\r\n'
|
cmd=str(3)+'\r\n'
|
||||||
@ -206,21 +252,13 @@ class MainWindow2( MainWindow):
|
|||||||
self.threadpool.start(thread)
|
self.threadpool.start(thread)
|
||||||
|
|
||||||
def setwhatsleft(self,xx):
|
def setwhatsleft(self,xx):
|
||||||
#print (f'that left {xx} ')
|
|
||||||
self.ui.label_26.setText(f'left {xx}')
|
self.ui.label_26.setText(f'left {xx}')
|
||||||
|
self.ui.pushButton_4.setEnabled(True)
|
||||||
|
|
||||||
def sendRheo(self, sendStr):
|
def sendRheo(self, sendStr):
|
||||||
self.rheo_serial.flushInput()
|
self.rheo_serial.flushInput()
|
||||||
self.rheo_serial.write(sendStr.encode('utf-8'))
|
self.rheo_serial.write(sendStr.encode('utf-8'))
|
||||||
|
|
||||||
#cmd=str(5)+'\r\n'
|
|
||||||
#time.sleep(1)
|
|
||||||
#self.rheo_serial.write(cmd.encode('utf-8'))
|
|
||||||
#time.sleep(1)
|
|
||||||
#inp = self.rheo_serial.readline().decode('utf-8')
|
|
||||||
#print(inp)
|
|
||||||
#self.leftsignal.emit(float(inp))
|
|
||||||
|
|
||||||
def getFromRheo(self):
|
def getFromRheo(self):
|
||||||
cmd = ""
|
cmd = ""
|
||||||
thread = Thread(self.getRheoVolume,cmd)
|
thread = Thread(self.getRheoVolume,cmd)
|
||||||
@ -235,68 +273,30 @@ class MainWindow2( MainWindow):
|
|||||||
cmd = str(5)+'\r\n'
|
cmd = str(5)+'\r\n'
|
||||||
self.rheo_serial.write(cmd.encode('utf-8'))
|
self.rheo_serial.write(cmd.encode('utf-8'))
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
inp = self.rheo_serial.readline().decode('utf-8')
|
cnt=0
|
||||||
inp = inp.rstrip()
|
while True:
|
||||||
print(f" >{inp}<")
|
cnt+=1
|
||||||
#inp = 200
|
inp = self.rheo_serial.readline()
|
||||||
return 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:
|
try:
|
||||||
print(self.esp32_port)
|
if inp[0] == 60 and inp[-3] == 62 :
|
||||||
self.esp32_serial = serial.Serial()
|
inp = inp[1:-3]
|
||||||
self.esp32_serial.port = self.esp32_port
|
y = float(inp.decode('utf-8'))
|
||||||
self.esp32_serial.baudrate = 115200
|
return y
|
||||||
self.esp32_serial.parity = serial.PARITY_NONE
|
except IndexError:
|
||||||
self.esp32_serial.stopbits = serial.STOPBITS_ONE
|
pass
|
||||||
self.esp32_serial.bytesize = serial.EIGHTBITS
|
if cnt > 100: #warten bis der Motor steht und der Arduino antwortet
|
||||||
self.esp32_serial.timeout = 1
|
return 0
|
||||||
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.checkBox.setEnabled(True)
|
|
||||||
self.ui.lineEdit.setEnabled(True)
|
|
||||||
# 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)
|
|
||||||
self.ui.checkBox.setEnabled(False)
|
|
||||||
self.ui.lineEdit.setEnabled(False)
|
|
||||||
|
|
||||||
def checkForStopFlow(self):
|
def checkForStopFlow(self):
|
||||||
if self.checkForStopFlow :
|
if self.checkForStopFlow :
|
||||||
if self.y[-1] > self.stopFlowLimit :
|
if self.y[-1] > self.stopFlowLimit :
|
||||||
self.ui.pause_BTN.clicked.emit()
|
self.ui.pause_BTN.clicked.emit()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def updateData(self,x,y):
|
def updateData(self,x,y):
|
||||||
self.x.append(x)
|
self.x.append(x)
|
||||||
self.y.append(y)
|
self.y.append(y)
|
||||||
@ -307,13 +307,11 @@ class MainWindow2( MainWindow):
|
|||||||
self.wait2Stopflow = False
|
self.wait2Stopflow = False
|
||||||
self.ui.checkBox_2.setChecked(False)
|
self.ui.checkBox_2.setChecked(False)
|
||||||
|
|
||||||
|
|
||||||
def clearPlot(self):
|
def clearPlot(self):
|
||||||
self.x.clear()
|
self.x.clear()
|
||||||
self.y.clear()
|
self.y.clear()
|
||||||
self.data_line.setData(self.x,self.y)
|
self.data_line.setData(self.x,self.y)
|
||||||
|
|
||||||
|
|
||||||
def sendToEsp32(self, sendStr):
|
def sendToEsp32(self, sendStr):
|
||||||
self.esp32_serial.write(sendStr.encode())
|
self.esp32_serial.write(sendStr.encode())
|
||||||
self.esp32_serial.flushInput()
|
self.esp32_serial.flushInput()
|
||||||
@ -324,6 +322,7 @@ class WorkerKilledException(Exception):
|
|||||||
|
|
||||||
class ThC_Signals(QtCore.QObject):
|
class ThC_Signals(QtCore.QObject):
|
||||||
datasignal = QtCore.pyqtSignal(int,float)
|
datasignal = QtCore.pyqtSignal(int,float)
|
||||||
|
|
||||||
class ThC(QtCore.QRunnable):
|
class ThC(QtCore.QRunnable):
|
||||||
#datasignal = QtCore.pyqtSignal(int,float)
|
#datasignal = QtCore.pyqtSignal(int,float)
|
||||||
def __init__(self,port=None,index=0,base=100):
|
def __init__(self,port=None,index=0,base=100):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user