From d53480290c46864f49314b6a24ab87a143dcabbf Mon Sep 17 00:00:00 2001 From: SpudGunMan Date: Thu, 28 Nov 2024 14:56:49 -0800 Subject: [PATCH] wantAck --- config.template | 2 ++ modules/settings.py | 1 + modules/system.py | 19 ++++++++++++++----- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/config.template b/config.template index 6ccb6e6..2f15303 100644 --- a/config.template +++ b/config.template @@ -150,4 +150,6 @@ responseDelay = 0.7 splitDelay = 0.0 # message chunk size for sending at high success rate MESSAGE_CHUNK_SIZE = 160 +# Request Acknowledgement of message OTA +wantAck = False diff --git a/modules/settings.py b/modules/settings.py index 4e7afc1..b7bb570 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -185,6 +185,7 @@ try: responseDelay = config['messagingSettings'].getfloat('responseDelay', 0.7) # default 0.7 splitDelay = config['messagingSettings'].getfloat('splitDelay', 0) # default 0 MESSAGE_CHUNK_SIZE = config['messagingSettings'].getint('MESSAGE_CHUNK_SIZE', 160) # default 160 + wantAck = config['messagingSettings'].getboolean('wantAck', False) # default False except KeyError as e: print(f"System: Error reading config file: {e}") diff --git a/modules/system.py b/modules/system.py index ab49c7b..e65453a 100644 --- a/modules/system.py +++ b/modules/system.py @@ -496,13 +496,22 @@ def send_message(message, ch, nodeid=0, nodeInt=1): else: # message is less than MESSAGE_CHUNK_SIZE characters if nodeid == 0: # Send to channel - logger.info(f"Device:{nodeInt} Channel:{ch} " + CustomFormatter.red + "SendingChannel: " + CustomFormatter.white + message.replace('\n', ' ')) - interface.sendText(text=message, channelIndex=ch) + if wantAck: + logger.info(f"Device:{nodeInt} Channel:{ch} " + CustomFormatter.red + "req.ACK " + "SendingChannel: " + CustomFormatter.white + message.replace('\n', ' ')) + interface.sendText(text=message, channelIndex=ch, wantAck=True) + else: + logger.info(f"Device:{nodeInt} Channel:{ch} " + CustomFormatter.red + "SendingChannel: " + CustomFormatter.white + message.replace('\n', ' ')) + interface.sendText(text=message, channelIndex=ch) else: # Send to DM - logger.info(f"Device:{nodeInt} " + CustomFormatter.red + "Sending DM: " + CustomFormatter.white + message.replace('\n', ' ') + CustomFormatter.purple +\ - " To: " + CustomFormatter.white + f"{get_name_from_number(nodeid, 'long', nodeInt)}") - interface.sendText(text=message, channelIndex=ch, destinationId=nodeid) + if wantAck: + logger.info(f"Device:{nodeInt} " + CustomFormatter.red + "req.ACK " + "Sending DM: " + CustomFormatter.white + message.replace('\n', ' ') + CustomFormatter.purple +\ + " To: " + CustomFormatter.white + f"{get_name_from_number(nodeid, 'long', nodeInt)}") + interface.sendText(text=message, channelIndex=ch, destinationId=nodeid, wantAck=True) + else: + logger.info(f"Device:{nodeInt} " + CustomFormatter.red + "Sending DM: " + CustomFormatter.white + message.replace('\n', ' ') + CustomFormatter.purple +\ + " To: " + CustomFormatter.white + f"{get_name_from_number(nodeid, 'long', nodeInt)}") + interface.sendText(text=message, channelIndex=ch, destinationId=nodeid) return True def get_wikipedia_summary(search_term):