Skip to content

Commit b0bb2dc

Browse files
manoukianvUltrawipf
authored andcommitted
Fix the autoconnection error, and strange deco during connection process.
1 parent 073aef9 commit b0bb2dc

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

main.py

+14-9
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,16 @@ def __init__(self):
116116
self.active_classes = {}
117117
self.fw_version_str = None
118118

119-
self.setup()
120119

121120
self.process_events_timer = PyQt6.QtCore.QTimer()
122121
self.process_events_timer.timeout.connect(process_events) # Kick eventloop when timeouting
123122
self.axes = 0
124123

124+
self.setup()
125125
self.languagechanged.connect(self.restart_app)
126+
127+
# start the auto disconnect timer (call the board)
128+
self.timer.start(5000)
126129

127130
def setup(self):
128131
"""Init the systray, the serial, the toolbar, the status bar and the connection status."""
@@ -149,9 +152,6 @@ def setup(self):
149152

150153
self.actionDebug_mode.triggered.connect(self.toggle_debug)
151154

152-
self.timer.start(5000)
153-
154-
155155
#self.serialchooser.connected.connect(self.effects_monitor_dlg.setEnabled) # Gets enabled in class management
156156
self.effects_monitor_dlg.setEnabled(False)
157157

@@ -194,7 +194,9 @@ def setup(self):
194194
layout.setContentsMargins(0, 0, 0, 0)
195195
layout.addWidget(self.profile_ui)
196196
self.groupBox_main.setLayout(layout)
197-
197+
198+
199+
def autoconnect(self) :
198200
# after UI load get serial port and if only one : autoconnect
199201
nb_device_compat = self.serialchooser.get_ports()
200202
self.serialchooser.auto_connect(nb_device_compat)
@@ -612,25 +614,27 @@ def version_check(self, ver):
612614

613615
def serial_connected(self, connected):
614616
"""Check the release when a board is connected."""
615-
self.serial_timer = PyQt6.QtCore.QTimer()
616-
617+
617618
def timer_cb():
618619
if not self.connected:
619620
self.log("Can't detect board")
620621
self.reset_port()
621622

622623
def id_cb(identifier):
623624
if identifier:
624-
self.connected = True
625625
self.serial_timer.stop()
626+
self.connected = True
626627

627628
if connected:
628-
self.serial_timer.singleShot(500, timer_cb)
629629
self.get_value_async("main", "id", id_cb, 0)
630630
self.errors_dlg.registerCallbacks()
631631
self.get_value_async("sys", "swver", self.version_check)
632632
self.get_value_async("sys", "hwtype", self.wrapper_status_bar.set_board_text)
633633
self.get_value_async("sys", "debug", self.actionDebug_mode.setChecked,0,int)
634+
635+
if (self.serial_timer is None) :
636+
self.serial_timer = PyQt6.QtCore.QTimer(singleShot=True, timeout=timer_cb)
637+
self.serial_timer.start(500)
634638

635639
else:
636640
self.connected = False
@@ -909,6 +913,7 @@ def process_events():
909913
window.setWindowIcon(PyQt6.QtGui.QIcon(helper.res_path('app.ico')))
910914
window.show()
911915
window.check_configurator_update() # Check for updates after window is shown
916+
window.autoconnect()
912917

913918
exit_code = app.exec()
914919
# Check if we need to restart

serial_comms.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,12 @@ def processMatchedReply(self,match):
214214

215215
if callbackObject["delete"]: # delete if flag is set
216216
#print("Deleting",callbackObject)
217-
SerialComms.callbackDict[cls].remove(callbackObject)
217+
if (SerialComms.callbackDict[cls] is not None) \
218+
and (callbackObject in SerialComms.callbackDict[cls]) :
219+
SerialComms.callbackDict[cls].remove(callbackObject)
220+
else :
221+
#self.logger.error(f"Not found callback {callbackObject} for {cls}")
222+
pass
218223
deleted = True
219224

220225
return deleted

0 commit comments

Comments
 (0)