@@ -171,7 +171,6 @@ class EInkControlGUI:
171171
172172 # Configuration
173173 SOCKET_PATH = '/run/tinta4plus.sock'
174- KEEPALIVE_INTERVAL = 2.4 # seconds (send keepalive every 2.4s, watchdog is 20s)
175174 SOCKET_TIMEOUT = 10.0 # seconds
176175 CONFIG_DIR = os .path .expanduser ("~/.config/Tinta4Plus" )
177176 SETTINGS_FILE = os .path .join (os .path .expanduser ("~/.config/Tinta4Plus" ), "settings" )
@@ -200,7 +199,6 @@ def __init__(self, root, HELPER_SCRIPT, logger):
200199
201200 # Helper client
202201 self .helper = HelperClient (logger )
203- self .keepalive_after_id = None
204202
205203 # Managers
206204 self .display_mgr = DisplayManager (logger )
@@ -660,7 +658,6 @@ def initialize_helper(self):
660658 if self .helper .connect (self .SOCKET_PATH , timeout = self .SOCKET_TIMEOUT ):
661659 self .update_status ("Connected to helper daemon" )
662660 self .log_message ("Connected to helper daemon" )
663- self .start_keepalive ()
664661 self .root .after (500 , self .check_ec_status )
665662 return
666663 except Exception as e :
@@ -672,65 +669,9 @@ def initialize_helper(self):
672669 "Run installer or check:\n "
673670 " systemctl status tinta4plus-helper.socket"
674671 )
675-
676- def start_keepalive (self ):
677- """Start periodic keepalive messages"""
678- if self .keepalive_after_id :
679- self .root .after_cancel (self .keepalive_after_id )
680-
681- self .keepalive_after_id = self .root .after (
682- int (self .KEEPALIVE_INTERVAL * 1000 ),
683- self .send_keepalive
684- )
685- self .logger .info (f"Started keepalive timer ({ self .KEEPALIVE_INTERVAL } s interval)" )
686-
687- def send_keepalive (self ):
688- """Send keepalive message to helper with improved error handling"""
689- if not self .helper .is_connected ():
690- self .update_status ("Helper disconnected - attempting restart..." , error = True )
691- last_error = self .helper .get_last_error ()
692- error_msg = f"Helper disconnected: { last_error } " if last_error else "Helper disconnected"
693- self .log_message (f"{ error_msg } , attempting to restart..." , level = 'error' )
694- self .attempt_helper_restart ()
695- return # Don't schedule next keepalive
696-
697- try :
698- response = self .helper .send_command ('keepalive' )
699- if not response or not response .get ('success' ):
700- self .logger .warning (f"Keepalive failed: { response } " )
701- self .log_message ("Keepalive failed, restarting helper..." , level = 'error' )
702- self .attempt_helper_restart ()
703- return
704-
705- # Log successful keepalive at debug level to avoid spam
706- self .logger .debug ("Keepalive successful" )
707-
708- # Schedule next keepalive
709- self .keepalive_after_id = self .root .after (
710- int (self .KEEPALIVE_INTERVAL * 1000 ),
711- self .send_keepalive
712- )
713-
714- except RuntimeError as e :
715- # Connection-related errors
716- self .logger .error (f"Keepalive connection error: { e } " )
717- self .update_status ("Helper connection lost - restarting..." , error = True )
718- self .log_message (f"Connection error: { e } " , level = 'error' )
719- self .attempt_helper_restart ()
720-
721- except Exception as e :
722- # Unexpected errors
723- self .logger .error (f"Keepalive unexpected error: { e } " , exc_info = True )
724- self .update_status ("Helper error - restarting..." , error = True )
725- self .log_message (f"Unexpected error: { e } " , level = 'error' )
726- self .attempt_helper_restart ()
727-
672+
728673 def attempt_helper_restart (self ):
729674 """Attempt to reconnect to systemd socket-activated helper."""
730- if self .keepalive_after_id :
731- self .root .after_cancel (self .keepalive_after_id )
732- self .keepalive_after_id = None
733-
734675 self .log_message ("Attempting to reconnect to helper daemon..." )
735676
736677 try :
@@ -745,7 +686,6 @@ def attempt_helper_restart(self):
745686 if self .helper .connect (self .SOCKET_PATH , timeout = self .SOCKET_TIMEOUT ):
746687 self .log_message ("✓ Reconnected to helper daemon" )
747688 self .update_status ("Reconnected to helper daemon" )
748- self .start_keepalive ()
749689 self .root .after (500 , self .check_ec_status )
750690 return
751691 except Exception as e :
@@ -1093,10 +1033,6 @@ def on_closing(self):
10931033 # Stop refresh timer
10941034 self ._stop_refresh_timer ()
10951035
1096- # Stop keepalive
1097- if self .keepalive_after_id :
1098- self .root .after_cancel (self .keepalive_after_id )
1099-
11001036 # Disconnect from helper client socket
11011037 if self .helper .is_connected ():
11021038 self .helper .disconnect ()
0 commit comments