Hi Szymon, > There is no need to report very small RSSI changes. > --- > v2: Fix name and use abs() > > android/bluetooth.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/android/bluetooth.c b/android/bluetooth.c > index d74d792..5aed4af 100644 > --- a/android/bluetooth.c > +++ b/android/bluetooth.c > @@ -1045,6 +1045,12 @@ static uint8_t bdaddr_type2android(uint8_t type) > return HAL_TYPE_LE; > } > > +static bool rssi_above_threshold(int old, int new) > +{ > + /* only 8 dBm or more */ > + return abs(old - new) >= 8; > +} > + > static void update_found_device(const bdaddr_t *bdaddr, uint8_t bdaddr_type, > int8_t rssi, bool confirm, > const uint8_t *data, uint8_t data_len) > @@ -1113,7 +1119,7 @@ static void update_found_device(const bdaddr_t *bdaddr, uint8_t bdaddr_type, > (*num_prop)++; > } > > - if (rssi) { > + if (rssi && rssi_above_threshold(dev->rssi, rssi)) { this is a good first step, but I think we should additionally work on handling pathloss via the TX power EIR element in combination with RSSI. Since that really gives a good idea of the distance of a device and if it has moved or not. The 3D glasses for example rely on this for proximity association. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html