udp.py 添加close函数用于关闭后台线程,
解决updata_ssh 后台线程无法正常关闭的问题 调整服务器文件列表显示,服务器文件夹显示中文别名
This commit is contained in:
@@ -106,3 +106,7 @@
|
||||
解决updata 关闭时串口没有正常关闭的问题
|
||||
修改服务器文件列表显示
|
||||
添加.jwt文件解析
|
||||
2023.11.5
|
||||
udp.py 添加close函数用于关闭后台线程,解决updata_ssh 后台线程无法正常关闭的问题
|
||||
调整服务器文件列表显示,服务器文件夹显示中文别名
|
||||
|
||||
|
@@ -55,7 +55,7 @@ class coder(QObject):
|
||||
self.ser_is_open = False
|
||||
self.recv_handler=None
|
||||
self.autoinc_id=False
|
||||
self.openignore_flag=False
|
||||
self.openignore_flag=True
|
||||
self.autotest_is_open=0
|
||||
self.uid_length=16
|
||||
self.code_list_backcolor=False
|
||||
@@ -205,7 +205,7 @@ class coder(QObject):
|
||||
def com_but_init(self):
|
||||
self.com_but = QPushButton(self.widget)
|
||||
self.com_but.setObjectName(u"com_but")
|
||||
self.com_but.setGeometry(QRect(1370, 90, 93, 28))
|
||||
self.com_but.setGeometry(QRect(1370, 90, 100, 28))
|
||||
self.com_but.setText("打开端口")
|
||||
self.com_but.clicked.connect(self.com_but_clicked)
|
||||
|
||||
@@ -213,7 +213,7 @@ class coder(QObject):
|
||||
def moterup_init(self):
|
||||
self.moterup=QPushButton(self.widget)
|
||||
self.moterup.setObjectName(u"moteerup")
|
||||
self.moterup.setGeometry(QRect(1250, 90, 93, 28))
|
||||
self.moterup.setGeometry(QRect(1250, 90, 100, 28))
|
||||
self.moterup.setText("电机上升")
|
||||
self.moterup.clicked.connect(self.cmd_moter_up)
|
||||
|
||||
@@ -221,7 +221,7 @@ class coder(QObject):
|
||||
def autoinc_init(self):
|
||||
self.autoinc=QPushButton(self.widget)
|
||||
self.autoinc.setObjectName(u"autoinc")
|
||||
self.autoinc.setGeometry(QRect(1250, 130, 93, 28))
|
||||
self.autoinc.setGeometry(QRect(1250, 130, 100, 28))
|
||||
self.autoinc.clicked.connect(self.autoinc_clicked)
|
||||
self.autoinc_clicked()
|
||||
|
||||
@@ -229,7 +229,7 @@ class coder(QObject):
|
||||
def check_but_init(self):
|
||||
self.check_but=QPushButton(self.widget)
|
||||
self.check_but.setObjectName(u"check_but")
|
||||
self.check_but.setGeometry(QRect(1250, 170, 93, 28))
|
||||
self.check_but.setGeometry(QRect(1250, 170, 100, 28))
|
||||
self.check_but.clicked.connect(self.check_but_clicked)
|
||||
self.check_but.setText("开始检测")
|
||||
|
||||
@@ -237,7 +237,7 @@ class coder(QObject):
|
||||
def posend_but_init(self):
|
||||
self.posend_but=QPushButton(self.widget)
|
||||
self.posend_but.setObjectName(u"posend_but")
|
||||
self.posend_but.setGeometry(QRect(1250, 210, 93, 28))
|
||||
self.posend_but.setGeometry(QRect(1250, 210, 100, 28))
|
||||
self.posend_but.clicked.connect(self.posend_but_clicked)
|
||||
self.posend_but.setText("到位感应")
|
||||
|
||||
@@ -245,7 +245,7 @@ class coder(QObject):
|
||||
def autotest_but_init(self):
|
||||
self.autotest_but=QPushButton(self.widget)
|
||||
self.autotest_but.setObjectName(u"autotest_but")
|
||||
self.autotest_but.setGeometry(QRect(1250, 250, 93, 28))
|
||||
self.autotest_but.setGeometry(QRect(1250, 250, 100, 28))
|
||||
self.autotest_but.clicked.connect(self.autotest_but_clicked)
|
||||
self.autotest_but.setText("开自动测试")
|
||||
|
||||
@@ -253,7 +253,7 @@ class coder(QObject):
|
||||
def stop_but_init(self):
|
||||
self.stop_but=QPushButton(self.widget)
|
||||
self.stop_but.setObjectName(u"stop_but")
|
||||
self.stop_but.setGeometry(QRect(1250, 290, 93, 28))
|
||||
self.stop_but.setGeometry(QRect(1250, 290, 100, 28))
|
||||
self.stop_but.clicked.connect(self.stop_but_clicked)
|
||||
self.stop_state=True
|
||||
self.stop_but_clicked()
|
||||
@@ -262,7 +262,7 @@ class coder(QObject):
|
||||
def code_but_init(self):
|
||||
self.code_but=QPushButton(self.widget)
|
||||
self.code_but.setObjectName(u"code_but")
|
||||
self.code_but.setGeometry(QRect(1250, 330, 93, 28))
|
||||
self.code_but.setGeometry(QRect(1250, 330, 100, 28))
|
||||
self.code_but.clicked.connect(self.code_but_clicked)
|
||||
self.code_but.setText("赋码")
|
||||
|
||||
@@ -270,7 +270,7 @@ class coder(QObject):
|
||||
def moterdown_init(self):
|
||||
self.moterdown=QPushButton(self.widget)
|
||||
self.moterdown.setObjectName(u"moteerup")
|
||||
self.moterdown.setGeometry(QRect(1250, 370, 93, 28))
|
||||
self.moterdown.setGeometry(QRect(1250, 370, 100, 28))
|
||||
self.moterdown.setText("电机下降")
|
||||
self.moterdown.clicked.connect(self.cmd_moter_down)
|
||||
|
||||
@@ -278,7 +278,7 @@ class coder(QObject):
|
||||
def openignore_init(self):
|
||||
self.openignore=QPushButton(self.widget)
|
||||
self.openignore.setObjectName(u"moteerup")
|
||||
self.openignore.setGeometry(QRect(1250, 410, 93, 28))
|
||||
self.openignore.setGeometry(QRect(1250, 410, 100, 28))
|
||||
self.openignore.clicked.connect(self.openignore_clicked)
|
||||
self.openignore_clicked()
|
||||
|
||||
@@ -552,8 +552,8 @@ class coder(QObject):
|
||||
|
||||
# 初始化处理函数列表
|
||||
def recv_handler_table_init(self):
|
||||
self.recv_handler_table={"批检仪检测后赋码":(self.recv_code_after_check_checker,16,self.change_enter_checker,self.change_exit_checker),
|
||||
"批检仪检测时赋码":(self.recv_code_with_check_checker,15,self.change_enter_checker,self.change_exit_checker),
|
||||
self.recv_handler_table={"批检仪检测后赋码(XT)":(self.recv_code_after_check_checker,16,self.change_enter_checker,self.change_exit_checker),
|
||||
"批检仪检测时赋码(JQ)":(self.recv_code_with_check_checker,15,self.change_enter_checker,self.change_exit_checker),
|
||||
"赋码控制器":(self.recv_deal_coder2ch,15,self.change_enter_coder2ch,self.change_exit_coder2ch)}
|
||||
|
||||
# 切换设备类型时进行的额外处理
|
||||
|
@@ -19,4 +19,11 @@ class TaskBox(QWidget):
|
||||
|
||||
|
||||
|
||||
class task_base(object):
|
||||
def __init__(self):
|
||||
self.TaskID=""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -5,8 +5,36 @@ import sys
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 定义转换字符
|
||||
_TRAN_TABLE=[
|
||||
("checker_dtb","设备树文件"),
|
||||
("checker_gen1_app","一代批检仪/赋码仪主板程序"),
|
||||
("checker_gen1_boot","一代批检仪/赋码仪主板boot程序"),
|
||||
("checker_host_app","自研批检仪/赋码仪主板程序"),
|
||||
("checker_m4","自研批检仪/赋码仪协处理器程序"),
|
||||
("checker_slave_app","自研批检仪/赋码仪小板程序"),
|
||||
("checker_slave_app_can","自研批检仪/赋码仪小板程序CAN总线"),
|
||||
("checker_slave_app_uart","自研批检仪/赋码仪小板程序串口总线"),
|
||||
("checker_slave_boot_can","自研批检仪/赋码仪小板boot程序CAN总线"),
|
||||
("checker_slave_boot_uart","自研批检仪/赋码仪小板boot程序串口总线"),
|
||||
("coder_stm32f1_app","手动线赋码控制器主板程序"),
|
||||
("coder_stm32f1_boot","手动线赋码控制器主板boot程序"),
|
||||
("daemon","自研批检仪/赋码仪守护进程"),
|
||||
("jqcoder_slave_app","一代赋码仪小板程序"),
|
||||
("judge","判定脚本"),
|
||||
("scheme","检测方案"),
|
||||
("test_data","测试数据"),
|
||||
]
|
||||
def _tran_(text:str):
|
||||
for i in _TRAN_TABLE:
|
||||
if(i[0]==text):
|
||||
return i[1]
|
||||
return text
|
||||
def _detran_(text:str):
|
||||
for i in _TRAN_TABLE:
|
||||
if(i[1]==text):
|
||||
return i[0]
|
||||
return text
|
||||
|
||||
|
||||
|
||||
@@ -57,9 +85,9 @@ class select_list(QObject):
|
||||
def item_append(self,items:list):
|
||||
for i in items:
|
||||
# print("add item",i[0])
|
||||
self.file_list.addItem(i[0])
|
||||
self.file_list.addItem(_tran_(i[0]))
|
||||
def item_clicked(self,item:QListWidgetItem ):
|
||||
self.select_item=item.text()
|
||||
self.select_item=_detran_(item.text())
|
||||
self.w.done(QDialog.DialogCode.Accepted)
|
||||
self.w.close()
|
||||
def show(self):
|
||||
@@ -75,21 +103,21 @@ class file_list(QDialog):
|
||||
|
||||
def __init__(self,father:QDialog,title:str,str_list:list):
|
||||
QDialog.__init__(self,father)
|
||||
self.resize(1000,400)
|
||||
self.resize(1200,700)
|
||||
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||||
self.setWindowTitle(title)
|
||||
self.code_list=QTableWidget(self)
|
||||
self.code_list.setObjectName(u"code_list")
|
||||
self.code_list.setGeometry(QRect(5, 5, 990, 390))
|
||||
self.code_list.setGeometry(QRect(5, 5, 1190, 690))
|
||||
self.code_list.setColumnCount(4)
|
||||
self.code_list.setHorizontalHeaderLabels(list(["ID","上传时间","文件名","描述"]))
|
||||
self.code_list.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
||||
self.code_list.horizontalHeader().setSectionResizeMode(0,QHeaderView.ResizeMode.Fixed)
|
||||
self.code_list.setColumnWidth(0,50)
|
||||
self.code_list.horizontalHeader().setSectionResizeMode(1,QHeaderView.ResizeMode.Fixed)
|
||||
self.code_list.setColumnWidth(1,200)
|
||||
self.code_list.setColumnWidth(1,160)
|
||||
self.code_list.horizontalHeader().setSectionResizeMode(2,QHeaderView.ResizeMode.Fixed)
|
||||
self.code_list.setColumnWidth(2,200)
|
||||
self.code_list.setColumnWidth(2,400)
|
||||
self.code_list.setSelectionBehavior( QAbstractItemView.SelectionBehavior.SelectRows)
|
||||
self.code_list.cellDoubleClicked.connect(self.cell_clicked)
|
||||
self.backcolor=True
|
||||
|
@@ -73,6 +73,8 @@ class myudp(QObject):
|
||||
def send(self,ip,cmd,recv_num,timeout):
|
||||
resoult=True
|
||||
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
self.udp=udp
|
||||
self.send_on=True
|
||||
local_addr = ("", 0)
|
||||
udp.bind(local_addr)
|
||||
udp.settimeout(timeout)
|
||||
@@ -80,6 +82,8 @@ class myudp(QObject):
|
||||
try:
|
||||
index=0
|
||||
while index<recv_num:
|
||||
if(self.send_on==False):
|
||||
return False
|
||||
recv_data = udp.recvfrom(1024)
|
||||
recv_msg = recv_data[0]
|
||||
send_addr = recv_data[1]
|
||||
@@ -136,6 +140,11 @@ class myudp(QObject):
|
||||
|
||||
for t in threads:
|
||||
t.join()
|
||||
def close(self):
|
||||
if(self.udp is not None):
|
||||
self.udp.close()
|
||||
if(self.send_on is not None):
|
||||
self.send_on=False
|
||||
|
||||
|
||||
|
||||
|
@@ -60,4 +60,6 @@ if __name__ == "__main__":
|
||||
dlg=updata_dlg()
|
||||
dlg.show()
|
||||
app.exec()
|
||||
print("exe end.")
|
||||
sys.exit(0)
|
||||
print("exe end2.")
|
||||
|
@@ -118,6 +118,7 @@ class updata_dlg(QWidget):
|
||||
self.widget.setWindowTitle("批检仪程序升级")
|
||||
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
self.addrs=""
|
||||
self.udp=None
|
||||
self.dhcp_server=None
|
||||
# 如果要升级服务,则在升级之后ssh会连接不上
|
||||
self.systemd_stop=False
|
||||
@@ -155,8 +156,10 @@ class updata_dlg(QWidget):
|
||||
|
||||
|
||||
def quit(self):
|
||||
# 程序退出
|
||||
qApp.exit(1)
|
||||
if(self.udp is not None):
|
||||
print("close udp thread")
|
||||
self.udp.close()
|
||||
|
||||
# 初始化文件列表
|
||||
def file_list_init(self):
|
||||
self.file_list = QListWidget(self.widget)
|
||||
@@ -596,6 +599,8 @@ class updata_dlg(QWidget):
|
||||
return
|
||||
print("file:",file)
|
||||
w=QDialog(self.widget)
|
||||
w.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||||
w.destroyed.connect(self.quit)
|
||||
w.resize(700-100, len(slave_list)*40+20)
|
||||
w.setWindowTitle("升级mcu")
|
||||
self.updata_mcu(slave_list,file)
|
||||
@@ -609,6 +614,8 @@ class updata_dlg(QWidget):
|
||||
return
|
||||
print("slaves:",slave_list)
|
||||
w=QDialog(self.widget)
|
||||
w.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||||
w.destroyed.connect(self.quit)
|
||||
w.resize(700-100, len(slave_list)*40+20)
|
||||
w.setWindowTitle("升级方案")
|
||||
self.scheme_mcu(slave_list)
|
||||
@@ -770,6 +777,7 @@ class updata_dlg(QWidget):
|
||||
# 开始升级mcu
|
||||
def updata_mcu(self,ip_list,file):
|
||||
u=udp.myudp(1,255)
|
||||
self.udp=u
|
||||
u.dst_ip_list=ip_list
|
||||
u.rate_signal.connect(self.rate_slot)
|
||||
u.end_signal.connect(self.end_slot)
|
||||
@@ -784,6 +792,7 @@ class updata_dlg(QWidget):
|
||||
# 开始升级方案
|
||||
def scheme_mcu(self,ip_list):
|
||||
u=udp.myudp(1,255)
|
||||
self.udp=u
|
||||
u.dst_ip_list=ip_list
|
||||
u.rate_signal.connect(self.rate_slot)
|
||||
u.end_signal.connect(self.end_slot)
|
||||
|
Reference in New Issue
Block a user