diff --git a/modem/frame_handler_cq.py b/modem/frame_handler_cq.py index a23d2c69..0486c390 100644 --- a/modem/frame_handler_cq.py +++ b/modem/frame_handler_cq.py @@ -9,7 +9,8 @@ class CQFrameHandler(frame_handler_ping.PingFrameHandler): def should_respond(self): self.logger.debug(f"Respond to CQ: {self.config['MODEM']['respond_to_cq']}") - return self.config['MODEM']['respond_to_cq'] + return bool(self.config['MODEM']['respond_to_cq'] and not self.states.getARQ()) + def send_ack(self): factory = data_frame_factory.DataFrameFactory(self.config) diff --git a/modem/frame_handler_ping.py b/modem/frame_handler_ping.py index cf8f6499..c4d46c3b 100644 --- a/modem/frame_handler_ping.py +++ b/modem/frame_handler_ping.py @@ -15,15 +15,11 @@ class PingFrameHandler(frame_handler.FrameHandler): # ft = self.details['frame']['frame_type'] # self.logger.info(f"[Modem] {ft} received but not for us.") # return valid - - #def should_respond(self): - # return self.is_frame_for_me() def follow_protocol(self): - - if not self.should_respond(): + if not bool(self.is_frame_for_me() and not self.states.getARQ()): return - + self.logger.debug( f"[Modem] Responding to request from [{self.details['frame']['origin']}]", snr=self.details['snr'],