From 5beea74eb37bc6f5a25c0a3ad219e296bebf737d Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Tue, 11 Nov 2025 10:29:06 +0100 Subject: [PATCH] Handle serial port never being opened due to failure on interface detach for RNodeInterface --- RNS/Interfaces/Android/RNodeInterface.py | 13 ++++++++----- RNS/Interfaces/RNodeInterface.py | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/RNS/Interfaces/Android/RNodeInterface.py b/RNS/Interfaces/Android/RNodeInterface.py index cfd500b..e945f43 100644 --- a/RNS/Interfaces/Android/RNodeInterface.py +++ b/RNS/Interfaces/Android/RNodeInterface.py @@ -1528,12 +1528,15 @@ class RNodeInterface(Interface): def detach(self): self.detached = True - self.disable_external_framebuffer() - self.setRadioState(KISS.RADIO_STATE_OFF) - self.leave() + try: + self.disable_external_framebuffer() + self.setRadioState(KISS.RADIO_STATE_OFF) + self.leave() - if self.use_ble: - self.ble.close() + except Exception as e: + RNS.log(f"An error occurred while detaching {self}: {e}", RNS.LOG_ERROR) + + if self.use_ble: self.ble.close() def should_ingress_limit(self): return False diff --git a/RNS/Interfaces/RNodeInterface.py b/RNS/Interfaces/RNodeInterface.py index deb90af..ee35c01 100644 --- a/RNS/Interfaces/RNodeInterface.py +++ b/RNS/Interfaces/RNodeInterface.py @@ -1124,12 +1124,15 @@ class RNodeInterface(Interface): def detach(self): self.detached = True - self.disable_external_framebuffer() - self.setRadioState(KISS.RADIO_STATE_OFF) - self.leave() + try: + self.disable_external_framebuffer() + self.setRadioState(KISS.RADIO_STATE_OFF) + self.leave() + + except Exception as e: + RNS.log(f"An error occurred while detaching {self}: {e}", RNS.LOG_ERROR) - if self.use_ble: - self.ble.close() + if self.use_ble: self.ble.close() def should_ingress_limit(self): return False