Hi Scott, On Mon, Feb 24, 2020 at 1:51 PM Scott Shawcroft <scott@xxxxxxxxxxxx> wrote: > > On Mon, Feb 24, 2020 at 10:57 AM Luiz Augusto von Dentz > <luiz.dentz@xxxxxxxxx> wrote: > > > > Hi Scott, > > > > On Thu, Feb 20, 2020 at 8:34 PM Scott Shawcroft <scott@xxxxxxxxxxxx> wrote: > > > > > > Hi! > > > > > > I'm trying to create a bridge between BLE advertisements and the web > > > for sensor data logging. The BLE advertisements use manufacturer data > > > to transmit the sensor data. I'm running on a Raspberry Pi 3b. > > > > > > I've been trying to use the Bluez dbus interface with DuplicateData, > > > trying both true and false, and I never seem to get duplicates back. I > > > dug into it via hcidump and noticed that the scan enable still has > > > filter duplicates set to true regardless. I can only manage to get it > > > set to False when using hcitool. > > > > > > I believe I've tracked the issue down into the kernel here: > > > https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/net/bluetooth/hci_request.c#n858 > > > where enabling duplicate filtering is hardcoded. It seems that hcitool > > > side steps this by talking directly to the hci device. > > > > Yep, the kernel code don't actually allow setting the duplicate filter > > unfortunately. > > > > > Could someone confirm I'm on the right track? I'd be willing to plumb > > > the DuplicateData value through to the kernel if someone could help me > > > find the call path down. > > > > In the past Marcel was against turning off the duplicate filtering but > > since we do have a similar setting over D-Bus, though the later shall > > not be confused since tracks duplicates by itself since over D-Bus we > > are doing it to prevent duplicate signals, Im with the opinion that > > DuplicateData could be used to disable duplicate filtering, default > > should be still be enabled though. > > > > -- > > Luiz Augusto von Dentz > > Thanks for the reply! > > I agree the default should be to filter duplicates. I'd love to see > the Dbus setting actually used in the kernel. Did I find the correct > place to change? I'm not sure how it is called from bluez though. > (Maybe through the mgmt API?) Yes, we would need to add it to Start Service Discover or create a new one, while at it we may add support for adding both the interval and window to SetDiscoveryFilter, Id actually think we might be better off adding a new command e.g. Start Filtered Discover which can then accomodate all these details, but it probably won't be very simple to do as we learn from the addition of the filters making it work with multiple clients complicates it a little bit, anyway I don't think we want this to be global but rather per client. -- Luiz Augusto von Dentz