添加dhcp和串口控制台功能
This commit is contained in:
@@ -14,8 +14,11 @@ import encodings.idna
|
||||
import base64
|
||||
import memory_pic
|
||||
import ctypes
|
||||
import mysql
|
||||
import select_list
|
||||
import dhcp.dhcp as dhcp
|
||||
import mysql
|
||||
import console_uart
|
||||
|
||||
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")
|
||||
|
||||
STR_RED="\033[1;31m"
|
||||
@@ -103,15 +106,19 @@ class updata_dlg(QObject):
|
||||
QObject.__init__(self)
|
||||
self.app = QApplication(sys.argv)
|
||||
self.widget = QWidget()
|
||||
self.widget.resize(703, 409)
|
||||
self.widget.resize(820, 410)
|
||||
self.widget.setWindowTitle("批检仪程序升级")
|
||||
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
self.addrs=""
|
||||
self.dhcp_server=None
|
||||
self.but_y=60
|
||||
self.but_y_step=40
|
||||
self.file_list_init()
|
||||
self.slave_list_init()
|
||||
self.save_but_init()
|
||||
self.dhcp_but_init()
|
||||
self.console_but_init()
|
||||
self.console_but_init()
|
||||
self.cmd_but_init()
|
||||
self.refresh_but_init()
|
||||
self.sstate_but_init()
|
||||
@@ -193,6 +200,23 @@ class updata_dlg(QObject):
|
||||
self.save_but.setToolTip("请先选中要升级的主板和文件,然后点击此按钮发送到设备中。")
|
||||
# self.save_but.setToolTipDuration(1)
|
||||
|
||||
# 初始化DHCP服务器按钮
|
||||
def dhcp_but_init(self):
|
||||
self.dhcp_but = QPushButton(self.widget)
|
||||
self.dhcp_but.setObjectName(u"dhcp_but")
|
||||
self.dhcp_but.setGeometry(QRect(700, 60, 93, 28))
|
||||
self.dhcp_but.setText("打开DHCP")
|
||||
self.dhcp_but.clicked.connect(self.dhcp_but_clicked)
|
||||
self.dhcp_but.setToolTip("如果没有搜索到从机,则打开DHCP服务器。")
|
||||
|
||||
# 初始化控制台按钮
|
||||
def console_but_init(self):
|
||||
self.console_but = QPushButton(self.widget)
|
||||
self.console_but.setObjectName(u"console_but")
|
||||
self.console_but.setGeometry(QRect(700, 100, 93, 28))
|
||||
self.console_but.setText("串口控制台")
|
||||
self.console_but.clicked.connect(self.console_but_clicked)
|
||||
self.console_but.setToolTip("通过设备的串口控制台升级程序,这种方式需要使用到U盘。")
|
||||
|
||||
# 初始化发送命令按钮
|
||||
def cmd_but_init(self):
|
||||
@@ -379,7 +403,10 @@ class updata_dlg(QObject):
|
||||
elif(i[-4:]==".dtb"):
|
||||
dst_list.append("/run/media/mmcblk2p2/"+i)
|
||||
elif(i[-5:]==".json"):
|
||||
dst_list.append("/home/root/config/"+"checker_ye_cfg.json")
|
||||
if(i!="cfg.json"):
|
||||
dst_list.append("/home/root/config/"+"checker_ye_cfg.json")
|
||||
else:
|
||||
dst_list.append("/home/root/config/"+"cfg.json")
|
||||
elif(i[-4:]==".lua"):
|
||||
dst_list.append("/home/root/config/"+"judge.lua")
|
||||
elif(i[-4:]==".axf"):
|
||||
@@ -401,6 +428,35 @@ class updata_dlg(QObject):
|
||||
elif(s=="20通道"):
|
||||
self.addrs="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 "
|
||||
print("addrs:",self.addrs)
|
||||
|
||||
def console_but_clicked(self):
|
||||
print("console_but_clicked.")
|
||||
dlg=console_uart.console_dlg(self.widget,"串口控制台")
|
||||
dlg.show()
|
||||
print("Console end.")
|
||||
def dhcp_but_clicked(self):
|
||||
print("dhcp_but clicked.")
|
||||
if(self.dhcp_server==None):
|
||||
self.dhcp_but.setEnabled(False)
|
||||
self.dhcp_server=dhcp.creat_dhcp_server()
|
||||
self.dhcp_server.new_ip_addr_signal.connect(self.add_slave_slot)
|
||||
self.dhcp_server.server_start_signal.connect(self.dhcp_start_slot)
|
||||
self.dhcp_server.server_end_signal.connect(self.dhcp_end_slot)
|
||||
self.dhcp_server.run_in_thread()
|
||||
else:
|
||||
self.dhcp_but.setEnabled(False)
|
||||
self.dhcp_server.new_ip_addr_signal.disconnect(dlg.add_slave_slot)
|
||||
self.dhcp_server.close()
|
||||
def dhcp_start_slot(self):
|
||||
self.dhcp_but.setText("关闭DHCP")
|
||||
self.dhcp_but.setEnabled(True)
|
||||
def dhcp_end_slot(self):
|
||||
self.dhcp_but.setText("打开DHCP")
|
||||
self.dhcp_but.setEnabled(True)
|
||||
self.dhcp_server.server_start_signal.disconnect(self.dhcp_start_slot)
|
||||
self.dhcp_server.server_end_signal.disconnect(self.dhcp_end_slot)
|
||||
self.dhcp_server=None
|
||||
|
||||
# 发送文件按钮按下
|
||||
def save_but_clicked(self):
|
||||
print("save_but_clicked.")
|
||||
@@ -528,7 +584,11 @@ class updata_dlg(QObject):
|
||||
# 开始运行
|
||||
def run(self):
|
||||
self.widget.show()
|
||||
sys.exit(self.app.exec())
|
||||
a=self.app.exec()
|
||||
print("run end.")
|
||||
if(self.dhcp_server!=None):
|
||||
self.dhcp_server.close()
|
||||
# sys.exit(a)
|
||||
|
||||
# 扫描文件
|
||||
def scan_file(self):
|
||||
@@ -557,6 +617,14 @@ class updata_dlg(QObject):
|
||||
list_str.append(i[0]+','+i[1])
|
||||
self.slave_list.addItems(list_str)
|
||||
|
||||
# 添加单个从机地址
|
||||
def add_slave_slot(self,mac:str,ip:str,name:str):
|
||||
for i in range(self.slave_list.count()):
|
||||
item=self.slave_list.item(i).text()
|
||||
if(item.split(",")[0]==ip):
|
||||
return
|
||||
self.slave_list.addItem(ip+",dhcp_find")
|
||||
|
||||
# 扫描指定类型的文件
|
||||
def find_type(self,types:list):
|
||||
path = self.getpath()+"file\\"
|
||||
@@ -733,4 +801,3 @@ if __name__ == "__main__":
|
||||
lock=locker()
|
||||
dlg=updata_dlg()
|
||||
dlg.run()
|
||||
|
||||
|
Reference in New Issue
Block a user