Coverage for src / bluetooth_sig / utils / rssi_utils.py: 39%

18 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-18 11:17 +0000

1"""RSSI utility functions for BLE operations.""" 

2 

3from __future__ import annotations 

4 

5# RSSI quality thresholds (in dBm) 

6RSSI_EXCELLENT = -30 

7RSSI_VERY_GOOD = -50 

8RSSI_GOOD = -60 

9RSSI_FAIR = -70 

10RSSI_WEAK = -80 

11 

12 

13def get_rssi_quality(rssi: int) -> str: 

14 """Get human-readable RSSI signal quality description. 

15 

16 Args: 

17 rssi: RSSI value in dBm 

18 

19 Returns: 

20 Human-readable quality description 

21 

22 """ 

23 if rssi >= RSSI_EXCELLENT: 

24 return "Excellent" 

25 if rssi >= RSSI_VERY_GOOD: 

26 return "Very Good" 

27 if rssi >= RSSI_GOOD: 

28 return "Good" 

29 if rssi >= RSSI_FAIR: 

30 return "Fair" 

31 if rssi >= RSSI_WEAK: 

32 return "Weak" 

33 return "Very Weak"