Prevent duplicate TFTP server log messages and improve state tracking
- Add filtering mechanism to prevent repeated server start/stop log entries - Implement state tracking flags to manage server status - Remove redundant log messages in both ComConfigCopy.py and TFTPServer.py - Enhance log callback to avoid unnecessary logging of server state changes
This commit is contained in:
@@ -924,7 +924,20 @@ class SerialAppGUI(tk.Tk):
|
||||
|
||||
# Устанавливаем callback для логирования
|
||||
def log_callback(message):
|
||||
# Фильтруем дублирующиеся сообщения о запуске/остановке сервера
|
||||
if "[INFO] TFTP сервер запущен" in message and hasattr(self, '_server_started'):
|
||||
return
|
||||
if "[INFO] TFTP сервер остановлен" in message and hasattr(self, '_server_stopped'):
|
||||
return
|
||||
|
||||
self.append_tftp_log(message)
|
||||
|
||||
# Устанавливаем флаги для отслеживания состояния
|
||||
if "[INFO] TFTP сервер запущен" in message:
|
||||
self._server_started = True
|
||||
elif "[INFO] TFTP сервер остановлен" in message:
|
||||
self._server_stopped = True
|
||||
|
||||
# Обновляем информацию о передачах
|
||||
self.update_transfers_info()
|
||||
|
||||
@@ -944,8 +957,6 @@ class SerialAppGUI(tk.Tk):
|
||||
self.tftp_ip_entry.config(state="disabled")
|
||||
self.tftp_port_entry.config(state="disabled")
|
||||
|
||||
self.append_tftp_log(f"[INFO] TFTP сервер запущен на {ip}:{port}")
|
||||
|
||||
# Запускаем периодическое обновление информации о передачах
|
||||
self.update_transfers_periodically()
|
||||
|
||||
@@ -968,6 +979,12 @@ class SerialAppGUI(tk.Tk):
|
||||
self.start_tftp_button.config(state="disabled")
|
||||
self.stop_tftp_button.config(state="disabled")
|
||||
|
||||
# Сбрасываем флаги состояния
|
||||
if hasattr(self, '_server_started'):
|
||||
delattr(self, '_server_started')
|
||||
if hasattr(self, '_server_stopped'):
|
||||
delattr(self, '_server_stopped')
|
||||
|
||||
# Останавливаем сервер
|
||||
self.tftp_server.stop_server()
|
||||
|
||||
@@ -987,8 +1004,6 @@ class SerialAppGUI(tk.Tk):
|
||||
self.tftp_ip_entry.config(state="normal")
|
||||
self.tftp_port_entry.config(state="normal")
|
||||
|
||||
self.append_tftp_log("[INFO] TFTP сервер остановлен")
|
||||
|
||||
# Очищаем таблицу передач
|
||||
for item in self.transfers_tree.get_children():
|
||||
self.transfers_tree.delete(item)
|
||||
|
||||
Reference in New Issue
Block a user