接收窗口更新成 plainTextEdit ,解析增加hex原数据显示

This commit is contained in:
wangxibao 2025-01-24 16:40:27 +08:00
parent 2a48d097be
commit f86b9f0a65
5 changed files with 142 additions and 129 deletions

Binary file not shown.

View File

@ -1,7 +1,7 @@
[UI_config]
port = 9000
hex_send = 0
hex_receive = 0
hex_receive = 2
add_date = 0
cr_lf = 2
auto_sav_log = 2
@ -12,105 +12,105 @@ funcode = F4
position = 5
[DisHex_config]
row00 = 浓度|0|4|1|2
row01 = 测试|1|3|1|2
row02 = ||||0
row03 = ||||0
row04 = ||||0
row05 = ||||0
row06 = ||||0
row07 = ||||0
row08 = ||||0
row09 = ||||0
row10 = ||||0
row11 = ||||0
row12 = ||||0
row13 = ||||0
row14 = ||||0
row15 = ||||0
row16 = ||||0
row17 = ||||0
row18 = ||||0
row19 = ||||0
row20 = ||||0
row21 = ||||0
row22 = ||||0
row23 = ||||0
row24 = ||||0
row25 = ||||0
row26 = ||||0
row27 = ||||0
row28 = ||||0
row29 = ||||0
row30 = ||||0
row31 = ||||0
row32 = ||||0
row33 = ||||0
row34 = ||||0
row35 = ||||0
row36 = ||||0
row37 = ||||0
row38 = ||||0
row39 = ||||0
row40 = ||||0
row41 = ||||0
row42 = ||||0
row43 = ||||0
row44 = ||||0
row45 = ||||0
row46 = ||||0
row47 = ||||0
row48 = ||||0
row49 = ||||0
row50 = ||||0
row51 = ||||0
row52 = ||||0
row53 = ||||0
row54 = ||||0
row55 = ||||0
row56 = ||||0
row57 = ||||0
row58 = ||||0
row59 = ||||0
row60 = ||||0
row61 = ||||0
row62 = ||||0
row63 = ||||0
row64 = ||||0
row65 = ||||0
row66 = ||||0
row67 = ||||0
row68 = ||||0
row69 = ||||0
row70 = ||||0
row71 = ||||0
row72 = ||||0
row73 = ||||0
row74 = ||||0
row75 = ||||0
row76 = ||||0
row77 = ||||0
row78 = ||||0
row79 = ||||0
row80 = ||||0
row81 = ||||0
row82 = ||||0
row83 = ||||0
row84 = ||||0
row85 = ||||0
row86 = ||||0
row87 = ||||0
row88 = ||||0
row89 = ||||0
row90 = ||||0
row91 = ||||0
row92 = ||||0
row93 = ||||0
row94 = ||||0
row95 = ||||0
row96 = ||||0
row97 = ||||0
row98 = ||||0
row00 = 浓度|0|2|1|3F10|2
row01 = 测试|1|3|1|105678|2
row02 = |||||0
row03 = |||||0
row04 = |||||0
row05 = |||||0
row06 = |||||0
row07 = |||||0
row08 = |||||0
row09 = |||||0
row10 = |||||0
row11 = |||||0
row12 = |||||0
row13 = |||||0
row14 = |||||0
row15 = |||||0
row16 = |||||0
row17 = |||||0
row18 = |||||0
row19 = |||||0
row20 = |||||0
row21 = |||||0
row22 = |||||0
row23 = |||||0
row24 = |||||0
row25 = |||||0
row26 = |||||0
row27 = |||||0
row28 = |||||0
row29 = |||||0
row30 = |||||0
row31 = |||||0
row32 = |||||0
row33 = |||||0
row34 = |||||0
row35 = |||||0
row36 = |||||0
row37 = |||||0
row38 = |||||0
row39 = |||||0
row40 = |||||0
row41 = |||||0
row42 = |||||0
row43 = |||||0
row44 = |||||0
row45 = |||||0
row46 = |||||0
row47 = |||||0
row48 = |||||0
row49 = |||||0
row50 = |||||0
row51 = |||||0
row52 = |||||0
row53 = |||||0
row54 = |||||0
row55 = |||||0
row56 = |||||0
row57 = |||||0
row58 = |||||0
row59 = |||||0
row60 = |||||0
row61 = |||||0
row62 = |||||0
row63 = |||||0
row64 = |||||0
row65 = |||||0
row66 = |||||0
row67 = |||||0
row68 = |||||0
row69 = |||||0
row70 = |||||0
row71 = |||||0
row72 = |||||0
row73 = |||||0
row74 = |||||0
row75 = |||||0
row76 = |||||0
row77 = |||||0
row78 = |||||0
row79 = |||||0
row80 = |||||0
row81 = |||||0
row82 = |||||0
row83 = |||||0
row84 = |||||0
row85 = |||||0
row86 = |||||0
row87 = |||||0
row88 = |||||0
row89 = |||||0
row90 = |||||0
row91 = |||||0
row92 = |||||0
row93 = |||||0
row94 = |||||0
row95 = |||||0
row96 = |||||0
row97 = |||||0
row98 = |||||0
[Quick_config]
log_time = 10

View File

@ -51,7 +51,9 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
self.pushButton_closeNet.setEnabled(False)
# 发送框、文本框清除
self.textEditReceive.setText("")
self.textEditReceive.setPlainText("")
self.textEditReceive.setMaximumBlockCount(5000)
self.textEditSend.setText("")
self.get_all_local_ips()
@ -77,6 +79,8 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
# 清除接收按钮
self.pushButtonClearReceive.clicked.connect(self.receive_data_clear)
#
# 定时发送数据
self.timer_send = QTimer()
self.timer_send.timeout.connect(self.data_send)
@ -190,15 +194,22 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
recv_addr = recv_data[1][0] + ':' + str(recv_data[1][1])
if not self.is_in_comboBox_channel(recv_addr):
self.comboBox_channel.addItem(recv_addr)
# 在接收窗口显示
# 获取到text光标
textCursor = self.textEditReceive.textCursor()
# 滚动到底部
textCursor.movePosition(textCursor.End)
# 设置光标到text中去
self.textEditReceive.setTextCursor(textCursor)
#选择要显示的通道
if recv_addr == self.comboBox_channel.currentText() or self.comboBox_channel.currentText() == "ALL":
#self.textEditReceive.insertPlainText('<' + recv_addr+ '> ' )
if self.checkBoxAddDate.isChecked():
nowTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
nowTime = nowTime[:-3]
#self.textEditReceive.insertPlainText(nowTime + " ")
self.add_line_to_textedit(nowTime + " ")
self.textEditReceive.insertPlainText(nowTime + " ")
#self.add_line_to_textedit(nowTime + " ")
# HEX显示数据
if self.checkBoxHexReceive.checkState():
# line_utf8_bytes = line_utf8.hex() # 编码为 UTF-8 字节串
@ -206,11 +217,9 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
# for byte in line_utf8_bytes:
# out_s += '{:02X} '.format(byte) # 使用大写字母 X
# self.textEditReceive.insertPlainText(out_s)
# self.textEditReceive.insertPlainText('\r\n')
self.add_line_to_textedit('<' + recv_addr + '> ' + out_s)
self.textEditReceive.insertPlainText('<' + recv_addr + '> ' + out_s)
#self.add_line_to_textedit('<' + recv_addr + '> ' + out_s)
# 解析数据
self.Disp_hex_receive(line_utf8)
@ -218,20 +227,12 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
# ASCII显示数据
else:
#print("解码前",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"))
#self.textEditReceive.insertPlainText(line_utf8)
self.add_line_to_textedit('<' + recv_addr + '> ' + line_utf8)
self.textEditReceive.insertPlainText('<' + recv_addr + '> ' + line_utf8)
#self.add_line_to_textedit('<' + recv_addr + '> ' + line_utf8)
#print("解码数据",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"))
# 接收换行
if self.checkBoxCRLF.isChecked():
self.textEditReceive.insertPlainText('\r\n')
# 获取到text光标
textCursor = self.textEditReceive.textCursor()
# 滚动到底部
textCursor.movePosition(textCursor.End)
# 设置光标到text中去
self.textEditReceive.setTextCursor(textCursor)
# 统计接收字符的数量
self.data_num_received += num
self.lineEditReceiveNum.setText(str(self.data_num_received))
@ -247,8 +248,6 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
sav_name = datetime.datetime.now().strftime("%Y-%m-%d") + '.log'
sav_str = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%f")[:23] + " " + out_s + "\r\n"
else:
line = line_utf8.split(',')
if len(line) == 2:
@ -314,11 +313,13 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
for i in range(0, len(input_s)):
out_s = out_s + '{:02X}'.format(input_s[i]) + ' '
print(out_s)
self.add_line_to_textedit(out_s)
self.textEditReceive.insertPlainText(out_s)
#self.add_line_to_textedit(out_s)
# ASCII接收显示
else:
self.add_line_to_textedit(input_s.decode('utf-8'))
self.textEditReceive.insertPlainText(input_s.decode('utf-8'))
#self.add_line_to_textedit(input_s.decode('utf-8'))
# 接收换行
if self.checkBoxCRLF.isChecked():
@ -425,9 +426,12 @@ class Pyqt5Net(QtWidgets.QWidget, Ui_UartAssistant):
start = int(self.tableWidget.item(i, 1).text())
num = int(self.tableWidget.item(i, 2).text())
scale = int(self.tableWidget.item(i, 3).text())
value = int(hexdata[start*2:(start+num)*2],16)/scale
item = QTableWidgetItem(str(value))
hex_str = hexdata[start*2:(start+num)*2]
item = QTableWidgetItem(hex_str)
self.tableWidget.setItem(i, 4, item)
value = int(hex_str,16)/scale
item = QTableWidgetItem(str(value))
self.tableWidget.setItem(i, 5, item)
except Exception as e:
print(e)
pass

View File

@ -207,7 +207,7 @@ class Ui_UartAssistant(object):
self.tab1.setObjectName("tab1")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab1)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.textEditReceive = QtWidgets.QTextEdit(self.tab1)
self.textEditReceive = QtWidgets.QPlainTextEdit(self.tab1)
self.textEditReceive.setSizeIncrement(QtCore.QSize(0, 0))
self.textEditReceive.setObjectName("textEditReceive")
self.verticalLayout_2.addWidget(self.textEditReceive)
@ -221,7 +221,7 @@ class Ui_UartAssistant(object):
self.tableWidget = QtWidgets.QTableWidget(self.tab2)
self.tableWidget.setGridStyle(QtCore.Qt.SolidLine)
self.tableWidget.setRowCount(10)
self.tableWidget.setColumnCount(5)
self.tableWidget.setColumnCount(6)
self.tableWidget.setObjectName("tableWidget")
item = QtWidgets.QTableWidgetItem()
item.setBackground(QtGui.QColor(172, 172, 172))
@ -235,8 +235,10 @@ class Ui_UartAssistant(object):
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
item.setBackground(QtGui.QColor(172, 172, 172))
self.tableWidget.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
item.setBackground(QtGui.QColor(172, 172, 172))
self.tableWidget.setHorizontalHeaderItem(5, item)
self.tableWidget.horizontalHeader().setCascadingSectionResizes(False)
self.tableWidget.horizontalHeader().setDefaultSectionSize(50)
self.tableWidget.horizontalHeader().setMinimumSectionSize(20)
@ -398,6 +400,8 @@ class Ui_UartAssistant(object):
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("UartAssistant", "scale"))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("UartAssistant", "hex"))
item = self.tableWidget.horizontalHeaderItem(5)
item.setText(_translate("UartAssistant", "value"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab2), _translate("UartAssistant", "解析"))
self.groupBox_7.setTitle(_translate("UartAssistant", "选择通道"))

View File

@ -494,7 +494,7 @@
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPlainTextEdit" name="plainTextEditReceive">
<widget class="QPlainTextEdit" name="textEditReceive">
<property name="sizeIncrement">
<size>
<width>0</width>
@ -525,7 +525,7 @@
<number>10</number>
</property>
<property name="columnCount">
<number>5</number>
<number>6</number>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
@ -602,6 +602,11 @@
<string>scale</string>
</property>
</column>
<column>
<property name="text">
<string>hex</string>
</property>
</column>
<column>
<property name="text">
<string>value</string>