<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Can&amp;#39;t find 128-bit UUID and service name</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/59479/can-t-find-128-bit-uuid-and-service-name</link><description>Hi , I use the pc-ble-driver to developer desktop tools, like nRF Connect. Unfortunately, I don&amp;#39;t know Java. I‘ve tried to used examples that work(heart_rate_collector and heart_rate_monitor). So, I use the example heart_rate_collector as template. I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 27 Apr 2020 09:34:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/59479/can-t-find-128-bit-uuid-and-service-name" /><item><title>RE: Can't find 128-bit UUID and service name</title><link>https://devzone.nordicsemi.com/thread/246731?ContentTypeID=1</link><pubDate>Mon, 27 Apr 2020 09:34:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:80eae5c1-270d-40a9-910a-39f50d00686b</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It is possible to discover services without knowing the UUIDs beforehand. To do that you need to pass a NULL pointer for the &lt;em&gt;p_srvc_uuid&lt;/em&gt; input argument. The response will say BLE_UUID_TYPE_UNKNOWN whenever a new 128-bit service is discovered (ie one that hasn&amp;#39;t been added with &lt;span&gt;&lt;span&gt;ble_vs_uuid_add&lt;/span&gt;&lt;/span&gt;()). You can then perform a GATT read on that handle to retrieve the UUID.&lt;/p&gt;
&lt;p&gt;Here is how this is handled in the Python wrapper: &lt;a href="https://github.com/NordicSemiconductor/pc-ble-driver-py/blob/8e5a9ffb7b6a655baeae7e4591f3ffc50cd62a5b/pc_ble_driver_py/ble_adapter.py#L266"&gt;https://github.com/NordicSemiconductor/pc-ble-driver-py/blob/8e5a9ffb7b6a655baeae7e4591f3ffc50cd62a5b/pc_ble_driver_py/ble_adapter.py#L266.&lt;/a&gt; Notice how the 128-bit base uuid gets added through &lt;span&gt;&lt;span&gt;ble_vs_uuid_add&lt;/span&gt;&lt;/span&gt;() after.&lt;/p&gt;
&lt;p&gt;Relevant doc links:&lt;/p&gt;
&lt;p&gt;- &lt;span&gt;&lt;a title="sd_ble_gattc_primary_services_discover" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v5.0.0/group___b_l_e___g_a_t_t_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_2_5_2_2_2_8#gaa778ccc1990e05fffa4aaf304c95e614"&gt;sd_ble_gattc_primary_services_discover&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- &lt;a title="GATTC Primary Service Discovery" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v5.0.0/group___b_l_e___g_a_t_t_c___p_r_i_m___s_r_v_c___d_i_s_c___m_s_c.html?cp=4_6_2_5_2_2_3_10"&gt;GATTC Primary Service Discovery&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;
[quote user="peter li"]BYT, How Can I search out all service , characteristic and characteristic description?&amp;nbsp; Should I search all services first, then all characteristics, and finally all&amp;nbsp;&lt;span&gt;characteristic description? Or Should search services -&amp;gt;&amp;nbsp;characteristics -&amp;gt; characteristic description then loop searches? Which search method is better?&lt;/span&gt;[/quote]
&lt;p&gt;It seems like most implementations do it sequentially and start with the discovery of all services first, then proceed with all characteristics and descriptors (you can see this from the python wrapper implementation linked to above). &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can't find 128-bit UUID and service name</title><link>https://devzone.nordicsemi.com/thread/246454?ContentTypeID=1</link><pubDate>Fri, 24 Apr 2020 10:06:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8f46e2d7-2134-41d5-b992-f7f4877b1ba3</guid><dc:creator>peter li</dc:creator><description>&lt;p&gt;HI ,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Thanks.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I found only use handle also can&amp;nbsp;establish a connection. But I still want to search all UUIDs.. How can I do that if I don&amp;#39;t want add the specified base ID in advance ?&amp;nbsp; BYT, How Can I search out all service , characteristic and characteristic description?&amp;nbsp; Should I search all services first, then all characteristics, and finally all&amp;nbsp;&lt;span&gt;characteristic description? Or Should search services -&amp;gt;&amp;nbsp;characteristics -&amp;gt; characteristic description then loop searches? Which search method is better?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can't find 128-bit UUID and service name</title><link>https://devzone.nordicsemi.com/thread/241597?ContentTypeID=1</link><pubDate>Wed, 25 Mar 2020 12:37:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:39adcbd4-fa51-4ac7-8f24-b8c8dff94974</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Are you more familiar with Python, or do you prefer working with C++?&amp;nbsp;I made a GATT client with the pc-ble-driver-py (python wrapper) a while ago which is able to discover the 128-bit Nordic UART service (&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/ble_sdk_app_nus_eval.html"&gt;6E400001-B5A3-F393-E0A9-E50E24DCCA9E&lt;/a&gt;&lt;span&gt;)&lt;/span&gt;. The key difference compared to the regular heart rate collector example is that I added the 128-bit base UUID through&amp;nbsp;ble_vs_uuid_add before initiating service discovery.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;pc-ble-driver-py NUS client example:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-c16dfee3e713421c8406f3672dc15aba/nus_5F00_central.zip"&gt;devzone.nordicsemi.com/.../nus_5F00_central.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>