* reverse SDP issue @ 2012-03-19 22:19 Mike 2012-03-19 22:36 ` Mike 2012-03-19 23:04 ` Johan Hedberg 0 siblings, 2 replies; 12+ messages in thread From: Mike @ 2012-03-19 22:19 UTC (permalink / raw) To: linux-bluetooth Hi, I notice a change in commit d2920be715974795b51f9cc3279947104da3647b [1] that changes the "reverse" variable for an SDP query: - device_browse_sdp(device, NULL, NULL, NULL, TRUE); + if (device_is_bredr(device)) + device_browse_sdp(device, NULL, NULL, NULL, FALSE); + else + device_browse_primary(device, NULL, NULL, FALSE); You can see the original had reverse as TRUE, but the patch may have inadvertently changed it to FALSE. The only reason I notice this is that for some reason I get a debug output that BlueZ is removing "0000110d-0000-1000-8000-00805f9b34fb" (ADVANCED_AUDIO_UUID) which then knocks out my HFP and A2DP profiles. bluetoothd[766]: src/device.c:device_remove_drivers() UUID 0000110d-0000-1000-8000-00805f9b34fb was removed from device 00:17:E3:3B:4F:DD bluetoothd[766]: audio/unix.c:unix_device_removed() unix_device_removed(0x2a0d0358) bluetoothd[766]: audio/gateway.c:path_unregister() Unregistered interface org.bluez.HandsfreeGateway on path /org/bluez/766/hci0/dev_00_17_E3_3B_4F_DD bluetoothd[766]: audio/source.c:path_unregister() Unregistered interface org.bluez.AudioSource on path /org/bluez/766/hci0/dev_00_17_E3_3B_4F_DD There may be another subtle bug that is the real culprit here (e.g., why does removing 0x110d knock out the other profiles), but I thought I'd check on this first. Mike [1] http://git.kernel.org/?p=bluetooth/bluez.git;a=commitdiff;h=d2920be715974795b51f9cc3279947104da3647b ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-19 22:19 reverse SDP issue Mike @ 2012-03-19 22:36 ` Mike 2012-03-19 23:04 ` Johan Hedberg 1 sibling, 0 replies; 12+ messages in thread From: Mike @ 2012-03-19 22:36 UTC (permalink / raw) To: linux-bluetooth On Mon, Mar 19, 2012 at 5:19 PM, Mike <puffy.taco@gmail.com> wrote: > > There may be another subtle bug that is the real culprit here (e.g., > why does removing 0x110d knock out the other profiles), but I thought > I'd check on this first. > Ah, I can see that Mikel Astiz's patches (from inspection) should solve this part of the problem: [PATCH v0 2/3] Add device driver support for partial unloading http://www.spinics.net/lists/linux-bluetooth/msg22427.html [PATCH v0 3/3] audio: add partial unloading to audio driver http://www.spinics.net/lists/linux-bluetooth/msg22428.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-19 22:19 reverse SDP issue Mike 2012-03-19 22:36 ` Mike @ 2012-03-19 23:04 ` Johan Hedberg 2012-03-20 17:35 ` Vinicius Costa Gomes 1 sibling, 1 reply; 12+ messages in thread From: Johan Hedberg @ 2012-03-19 23:04 UTC (permalink / raw) To: Mike; +Cc: linux-bluetooth Hi Mike, On Mon, Mar 19, 2012, Mike wrote: > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b > [1] that changes the "reverse" variable for an SDP query: > > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); > + if (device_is_bredr(device)) > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); > + else > + device_browse_primary(device, NULL, NULL, FALSE); > > You can see the original had reverse as TRUE, but the patch may have > inadvertently changed it to FALSE..kernel.org/majordomo-info.html That looks like a definitive bug. Good that you caught it. Vinicius (author of the commit) care to comment? As for the partial service removal changes to the device driver API, it looks pretty messy to me. Is there any reason why we couldn't just restrict calling remove() for when removing the entire device object (and never call it when doing subsequent service discoveries)? Johan ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-19 23:04 ` Johan Hedberg @ 2012-03-20 17:35 ` Vinicius Costa Gomes 2012-03-20 18:27 ` Mike 2012-03-21 12:45 ` Johan Hedberg 0 siblings, 2 replies; 12+ messages in thread From: Vinicius Costa Gomes @ 2012-03-20 17:35 UTC (permalink / raw) To: Mike, linux-bluetooth Hi, On 20:04 Mon 19 Mar, Johan Hedberg wrote: > Hi Mike, > > On Mon, Mar 19, 2012, Mike wrote: > > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b > > [1] that changes the "reverse" variable for an SDP query: > > > > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); > > + if (device_is_bredr(device)) > > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); > > + else > > + device_browse_primary(device, NULL, NULL, FALSE); > > > > You can see the original had reverse as TRUE, but the patch may have > > inadvertently changed it to FALSE..kernel.org/majordomo-info.html > > That looks like a definitive bug. Good that you caught it. Vinicius > (author of the commit) care to comment? It was changed to false by mistake, a patch to fix it should be arriving on the mailing list in a few moments. The comment on src/device.c around line 1683 gives some hints on what my mistake may have caused: it could be that the device while connected "hides" some items from its service record. So with reverse set to false, some records that are present are being removed by mistake. > > As for the partial service removal changes to the device driver API, it > looks pretty messy to me. Is there any reason why we couldn't just > restrict calling remove() for when removing the entire device object > (and never call it when doing subsequent service discoveries)? I agree that the logic is quite messy. Just some comments: That assumes that the service list that a device implements is very much static, which only breaks for development (in which the services of an device are always changing) and you will need to remove that device and create it again. > > Johan > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html Cheers, -- Vinicius ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-20 17:35 ` Vinicius Costa Gomes @ 2012-03-20 18:27 ` Mike 2012-03-20 18:39 ` Mike 2012-03-21 12:45 ` Johan Hedberg 1 sibling, 1 reply; 12+ messages in thread From: Mike @ 2012-03-20 18:27 UTC (permalink / raw) To: Vinicius Costa Gomes; +Cc: linux-bluetooth On Tue, Mar 20, 2012 at 12:35 PM, Vinicius Costa Gomes <vinicius.gomes@openbossa.org> wrote: > Hi, > > On 20:04 Mon 19 Mar, Johan Hedberg wrote: >> Hi Mike, >> >> On Mon, Mar 19, 2012, Mike wrote: >> > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b >> > [1] that changes the "reverse" variable for an SDP query: >> > >> > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); >> > + if (device_is_bredr(device)) >> > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); >> > + else >> > + device_browse_primary(device, NULL, NULL, FALSE); >> > >> > You can see the original had reverse as TRUE, but the patch may have >> > inadvertently changed it to FALSE..kernel.org/majordomo-info.html >> >> That looks like a definitive bug. Good that you caught it. Vinicius >> (author of the commit) care to comment? > > It was changed to false by mistake, a patch to fix it should be arriving > on the mailing list in a few moments. > > The comment on src/device.c around line 1683 gives some hints on what > my mistake may have caused: it could be that the device while connected > "hides" some items from its service record. So with reverse set to > false, some records that are present are being removed by mistake. I'm not sure that's the case here. I added some code to print out the contents of "device->uuids" at the beginning of update_services (src/device.c), and here is what I got: UUID 0000110d-0000-1000-8000-00805f9b34fb UUID 0000111f-0000-1000-8000-00805f9b34fb UUID 0000110d-0000-1000-8000-00805f9b34fb UUID 0000111f-0000-1000-8000-00805f9b34fb A little curious why the UUIDs are duplicated, but besides that, we can see that my phone already attempted to connect _before_ it was paired, because it thought it was paired already (pairing deleted on the BlueZ side only). The UUIDs were added then before SDP could be done. This has me suspecting these lines of code in update_services: l = g_slist_find_custom(device->uuids, profile_uuid, (GCompareFunc) strcmp); if (!l) req->profiles_added = g_slist_append(req->profiles_added, profile_uuid); else { req->profiles_removed = g_slist_remove(req->profiles_removed, l->data); g_free(profile_uuid); } It appears that if a UUID already existed when you did the SDP browse, it is removed? Why would that be? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-20 18:27 ` Mike @ 2012-03-20 18:39 ` Mike 2012-03-20 19:21 ` Mike 0 siblings, 1 reply; 12+ messages in thread From: Mike @ 2012-03-20 18:39 UTC (permalink / raw) To: Vinicius Costa Gomes; +Cc: linux-bluetooth On Tue, Mar 20, 2012 at 1:27 PM, Mike <puffy.taco@gmail.com> wrote: > On Tue, Mar 20, 2012 at 12:35 PM, Vinicius Costa Gomes > <vinicius.gomes@openbossa.org> wrote: >> Hi, >> >> On 20:04 Mon 19 Mar, Johan Hedberg wrote: >>> Hi Mike, >>> >>> On Mon, Mar 19, 2012, Mike wrote: >>> > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b >>> > [1] that changes the "reverse" variable for an SDP query: >>> > >>> > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); >>> > + if (device_is_bredr(device)) >>> > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); >>> > + else >>> > + device_browse_primary(device, NULL, NULL, FALSE); >>> > >>> > You can see the original had reverse as TRUE, but the patch may have >>> > inadvertently changed it to FALSE..kernel.org/majordomo-info.html >>> >>> That looks like a definitive bug. Good that you caught it. Vinicius >>> (author of the commit) care to comment? >> >> It was changed to false by mistake, a patch to fix it should be arriving >> on the mailing list in a few moments. >> >> The comment on src/device.c around line 1683 gives some hints on what >> my mistake may have caused: it could be that the device while connected >> "hides" some items from its service record. So with reverse set to >> false, some records that are present are being removed by mistake. > > I'm not sure that's the case here. I added some code to print out the > contents of "device->uuids" at the beginning of update_services > (src/device.c), and here is what I got: > > UUID 0000110d-0000-1000-8000-00805f9b34fb > UUID 0000111f-0000-1000-8000-00805f9b34fb > UUID 0000110d-0000-1000-8000-00805f9b34fb > UUID 0000111f-0000-1000-8000-00805f9b34fb > > A little curious why the UUIDs are duplicated, but besides that, we > can see that my phone already attempted to connect _before_ it was > paired, because it thought it was paired already (pairing deleted on > the BlueZ side only). The UUIDs were added then before SDP could be > done. > > This has me suspecting these lines of code in update_services: > > l = g_slist_find_custom(device->uuids, profile_uuid, > (GCompareFunc) strcmp); > if (!l) > req->profiles_added = > g_slist_append(req->profiles_added, > profile_uuid); > else { > req->profiles_removed = > g_slist_remove(req->profiles_removed, > l->data); > g_free(profile_uuid); > } > > It appears that if a UUID already existed when you did the SDP browse, > it is removed? Why would that be? Ah, I read that wrong. The UUID is removed from the list of profiles to be removed! So that's sane, but I guess the problem is that somehow we have the UUIDs in there twice, which makes this code fail. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-20 18:39 ` Mike @ 2012-03-20 19:21 ` Mike 2012-03-20 20:18 ` Mike 0 siblings, 1 reply; 12+ messages in thread From: Mike @ 2012-03-20 19:21 UTC (permalink / raw) To: Vinicius Costa Gomes; +Cc: linux-bluetooth On Tue, Mar 20, 2012 at 1:39 PM, Mike <puffy.taco@gmail.com> wrote: > On Tue, Mar 20, 2012 at 1:27 PM, Mike <puffy.taco@gmail.com> wrote: >> On Tue, Mar 20, 2012 at 12:35 PM, Vinicius Costa Gomes >> <vinicius.gomes@openbossa.org> wrote: >>> Hi, >>> >>> On 20:04 Mon 19 Mar, Johan Hedberg wrote: >>>> Hi Mike, >>>> >>>> On Mon, Mar 19, 2012, Mike wrote: >>>> > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b >>>> > [1] that changes the "reverse" variable for an SDP query: >>>> > >>>> > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); >>>> > + if (device_is_bredr(device)) >>>> > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); >>>> > + else >>>> > + device_browse_primary(device, NULL, NULL, FALSE); >>>> > >>>> > You can see the original had reverse as TRUE, but the patch may have >>>> > inadvertently changed it to FALSE..kernel.org/majordomo-info.html >>>> >>>> That looks like a definitive bug. Good that you caught it. Vinicius >>>> (author of the commit) care to comment? >>> >>> It was changed to false by mistake, a patch to fix it should be arriving >>> on the mailing list in a few moments. >>> >>> The comment on src/device.c around line 1683 gives some hints on what >>> my mistake may have caused: it could be that the device while connected >>> "hides" some items from its service record. So with reverse set to >>> false, some records that are present are being removed by mistake. >> >> I'm not sure that's the case here. I added some code to print out the >> contents of "device->uuids" at the beginning of update_services >> (src/device.c), and here is what I got: >> >> UUID 0000110d-0000-1000-8000-00805f9b34fb >> UUID 0000111f-0000-1000-8000-00805f9b34fb >> UUID 0000110d-0000-1000-8000-00805f9b34fb >> UUID 0000111f-0000-1000-8000-00805f9b34fb >> >> A little curious why the UUIDs are duplicated, but besides that, we >> can see that my phone already attempted to connect _before_ it was >> paired, because it thought it was paired already (pairing deleted on >> the BlueZ side only). The UUIDs were added then before SDP could be >> done. >> >> This has me suspecting these lines of code in update_services: >> >> l = g_slist_find_custom(device->uuids, profile_uuid, >> (GCompareFunc) strcmp); >> if (!l) >> req->profiles_added = >> g_slist_append(req->profiles_added, >> profile_uuid); >> else { >> req->profiles_removed = >> g_slist_remove(req->profiles_removed, >> l->data); >> g_free(profile_uuid); >> } >> >> It appears that if a UUID already existed when you did the SDP browse, >> it is removed? Why would that be? > > Ah, I read that wrong. The UUID is removed from the list of profiles > to be removed! So that's sane, but I guess the problem is that > somehow we have the UUIDs in there twice, which makes this code fail. Argh. I guess update_services was being called twice, so the UUIDS aren't duplicated. I'm still tracing what the real issue is then. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-20 19:21 ` Mike @ 2012-03-20 20:18 ` Mike 0 siblings, 0 replies; 12+ messages in thread From: Mike @ 2012-03-20 20:18 UTC (permalink / raw) To: Vinicius Costa Gomes; +Cc: linux-bluetooth On Tue, Mar 20, 2012 at 2:21 PM, Mike <puffy.taco@gmail.com> wrote: > On Tue, Mar 20, 2012 at 1:39 PM, Mike <puffy.taco@gmail.com> wrote: >> On Tue, Mar 20, 2012 at 1:27 PM, Mike <puffy.taco@gmail.com> wrote: >>> On Tue, Mar 20, 2012 at 12:35 PM, Vinicius Costa Gomes >>> <vinicius.gomes@openbossa.org> wrote: >>>> Hi, >>>> >>>> On 20:04 Mon 19 Mar, Johan Hedberg wrote: >>>>> Hi Mike, >>>>> >>>>> On Mon, Mar 19, 2012, Mike wrote: >>>>> > I notice a change in commit d2920be715974795b51f9cc3279947104da3647b >>>>> > [1] that changes the "reverse" variable for an SDP query: >>>>> > >>>>> > - device_browse_sdp(device, NULL, NULL, NULL, TRUE); >>>>> > + if (device_is_bredr(device)) >>>>> > + device_browse_sdp(device, NULL, NULL, NULL, FALSE); >>>>> > + else >>>>> > + device_browse_primary(device, NULL, NULL, FALSE); >>>>> > >>>>> > You can see the original had reverse as TRUE, but the patch may have >>>>> > inadvertently changed it to FALSE..kernel.org/majordomo-info.html >>>>> >>>>> That looks like a definitive bug. Good that you caught it. Vinicius >>>>> (author of the commit) care to comment? >>>> >>>> It was changed to false by mistake, a patch to fix it should be arriving >>>> on the mailing list in a few moments. >>>> >>>> The comment on src/device.c around line 1683 gives some hints on what >>>> my mistake may have caused: it could be that the device while connected >>>> "hides" some items from its service record. So with reverse set to >>>> false, some records that are present are being removed by mistake. >>> >>> I'm not sure that's the case here. I added some code to print out the >>> contents of "device->uuids" at the beginning of update_services >>> (src/device.c), and here is what I got: >>> >>> UUID 0000110d-0000-1000-8000-00805f9b34fb >>> UUID 0000111f-0000-1000-8000-00805f9b34fb >>> UUID 0000110d-0000-1000-8000-00805f9b34fb >>> UUID 0000111f-0000-1000-8000-00805f9b34fb >>> >>> A little curious why the UUIDs are duplicated, but besides that, we >>> can see that my phone already attempted to connect _before_ it was >>> paired, because it thought it was paired already (pairing deleted on >>> the BlueZ side only). The UUIDs were added then before SDP could be >>> done. >>> >>> This has me suspecting these lines of code in update_services: >>> >>> l = g_slist_find_custom(device->uuids, profile_uuid, >>> (GCompareFunc) strcmp); >>> if (!l) >>> req->profiles_added = >>> g_slist_append(req->profiles_added, >>> profile_uuid); >>> else { >>> req->profiles_removed = >>> g_slist_remove(req->profiles_removed, >>> l->data); >>> g_free(profile_uuid); >>> } >>> >>> It appears that if a UUID already existed when you did the SDP browse, >>> it is removed? Why would that be? >> >> Ah, I read that wrong. The UUID is removed from the list of profiles >> to be removed! So that's sane, but I guess the problem is that >> somehow we have the UUIDs in there twice, which makes this code fail. > > Argh. I guess update_services was being called twice, so the UUIDS > aren't duplicated. I'm still tracing what the real issue is then. Alright, now I think I understand what's going on. The avdtp.c code adds ADVANCED_AUDIO_UUID to the UUID list if the device does not exist. The problem is that ADVANCED_AUDIO_UUID, according to the assigned numbers document, is only allowed as a profile class. The code in update_services is checking for service classes, and finds 0x110a (audio source) rather than 0x110d (advanced audio). So, the real problem in my case is that ADVANCED_AUDIO_UUID is being used as a service class when it should not. Below is the SDP record from my phone for the Audio Source: Service Name: Audio Source Service Description: Audio Source Service Provider: /a/mobile/system/cl.gif Service RecHandle: 0x1000d Service Class ID List: "Audio Source" (0x110a) Protocol Descriptor List: "L2CAP" (0x0100) PSM: 25 "AVDTP" (0x0019) uint16: 0x100 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 code_ISO639: 0x6672 encoding: 0x6a base_offset: 0xc800 code_ISO639: 0x6573 encoding: 0x6a base_offset: 0xc803 code_ISO639: 0x7074 encoding: 0x6a base_offset: 0xc806 Profile Descriptor List: "Advanced Audio" (0x110d) Version: 0x0100 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: reverse SDP issue 2012-03-20 17:35 ` Vinicius Costa Gomes 2012-03-20 18:27 ` Mike @ 2012-03-21 12:45 ` Johan Hedberg 2012-03-21 13:11 ` Query on attribute api service object path Jaganath 1 sibling, 1 reply; 12+ messages in thread From: Johan Hedberg @ 2012-03-21 12:45 UTC (permalink / raw) To: Vinicius Costa Gomes; +Cc: Mike, linux-bluetooth Hi Vinicius, On Tue, Mar 20, 2012, Vinicius Costa Gomes wrote: > > As for the partial service removal changes to the device driver API, it > > looks pretty messy to me. Is there any reason why we couldn't just > > restrict calling remove() for when removing the entire device object > > (and never call it when doing subsequent service discoveries)? > > I agree that the logic is quite messy. Just some comments: > > That assumes that the service list that a device implements is very much > static, which only breaks for development (in which the services of an > device are always changing) and you will need to remove that device and > create it again. We would still be able to handle added UUIDs just fine. The only issue is with removed services in which case you'd just wouldn't be able to connect to the remote device through the corresponding D-Bus interface (something which can already now happen and which I think is ok). Johan ^ permalink raw reply [flat|nested] 12+ messages in thread
* Query on attribute api service object path 2012-03-21 12:45 ` Johan Hedberg @ 2012-03-21 13:11 ` Jaganath 2012-03-21 14:18 ` Anderson Lizardo 0 siblings, 1 reply; 12+ messages in thread From: Jaganath @ 2012-03-21 13:11 UTC (permalink / raw) To: linux-bluetooth Hello, I have a doubt in attribute-api.txt. In Device service hierarchy object path is "[prefix]/{hci0}/{device0}/{service0, service1, ...}. which is device path + service"x". When I checked the code "x" is "prim->start" which is service start handle. But how user will get this handle to create object path? Only uuids are passed to user in UUIDs signal afaik. Thanks Jaganath ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Query on attribute api service object path 2012-03-21 13:11 ` Query on attribute api service object path Jaganath @ 2012-03-21 14:18 ` Anderson Lizardo 2012-03-21 14:27 ` Jaganath 0 siblings, 1 reply; 12+ messages in thread From: Anderson Lizardo @ 2012-03-21 14:18 UTC (permalink / raw) To: Jaganath; +Cc: linux-bluetooth Hi, On Wed, Mar 21, 2012 at 9:11 AM, Jaganath <jaganath.k@samsung.com> wrote: > Hello, > > I have a doubt in attribute-api.txt. > In Device service hierarchy object path is > "[prefix]/{hci0}/{device0}/{service0, service1, ...}. > which is device path + service"x". > When I checked the code "x" is "prim->start" which is service start handle. > But how user will get this handle to create object path? > Only uuids are passed to user in UUIDs signal afaik. Take a look on how to use the API on the test/test-attrib python script. You should not try to parse the path itself. it is returned by Methods and you simply use then with a D-Bus interface (e.g. Bluez.Attribute). Regards, -- Anderson Lizardo Instituto Nokia de Tecnologia - INdT Manaus - Brazil ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Query on attribute api service object path 2012-03-21 14:18 ` Anderson Lizardo @ 2012-03-21 14:27 ` Jaganath 0 siblings, 0 replies; 12+ messages in thread From: Jaganath @ 2012-03-21 14:27 UTC (permalink / raw) To: Anderson Lizardo; +Cc: linux-bluetooth Hi Anderson, -------------------------------------------------- From: "Anderson Lizardo" <anderson.lizardo@openbossa.org> Sent: Wednesday, March 21, 2012 7:48 PM To: "Jaganath" <jaganath.k@samsung.com> Cc: <linux-bluetooth@vger.kernel.org> Subject: Re: Query on attribute api service object path > Hi, > > On Wed, Mar 21, 2012 at 9:11 AM, Jaganath <jaganath.k@samsung.com> wrote: >> Hello, >> >> I have a doubt in attribute-api.txt. >> In Device service hierarchy object path is >> "[prefix]/{hci0}/{device0}/{service0, service1, ...}. >> which is device path + service"x". >> When I checked the code "x" is "prim->start" which is service start >> handle. >> But how user will get this handle to create object path? >> Only uuids are passed to user in UUIDs signal afaik. > > Take a look on how to use the API on the test/test-attrib python > script. You should not try to parse the path itself. it is returned by > Methods and you simply use then with a D-Bus interface (e.g. > Bluez.Attribute). > Thanks for your reply. Characteristic based Service object path is there in device properties. Jaganath ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-03-21 14:27 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-03-19 22:19 reverse SDP issue Mike 2012-03-19 22:36 ` Mike 2012-03-19 23:04 ` Johan Hedberg 2012-03-20 17:35 ` Vinicius Costa Gomes 2012-03-20 18:27 ` Mike 2012-03-20 18:39 ` Mike 2012-03-20 19:21 ` Mike 2012-03-20 20:18 ` Mike 2012-03-21 12:45 ` Johan Hedberg 2012-03-21 13:11 ` Query on attribute api service object path Jaganath 2012-03-21 14:18 ` Anderson Lizardo 2012-03-21 14:27 ` Jaganath
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox