class
MyWindow(QMainWindow,Ui_cash):
def __init__(self):
super(MyWindow,self).__init__()
self.scomList = []
self.threadList = []
self.setupUi(self)
self.actionOpen.triggered.connect(self.openMsg)
self.actionSave.triggered.connect(self.saveMsg)
self.pushButton.clicked.connect(self.ScomAutoFind)
self.addDataButton.clicked.connect(self.getRHandT)
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(1)
self.tableWidget.setHorizontalHeaderLabels(['11', '22', '33', '44', '55'])
self.tableRowCnt = 0
self.tableColumnCnt = 0
self.ThreadComID = 0
self.addDatasignal = pyqtSignal(str)
self.datadict = {'RHldy':0,'Tldy':0,'meaRT':0,'voltport':0} def getMCUdata(self):
if
self.ThreadComID == 0:
self.showMsgbox('请先连接串口')
else
:
self.ThreadComID.ScomSendOneData(' 5501AA')
time.sleep(0.1)
strt = self.ThreadComID.ScomGetstrData()
if
strt is None:
self.showMsgbox('请将串口线连接到电路板')
return
None
print
(strt)
self.datadict['voltport'] = strt[4:-3] + '.' + strt[-3:-2]
self.ThreadComID.ScomSendOneData(' 5502AA')
time.sleep(0.1)
strt = self.ThreadComID.ScomGetstrData()
if
strt is None:
self.showMsgbox('请将串口线连接到电路板')
return
None
print
(strt)
self.datadict['meaRT'] = strt[4:-4] + '.' + strt[-4:-2]
return
1
def insertTableNewLine(self):
self.tableWidget.setItem(self.tableRowCnt, 0, QTableWidgetItem(self.datadict['RHldy']))
self.tableWidget.setItem(self.tableRowCnt, 1, QTableWidgetItem(self.datadict['Tldy']))
self.tableWidget.setItem(self.tableRowCnt, 2, QTableWidgetItem(self.datadict['meaRT']))
self.tableWidget.setItem(self.tableRowCnt, 3, QTableWidgetItem(self.datadict['voltport']))
self.tableWidget.setItem(self.tableRowCnt, 4, QTableWidgetItem(str(datetime.
date
.today())+' '+str(datetime.datetime.today().hour)+':'+str(datetime.datetime.today().minute)))
self.tableRowCnt += 1
self.tableWidget.insertRow(self.tableRowCnt) def openMsg(self):
file,ok = QFileDialog.getOpenFileName(self,
"打开记录表"
,
"C:/"
,
".txt"
) def getRHandT(self):
if
self.ThreadComID == 0:
self.showMsgbox('请先连接串口')
else
:
data,ok = QInputDialog.
getText
(self,
"露点仪数据"
,
"按如下格式记录:\n RH空格T\n示例:\n RH(0~100):66.6\n T(0~200):9.8\n 输入:66.6 9.8"
, QLineEdit.Normal,
"66.6 9.8"
)
if
ok == True:
data = re.findall('^[0-9]+\.[0-9]+\s+[0-9]+\.[0-9]+$', data.rstrip())
if
len(data) == 0:
self.showMsgbox('数据格式有误,重新录入')
else
:
data = data[0].split()
print
(data)
self.datadict['RHldy'] = data[0]
self.datadict['Tldy'] = data[1]
if
self.getMCUdata() is None:
return
None
print
(self.datadict)
self.insertTableNewLine()
else
:
self.showMsgbox('请重新录入数据') def showMsgbox(self,strtoshow):
QMessageBox.warning(self,'提示',strtoshow,QMessageBox.Ok) def saveMsg(self):
file,ok = QFileDialog.getSaveFileName(self,
"保存记录表"
,
"C:/"
,
".txt"
) def ScomAutoFind(self):
self.pushButton.setDisabled(True)
self.scomList = list(serial.tools.list_ports.comports())
if
len(self.scomList) <= 0:
self.showMsgbox('未发现串口,请检查线缆连接')
self.pushButton.setDisabled(False)
else
:
comNum = len(self.scomList)
print
(str(comNum) + 'Scom is found')
while
comNum:
comNum = comNum - 1
if
"USB"
in str(self.scomList[comNum]):
self.ThreadComID = SerialThread(portName=self.scomList[comNum][0])
self.ThreadComID.start()
self.graphicsView.setStyleSheet(
"background-color: rgb(0, 255, 0);"
)
print
(str(self.scomList[comNum]) + ' is added')