1. 增加无网络环境使用的逻辑 2. 优化EC指令发送的逻辑
This commit is contained in:
59
aio.py
59
aio.py
@ -4,7 +4,6 @@ import os
|
||||
import re
|
||||
import sqlite3
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
from urllib import request
|
||||
import os.path
|
||||
@ -12,11 +11,10 @@ import matplotlib
|
||||
import matplotlib.pyplot as plt
|
||||
import pandas
|
||||
from matplotlib.widgets import Slider
|
||||
matplotlib.use('QtAgg')
|
||||
|
||||
from PySide6.QtCore import Qt, QThread, Signal, QObject, QTimer
|
||||
from PySide6.QtGui import QTextCursor, QFont, QPixmap, QColor, QBrush, QIcon
|
||||
from PySide6.QtWidgets import QMessageBox, QCheckBox, QSplashScreen, QApplication, QFrame, QLabel, QTreeWidgetItem, QFileDialog, QHeaderView, QDialog, QVBoxLayout, QPlainTextEdit
|
||||
from PySide6.QtWidgets import QMessageBox, QCheckBox, QSplashScreen, QApplication, QLabel, QTreeWidgetItem, QFileDialog, QHeaderView, QDialog, QVBoxLayout, QPlainTextEdit
|
||||
|
||||
import codes.common.clibs as clibs
|
||||
import codes.common.openapi as openapi
|
||||
@ -24,6 +22,7 @@ import codes.ui.main_window as main_window
|
||||
from codes.analysis import brake, current, wavelogger, iso
|
||||
from codes.autotest import do_current, do_brake
|
||||
from codes.durable import factory_test
|
||||
matplotlib.use('QtAgg')
|
||||
|
||||
|
||||
class ContentDialog(QDialog):
|
||||
@ -135,6 +134,10 @@ class MainWindow(main_window.Ui_MainWindow):
|
||||
self.run = RunProg()
|
||||
self.run.moveToThread(self.t)
|
||||
self.run.completed.connect(prog_done)
|
||||
try:
|
||||
self.action.disconnect()
|
||||
except TypeError:
|
||||
pass
|
||||
self.action.connect(self.run.program)
|
||||
self.t.start()
|
||||
self.action.emit((prog, idx, reserved))
|
||||
@ -447,7 +450,7 @@ class MainWindow(main_window.Ui_MainWindow):
|
||||
self.run_program_thread(do_next, -98, self.prog_done_next, None)
|
||||
|
||||
def show_item_content(self, item, column):
|
||||
content = " | ".join([item.text(i) for i in range(self.treew_log.columnCount())])
|
||||
content = "\n".join([item.text(i) for i in range(self.treew_log.columnCount())])
|
||||
dialog = ContentDialog(content, self)
|
||||
dialog.exec()
|
||||
|
||||
@ -880,9 +883,9 @@ class MainWindow(main_window.Ui_MainWindow):
|
||||
return
|
||||
elif content[0].strip().startswith("ctrl"):
|
||||
for item in content[1:]:
|
||||
addr = int(item.split(":")[0].strip())
|
||||
value = int(item.split(":")[1].strip())
|
||||
try:
|
||||
addr = int(item.split(":")[0].strip())
|
||||
value = int(item.split(":")[1].strip())
|
||||
clibs.c_md.c.write_register(addr, value)
|
||||
time.sleep(clibs.INTERVAL/4)
|
||||
except Exception as err:
|
||||
@ -893,20 +896,27 @@ class MainWindow(main_window.Ui_MainWindow):
|
||||
else:
|
||||
QMessageBox.critical(self, "格式错误", "非法的发送内容,自定义发送需参考已有的格式!")
|
||||
|
||||
def prog_done_ec_send(self, results):
|
||||
flag, result, ret, error, idx, cmd = results
|
||||
print(f"res = {results}")
|
||||
if ret[1] == "error":
|
||||
clibs.logger("ERROR", "openapi", f"{ret[0]}", "red")
|
||||
else:
|
||||
self.pte_ec_recv.appendPlainText(str(ret))
|
||||
|
||||
def ec_send(self):
|
||||
def ec_send_thread():
|
||||
return clibs.c_ec.sr_string(cmd)
|
||||
|
||||
if clibs.status["ec"] == 0:
|
||||
QMessageBox.critical(self, "错误", "使用该功能之前,需要先打开 EC 连接!")
|
||||
return
|
||||
if self.pte_ec_send.toPlainText() == "":
|
||||
return
|
||||
|
||||
self.pte_ec_recv.clear()
|
||||
cmd = self.pte_ec_send.toPlainText().strip()
|
||||
try:
|
||||
result = clibs.c_ec.sr_string(cmd)
|
||||
self.pte_ec_recv.appendPlainText(str(result))
|
||||
except Exception as err:
|
||||
self.pte_ec_recv.appendPlainText(f"操作失败:{err}")
|
||||
self.pte_ec_recv.clear()
|
||||
self.run_program_thread(ec_send_thread, -99, self.prog_done_ec_send, cmd)
|
||||
|
||||
def hmi_cb_change(self):
|
||||
cmd = self.cb_hmi_cmd.currentText()
|
||||
@ -1103,17 +1113,20 @@ class SplashScreen(QApplication):
|
||||
self.splash.show()
|
||||
self.splash.showMessage("正在加载资源.....", Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.GlobalColor.white)
|
||||
|
||||
# with validation of server version
|
||||
self.t = QThread(self)
|
||||
self.run = InitWork()
|
||||
self.run.moveToThread(self.t)
|
||||
self.run.completed.connect(self.prog_done)
|
||||
self.action.connect(self.run.program)
|
||||
self.t.start()
|
||||
self.action.emit(1)
|
||||
|
||||
# without validation of server version
|
||||
# self.prog_done("true")
|
||||
with open(f"{clibs.PREFIX}/files/version/IS_VALIDATE", mode="r", encoding="utf-8") as f_validate:
|
||||
is_validate = f_validate.read()
|
||||
if is_validate == "1":
|
||||
# with validation of server version
|
||||
self.t = QThread(self)
|
||||
self.run = InitWork()
|
||||
self.run.moveToThread(self.t)
|
||||
self.run.completed.connect(self.prog_done)
|
||||
self.action.connect(self.run.program)
|
||||
self.t.start()
|
||||
self.action.emit(1)
|
||||
else:
|
||||
# without validation of server version
|
||||
self.prog_done("true")
|
||||
|
||||
def prog_done(self, result):
|
||||
if result == "false" or result == "":
|
||||
|
Reference in New Issue
Block a user