代码拉取完成,页面将自动刷新
# coding:utf-8
import time
from pathlib import Path
from shutil import copyfile
from PyQt5.QtGui import QTextCursor
from PyQt5.QtWidgets import QMainWindow, QMessageBox, QFileDialog
import SerialMonitor
import ui_serial_monitor
import setting_dialog
class SerialMonitorWindow(QMainWindow, ui_serial_monitor.Ui_MainWindow): # 继承界面类及QMainWindow类
def __init__(self):
super().__init__()
self.setupUi(self)
self.StartListen.triggered.connect(self.onClickStartListen)
self.StopListen.triggered.connect(self.onClickStopListen)
self.action.triggered.connect(self.onQuickListen)
self.SaveSerialData.triggered.connect(self.onSaveClickListen)
self.Clear.triggered.connect(self.clearClickListen)
self.monitor: SerialMonitor.SerialMonitor
self.physicalPortName = ""
self.physicalPortRate = 0
self.virtualPortName = ""
self.virtualPortRate = 0
self.isMonitor = False
self.filename = ""
def onClickStartListen(self):
if self.isMonitor:
self.monitor.Stop()
dialog = setting_dialog.SettingDialog()
dialog.exec_()
if dialog.IsSetting:
self.physicalPortName = dialog.getPhysicalPortName()
self.physicalPortRate = int(dialog.getPhysicalPortRate())
self.virtualPortName = dialog.getVirtualPortName()
self.virtualPortRate = int(dialog.getVirtualPortRate())
path = Path("./data")
if not path.is_dir():
path.mkdir()
self.filename = "./data/trace_" + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".txt"
self.monitor = SerialMonitor.SerialMonitor(
self.filename, self.monitorMessage,
dialog.getPhysicalPortName(), dialog.getPhysicalPortRate(),
dialog.getVirtualPortName(), dialog.getVirtualPortRate())
self.isMonitor = True
self.textBrowser.setText("")
self.monitor.Start()
def onClickStopListen(self):
self.isMonitor = False
if self.monitor is not None:
self.monitor.Stop()
def onQuickListen(self):
if len(self.physicalPortName)== 0 or len(self.virtualPortName) == 0:
dialog = setting_dialog.SettingDialog()
dialog.exec_()
if dialog.IsSetting:
self.physicalPortName = dialog.getPhysicalPortName()
self.physicalPortRate = int(dialog.getPhysicalPortRate())
self.virtualPortName = dialog.getVirtualPortName()
self.virtualPortRate = int(dialog.getVirtualPortRate())
path = Path("./data")
if not path.is_dir():
path.mkdir()
self.filename = "./data/trace_" + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".txt"
self.monitor = SerialMonitor.SerialMonitor(
self.filename, self.monitorMessage,
dialog.getPhysicalPortName(), dialog.getPhysicalPortRate(),
dialog.getVirtualPortName(), dialog.getVirtualPortRate())
self.textBrowser.setText("")
self.monitor.Start()
else:
path = Path("./data")
if not path.is_dir():
path.mkdir()
self.filename = "./data/trace_" + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".txt"
self.monitor = SerialMonitor.SerialMonitor(
self.filename, self.monitorMessage,
self.physicalPortName, self.physicalPortRate,
self.virtualPortName, self.virtualPortRate)
self.textBrowser.setText("")
self.monitor.Start()
def onSaveClickListen(self):
filename, filetype = QFileDialog.getSaveFileName(self, '保存文件', './data', "ALL (*.*)")
if filename:
if self.isMonitor:
self.monitor.Stop()
copyfile(self.filename, filename)
def monitorMessage(self, message):
self.textBrowser.append(message[:len(message)-1])
self.textBrowser.moveCursor(QTextCursor.End)
def clearClickListen(self):
self.textBrowser.clear()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。