udp.py 添加close函数用于关闭后台线程,
解决updata_ssh 后台线程无法正常关闭的问题 调整服务器文件列表显示,服务器文件夹显示中文别名
This commit is contained in:
@@ -106,3 +106,7 @@
|
|||||||
解决updata 关闭时串口没有正常关闭的问题
|
解决updata 关闭时串口没有正常关闭的问题
|
||||||
修改服务器文件列表显示
|
修改服务器文件列表显示
|
||||||
添加.jwt文件解析
|
添加.jwt文件解析
|
||||||
|
2023.11.5
|
||||||
|
udp.py 添加close函数用于关闭后台线程,解决updata_ssh 后台线程无法正常关闭的问题
|
||||||
|
调整服务器文件列表显示,服务器文件夹显示中文别名
|
||||||
|
|
||||||
|
@@ -55,7 +55,7 @@ class coder(QObject):
|
|||||||
self.ser_is_open = False
|
self.ser_is_open = False
|
||||||
self.recv_handler=None
|
self.recv_handler=None
|
||||||
self.autoinc_id=False
|
self.autoinc_id=False
|
||||||
self.openignore_flag=False
|
self.openignore_flag=True
|
||||||
self.autotest_is_open=0
|
self.autotest_is_open=0
|
||||||
self.uid_length=16
|
self.uid_length=16
|
||||||
self.code_list_backcolor=False
|
self.code_list_backcolor=False
|
||||||
@@ -205,7 +205,7 @@ class coder(QObject):
|
|||||||
def com_but_init(self):
|
def com_but_init(self):
|
||||||
self.com_but = QPushButton(self.widget)
|
self.com_but = QPushButton(self.widget)
|
||||||
self.com_but.setObjectName(u"com_but")
|
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.setText("打开端口")
|
||||||
self.com_but.clicked.connect(self.com_but_clicked)
|
self.com_but.clicked.connect(self.com_but_clicked)
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ class coder(QObject):
|
|||||||
def moterup_init(self):
|
def moterup_init(self):
|
||||||
self.moterup=QPushButton(self.widget)
|
self.moterup=QPushButton(self.widget)
|
||||||
self.moterup.setObjectName(u"moteerup")
|
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.setText("电机上升")
|
||||||
self.moterup.clicked.connect(self.cmd_moter_up)
|
self.moterup.clicked.connect(self.cmd_moter_up)
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ class coder(QObject):
|
|||||||
def autoinc_init(self):
|
def autoinc_init(self):
|
||||||
self.autoinc=QPushButton(self.widget)
|
self.autoinc=QPushButton(self.widget)
|
||||||
self.autoinc.setObjectName(u"autoinc")
|
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.connect(self.autoinc_clicked)
|
||||||
self.autoinc_clicked()
|
self.autoinc_clicked()
|
||||||
|
|
||||||
@@ -229,7 +229,7 @@ class coder(QObject):
|
|||||||
def check_but_init(self):
|
def check_but_init(self):
|
||||||
self.check_but=QPushButton(self.widget)
|
self.check_but=QPushButton(self.widget)
|
||||||
self.check_but.setObjectName(u"check_but")
|
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.clicked.connect(self.check_but_clicked)
|
||||||
self.check_but.setText("开始检测")
|
self.check_but.setText("开始检测")
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ class coder(QObject):
|
|||||||
def posend_but_init(self):
|
def posend_but_init(self):
|
||||||
self.posend_but=QPushButton(self.widget)
|
self.posend_but=QPushButton(self.widget)
|
||||||
self.posend_but.setObjectName(u"posend_but")
|
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.clicked.connect(self.posend_but_clicked)
|
||||||
self.posend_but.setText("到位感应")
|
self.posend_but.setText("到位感应")
|
||||||
|
|
||||||
@@ -245,7 +245,7 @@ class coder(QObject):
|
|||||||
def autotest_but_init(self):
|
def autotest_but_init(self):
|
||||||
self.autotest_but=QPushButton(self.widget)
|
self.autotest_but=QPushButton(self.widget)
|
||||||
self.autotest_but.setObjectName(u"autotest_but")
|
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.clicked.connect(self.autotest_but_clicked)
|
||||||
self.autotest_but.setText("开自动测试")
|
self.autotest_but.setText("开自动测试")
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@ class coder(QObject):
|
|||||||
def stop_but_init(self):
|
def stop_but_init(self):
|
||||||
self.stop_but=QPushButton(self.widget)
|
self.stop_but=QPushButton(self.widget)
|
||||||
self.stop_but.setObjectName(u"stop_but")
|
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_but.clicked.connect(self.stop_but_clicked)
|
||||||
self.stop_state=True
|
self.stop_state=True
|
||||||
self.stop_but_clicked()
|
self.stop_but_clicked()
|
||||||
@@ -262,7 +262,7 @@ class coder(QObject):
|
|||||||
def code_but_init(self):
|
def code_but_init(self):
|
||||||
self.code_but=QPushButton(self.widget)
|
self.code_but=QPushButton(self.widget)
|
||||||
self.code_but.setObjectName(u"code_but")
|
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.clicked.connect(self.code_but_clicked)
|
||||||
self.code_but.setText("赋码")
|
self.code_but.setText("赋码")
|
||||||
|
|
||||||
@@ -270,7 +270,7 @@ class coder(QObject):
|
|||||||
def moterdown_init(self):
|
def moterdown_init(self):
|
||||||
self.moterdown=QPushButton(self.widget)
|
self.moterdown=QPushButton(self.widget)
|
||||||
self.moterdown.setObjectName(u"moteerup")
|
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.setText("电机下降")
|
||||||
self.moterdown.clicked.connect(self.cmd_moter_down)
|
self.moterdown.clicked.connect(self.cmd_moter_down)
|
||||||
|
|
||||||
@@ -278,7 +278,7 @@ class coder(QObject):
|
|||||||
def openignore_init(self):
|
def openignore_init(self):
|
||||||
self.openignore=QPushButton(self.widget)
|
self.openignore=QPushButton(self.widget)
|
||||||
self.openignore.setObjectName(u"moteerup")
|
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.connect(self.openignore_clicked)
|
||||||
self.openignore_clicked()
|
self.openignore_clicked()
|
||||||
|
|
||||||
@@ -552,8 +552,8 @@ class coder(QObject):
|
|||||||
|
|
||||||
# 初始化处理函数列表
|
# 初始化处理函数列表
|
||||||
def recv_handler_table_init(self):
|
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_handler_table={"批检仪检测后赋码(XT)":(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),
|
"批检仪检测时赋码(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)}
|
"赋码控制器":(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):
|
def item_append(self,items:list):
|
||||||
for i in items:
|
for i in items:
|
||||||
# print("add item",i[0])
|
# print("add item",i[0])
|
||||||
self.file_list.addItem(i[0])
|
self.file_list.addItem(_tran_(i[0]))
|
||||||
def item_clicked(self,item:QListWidgetItem ):
|
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.done(QDialog.DialogCode.Accepted)
|
||||||
self.w.close()
|
self.w.close()
|
||||||
def show(self):
|
def show(self):
|
||||||
@@ -75,21 +103,21 @@ class file_list(QDialog):
|
|||||||
|
|
||||||
def __init__(self,father:QDialog,title:str,str_list:list):
|
def __init__(self,father:QDialog,title:str,str_list:list):
|
||||||
QDialog.__init__(self,father)
|
QDialog.__init__(self,father)
|
||||||
self.resize(1000,400)
|
self.resize(1200,700)
|
||||||
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
self.code_list=QTableWidget(self)
|
self.code_list=QTableWidget(self)
|
||||||
self.code_list.setObjectName(u"code_list")
|
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.setColumnCount(4)
|
||||||
self.code_list.setHorizontalHeaderLabels(list(["ID","上传时间","文件名","描述"]))
|
self.code_list.setHorizontalHeaderLabels(list(["ID","上传时间","文件名","描述"]))
|
||||||
self.code_list.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
self.code_list.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
||||||
self.code_list.horizontalHeader().setSectionResizeMode(0,QHeaderView.ResizeMode.Fixed)
|
self.code_list.horizontalHeader().setSectionResizeMode(0,QHeaderView.ResizeMode.Fixed)
|
||||||
self.code_list.setColumnWidth(0,50)
|
self.code_list.setColumnWidth(0,50)
|
||||||
self.code_list.horizontalHeader().setSectionResizeMode(1,QHeaderView.ResizeMode.Fixed)
|
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.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.setSelectionBehavior( QAbstractItemView.SelectionBehavior.SelectRows)
|
||||||
self.code_list.cellDoubleClicked.connect(self.cell_clicked)
|
self.code_list.cellDoubleClicked.connect(self.cell_clicked)
|
||||||
self.backcolor=True
|
self.backcolor=True
|
||||||
|
@@ -73,6 +73,8 @@ class myudp(QObject):
|
|||||||
def send(self,ip,cmd,recv_num,timeout):
|
def send(self,ip,cmd,recv_num,timeout):
|
||||||
resoult=True
|
resoult=True
|
||||||
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
self.udp=udp
|
||||||
|
self.send_on=True
|
||||||
local_addr = ("", 0)
|
local_addr = ("", 0)
|
||||||
udp.bind(local_addr)
|
udp.bind(local_addr)
|
||||||
udp.settimeout(timeout)
|
udp.settimeout(timeout)
|
||||||
@@ -80,6 +82,8 @@ class myudp(QObject):
|
|||||||
try:
|
try:
|
||||||
index=0
|
index=0
|
||||||
while index<recv_num:
|
while index<recv_num:
|
||||||
|
if(self.send_on==False):
|
||||||
|
return False
|
||||||
recv_data = udp.recvfrom(1024)
|
recv_data = udp.recvfrom(1024)
|
||||||
recv_msg = recv_data[0]
|
recv_msg = recv_data[0]
|
||||||
send_addr = recv_data[1]
|
send_addr = recv_data[1]
|
||||||
@@ -136,6 +140,11 @@ class myudp(QObject):
|
|||||||
|
|
||||||
for t in threads:
|
for t in threads:
|
||||||
t.join()
|
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=updata_dlg()
|
||||||
dlg.show()
|
dlg.show()
|
||||||
app.exec()
|
app.exec()
|
||||||
|
print("exe end.")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
print("exe end2.")
|
||||||
|
@@ -118,6 +118,7 @@ class updata_dlg(QWidget):
|
|||||||
self.widget.setWindowTitle("批检仪程序升级")
|
self.widget.setWindowTitle("批检仪程序升级")
|
||||||
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||||
self.addrs=""
|
self.addrs=""
|
||||||
|
self.udp=None
|
||||||
self.dhcp_server=None
|
self.dhcp_server=None
|
||||||
# 如果要升级服务,则在升级之后ssh会连接不上
|
# 如果要升级服务,则在升级之后ssh会连接不上
|
||||||
self.systemd_stop=False
|
self.systemd_stop=False
|
||||||
@@ -155,8 +156,10 @@ class updata_dlg(QWidget):
|
|||||||
|
|
||||||
|
|
||||||
def quit(self):
|
def quit(self):
|
||||||
# 程序退出
|
if(self.udp is not None):
|
||||||
qApp.exit(1)
|
print("close udp thread")
|
||||||
|
self.udp.close()
|
||||||
|
|
||||||
# 初始化文件列表
|
# 初始化文件列表
|
||||||
def file_list_init(self):
|
def file_list_init(self):
|
||||||
self.file_list = QListWidget(self.widget)
|
self.file_list = QListWidget(self.widget)
|
||||||
@@ -596,6 +599,8 @@ class updata_dlg(QWidget):
|
|||||||
return
|
return
|
||||||
print("file:",file)
|
print("file:",file)
|
||||||
w=QDialog(self.widget)
|
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.resize(700-100, len(slave_list)*40+20)
|
||||||
w.setWindowTitle("升级mcu")
|
w.setWindowTitle("升级mcu")
|
||||||
self.updata_mcu(slave_list,file)
|
self.updata_mcu(slave_list,file)
|
||||||
@@ -609,6 +614,8 @@ class updata_dlg(QWidget):
|
|||||||
return
|
return
|
||||||
print("slaves:",slave_list)
|
print("slaves:",slave_list)
|
||||||
w=QDialog(self.widget)
|
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.resize(700-100, len(slave_list)*40+20)
|
||||||
w.setWindowTitle("升级方案")
|
w.setWindowTitle("升级方案")
|
||||||
self.scheme_mcu(slave_list)
|
self.scheme_mcu(slave_list)
|
||||||
@@ -770,6 +777,7 @@ class updata_dlg(QWidget):
|
|||||||
# 开始升级mcu
|
# 开始升级mcu
|
||||||
def updata_mcu(self,ip_list,file):
|
def updata_mcu(self,ip_list,file):
|
||||||
u=udp.myudp(1,255)
|
u=udp.myudp(1,255)
|
||||||
|
self.udp=u
|
||||||
u.dst_ip_list=ip_list
|
u.dst_ip_list=ip_list
|
||||||
u.rate_signal.connect(self.rate_slot)
|
u.rate_signal.connect(self.rate_slot)
|
||||||
u.end_signal.connect(self.end_slot)
|
u.end_signal.connect(self.end_slot)
|
||||||
@@ -784,6 +792,7 @@ class updata_dlg(QWidget):
|
|||||||
# 开始升级方案
|
# 开始升级方案
|
||||||
def scheme_mcu(self,ip_list):
|
def scheme_mcu(self,ip_list):
|
||||||
u=udp.myudp(1,255)
|
u=udp.myudp(1,255)
|
||||||
|
self.udp=u
|
||||||
u.dst_ip_list=ip_list
|
u.dst_ip_list=ip_list
|
||||||
u.rate_signal.connect(self.rate_slot)
|
u.rate_signal.connect(self.rate_slot)
|
||||||
u.end_signal.connect(self.end_slot)
|
u.end_signal.connect(self.end_slot)
|
||||||
|
Reference in New Issue
Block a user