Return-Path: Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\)) Subject: Re: Discovering LE advertisements programatically From: Adam Warski In-Reply-To: Date: Sun, 26 Jan 2014 12:03:04 +0100 Cc: BlueZ development Message-Id: References: <41458C64-3510-481A-92F4-1296C06600CC@warski.org> To: Anderson Lizardo Sender: linux-bluetooth-owner@vger.kernel.org List-ID: >> I?m trying to find a good way to discover and retrieve LE advertisements programatically. >> >> My first shot was to try to use DBus. I was trying to extend what the test/test-discovery script is doing, but it seems using DBus I can only get notified of new devices being discovered. Is there a way to get the actual LE advertisement via DBus? The device properties seem not to contain the info from the advertisement PDU. >> >> If that?s not possible using DBus, is the way to go just using C? >> >> I also tried using command line, a combination of ?hcitool lescan? and ?hcidump?/?hcidump -R" gives what I need more or less (plain hcidump gives me the RSSI, hcidump -R gives me the raw packet that I need). Still, I guess there must be a better way. > > My suggestion would be to take a look at "hcitool lescan" for how it > is done using C sockets. Or you can modify hcitool lescan to dump the > full advertising report instead of just the name. Indeed by modifying the source of the hcitool, lescan method (print_advertising_devices), I am able to get the advertisement content. However, I?d also like to get the RSSI - is it possible from that method? I have access to the open device (dd), and the evt_le_meta_event and le_advertising_info structures - but that doesn?t seem to be enough. There is a hci_read_rssi in lib/hci.c, but it requires a ?handle? - I think it?s only useable if a conneciton is open. An alternative route that I see is to extract some part of hcidump, where I can get access to the raw packet and the RSSI, having the whole frame at my disposal. But that seems a bit ?hackish? :) Thanks, Adam -- Adam Warski http://twitter.com/#!/adamwarski http://www.softwaremill.com http://www.warski.org