no message
This commit is contained in:
@@ -322,6 +322,7 @@ class mainWindow(QWidget):
|
|||||||
|
|
||||||
info = self.portCombo.currentData()
|
info = self.portCombo.currentData()
|
||||||
if info[1] == 1155:
|
if info[1] == 1155:
|
||||||
|
print("DFU")
|
||||||
self.stopBtn.setEnabled(False)
|
self.stopBtn.setEnabled(False)
|
||||||
self.statusBar.showMessage("Serial to DFU...")
|
self.statusBar.showMessage("Serial to DFU...")
|
||||||
serial = QSerialPort(self)
|
serial = QSerialPort(self)
|
||||||
@@ -350,6 +351,7 @@ class mainWindow(QWidget):
|
|||||||
# self.task.start()
|
# self.task.start()
|
||||||
|
|
||||||
elif info[1] != 0:
|
elif info[1] != 0:
|
||||||
|
print("串口")
|
||||||
self.stopBtn.setEnabled(True)
|
self.stopBtn.setEnabled(True)
|
||||||
self.task = stk500v2Thread(self, info[0], int(self.baudCombo.currentText()),
|
self.task = stk500v2Thread(self, info[0], int(self.baudCombo.currentText()),
|
||||||
self.file.text(), self.progressUpdate)
|
self.file.text(), self.progressUpdate)
|
||||||
|
37
src/pydfu.py
37
src/pydfu.py
@@ -114,18 +114,6 @@ def init(**kwargs):
|
|||||||
"""Initializes the found DFU device so that we can program it."""
|
"""Initializes the found DFU device so that we can program it."""
|
||||||
global __dev, __cfg_descr
|
global __dev, __cfg_descr
|
||||||
devices = get_dfu_devices(**kwargs)
|
devices = get_dfu_devices(**kwargs)
|
||||||
|
|
||||||
# Waiting 2 seconds before trying again..."
|
|
||||||
attempts = 0
|
|
||||||
while not devices:
|
|
||||||
devices = get_dfu_devices(**kwargs)
|
|
||||||
attempts += 1
|
|
||||||
print(" + str(attempts) + ", attempts)
|
|
||||||
time.sleep(2)
|
|
||||||
# # 尝试5次后,报错
|
|
||||||
# if attempts >= 5:
|
|
||||||
# break
|
|
||||||
|
|
||||||
if not devices:
|
if not devices:
|
||||||
raise ValueError("No DFU device found")
|
raise ValueError("No DFU device found")
|
||||||
if len(devices) > 1:
|
if len(devices) > 1:
|
||||||
@@ -866,9 +854,9 @@ class DFUTool(QThread):
|
|||||||
self.speed = speed
|
self.speed = speed
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.programmer = None
|
|
||||||
self.isWork = False
|
self.isWork = False
|
||||||
self.finished.connect(self.done)
|
self.finished.connect(self.done)
|
||||||
|
print("__init__")
|
||||||
|
|
||||||
global __verbose
|
global __verbose
|
||||||
# Parse CMD args
|
# Parse CMD args
|
||||||
@@ -912,12 +900,14 @@ class DFUTool(QThread):
|
|||||||
|
|
||||||
def w(state):
|
def w(state):
|
||||||
if state is False:
|
if state is False:
|
||||||
|
print("未找到DFU")
|
||||||
self.stateCallback[Exception].emit(portError(portError.errorOpen, port))
|
self.stateCallback[Exception].emit(portError(portError.errorOpen, port))
|
||||||
self.stateCallback[str].emit("Done!")
|
self.stateCallback[str].emit("Done!")
|
||||||
self.quit()
|
self.quit()
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
print("找到DFU")
|
||||||
self.thread.exit()
|
self.thread.exit()
|
||||||
init(**kwargs)
|
init(**kwargs)
|
||||||
self.start()
|
self.start()
|
||||||
@@ -940,8 +930,10 @@ class DFUTool(QThread):
|
|||||||
print("QMetaObject_Connection")
|
print("QMetaObject_Connection")
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
print("run")
|
||||||
self.isWork = True
|
self.isWork = True
|
||||||
try:
|
try:
|
||||||
|
print("try")
|
||||||
with open(self.args.path, "rb") as fin:
|
with open(self.args.path, "rb") as fin:
|
||||||
dfu_file = fin.read()
|
dfu_file = fin.read()
|
||||||
|
|
||||||
@@ -950,8 +942,6 @@ class DFUTool(QThread):
|
|||||||
return
|
return
|
||||||
elem = {"addr": 134217728, "size": len(dfu_file), "data": dfu_file}
|
elem = {"addr": 134217728, "size": len(dfu_file), "data": dfu_file}
|
||||||
|
|
||||||
self.programmer = STM32Dev()
|
|
||||||
|
|
||||||
if self.callback is not None:
|
if self.callback is not None:
|
||||||
self.progressCallback.connect(self.callback)
|
self.progressCallback.connect(self.callback)
|
||||||
|
|
||||||
@@ -960,9 +950,9 @@ class DFUTool(QThread):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
self.stateCallback[str].emit(self.tr("Programming..."))
|
self.stateCallback[str].emit(self.tr("Programming..."))
|
||||||
# self.programmer.
|
|
||||||
write_elements([elem], self.args.mass_erase, progress=self.cl_progress)
|
write_elements([elem], self.args.mass_erase, progress=self.cl_progress)
|
||||||
exit_dfu() # 退出DFU模式
|
exit_dfu() # 退出DFU模式
|
||||||
|
print("exit_dfu")
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
if self.isInterruptionRequested():
|
if self.isInterruptionRequested():
|
||||||
print("int")
|
print("int")
|
||||||
@@ -976,23 +966,9 @@ class DFUTool(QThread):
|
|||||||
self.isWork = False
|
self.isWork = False
|
||||||
finally:
|
finally:
|
||||||
self.stateCallback[str].emit("Done!")
|
self.stateCallback[str].emit("Done!")
|
||||||
self.programmer = None
|
|
||||||
|
|
||||||
def isReady(self):
|
def isReady(self):
|
||||||
return True
|
return True
|
||||||
return self.programmer is not None and self.programmer.isConnected()
|
|
||||||
|
|
||||||
try:
|
|
||||||
status = get_status()
|
|
||||||
print(status)
|
|
||||||
|
|
||||||
if status[1] == 0x02:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
except Exception as err:
|
|
||||||
print("isReady", err)
|
|
||||||
return False
|
|
||||||
|
|
||||||
def done(self):
|
def done(self):
|
||||||
print("结束烧录程序")
|
print("结束烧录程序")
|
||||||
@@ -1025,6 +1001,7 @@ class DFUSearch(QThread):
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
# 耗时内容
|
# 耗时内容
|
||||||
|
print("self.kwargs", self.kwargs)
|
||||||
devices = get_dfu_devices(**self.kwargs)
|
devices = get_dfu_devices(**self.kwargs)
|
||||||
# Waiting 2 seconds before trying again..."
|
# Waiting 2 seconds before trying again..."
|
||||||
attempts = 0
|
attempts = 0
|
||||||
|
Reference in New Issue
Block a user