Fixed RSSI/SNR reporting regression

This commit is contained in:
Mark Qvist 2026-08-25 13:22:46 +02:00
parent 0536b972d7
commit dcbc7638d0
No known key found for this signature in database
4 changed files with 11 additions and 8 deletions

View file

@ -158,6 +158,11 @@ class Interface:
self.ifac_violations = 0
self.packet_filter_hits = 0
self.reports_phy_stats = False
self.r_stat_rssi = None
self.r_stat_snr = None
self.r_stat_q = None
def get_hash(self):
if not self.__hash: self.__hash = RNS.Identity.full_hash(str(self).encode("utf-8"))
return self.__hash

View file

@ -258,6 +258,7 @@ class RNodeInterface(Interface):
self.r_stat_tx = None
self.r_stat_rssi = None
self.r_stat_snr = None
self.r_stat_q = None
self.r_st_alock = None
self.r_lt_alock = None
self.r_random = None
@ -278,6 +279,7 @@ class RNodeInterface(Interface):
self.r_noise_floor = None
self.r_interference = None
self.r_interference_l = None
self.reports_phy_stats = True
self.r_battery_state = RNodeInterface.BATTERY_STATE_UNKNOWN
self.r_battery_percent = 0
@ -702,9 +704,6 @@ class RNodeInterface(Interface):
def process_incoming(self, data):
self.rxb += len(data)
self.owner.inbound(data, self)
self.r_stat_rssi = None
self.r_stat_snr = None
def process_outgoing(self,data):
datalen = len(data)

View file

@ -269,6 +269,7 @@ class RNodeMultiInterface(Interface):
self.r_stat_tx = None
self.r_stat_rssi = None
self.r_stat_snr = None
self.r_stat_q = None
self.r_st_alock = None
self.r_lt_alock = None
self.r_random = None
@ -276,6 +277,8 @@ class RNodeMultiInterface(Interface):
self.packet_queue = []
self.interface_ready = False
self.announce_rate_target = None
self.reports_phy_stats = True
self.validcfg = True
if id_interval != None and id_callsign != None:
@ -1127,8 +1130,6 @@ class RNodeSubInterface(Interface):
def process_incoming(self, data):
self.rxb += len(data)
self.owner.inbound(data, self)
self.r_stat_rssi = None
self.r_stat_snr = None
def process_outgoing(self,data):
if self.online:

View file

@ -1909,21 +1909,19 @@ class Transport:
if packet.receiving_interface != None:
if not packet.receiving_interface.online: return
if hasattr(packet.receiving_interface, "r_stat_rssi"):
if packet.receiving_interface.reports_phy_stats:
if packet.receiving_interface.r_stat_rssi != None:
packet.rssi = packet.receiving_interface.r_stat_rssi
Transport.local_client_rssi_cache.append([packet.packet_hash, packet.rssi])
while len(Transport.local_client_rssi_cache) > Transport.LOCAL_CLIENT_CACHE_MAXSIZE:
Transport.local_client_rssi_cache.pop(0)
if hasattr(packet.receiving_interface, "r_stat_snr"):
if packet.receiving_interface.r_stat_snr != None:
packet.snr = packet.receiving_interface.r_stat_snr
Transport.local_client_snr_cache.append([packet.packet_hash, packet.snr])
while len(Transport.local_client_snr_cache) > Transport.LOCAL_CLIENT_CACHE_MAXSIZE:
Transport.local_client_snr_cache.pop(0)
if hasattr(packet.receiving_interface, "r_stat_q"):
if packet.receiving_interface.r_stat_q != None:
packet.q = packet.receiving_interface.r_stat_q
Transport.local_client_q_cache.append([packet.packet_hash, packet.q])