<?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>Multilink central scan problem</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/8796/multilink-central-scan-problem</link><description>Hi, 
 I am using the nRF51-DK board as a central running with ble_app_multilink_central_s130_pca10028 sample application. I am using SDK version 9.0 with Keil 5.14 version. I have third party peripheral devices like Estimote, Sensor Tag. With the central</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 24 Aug 2015 12:02:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/8796/multilink-central-scan-problem" /><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32272?ContentTypeID=1</link><pubDate>Mon, 24 Aug 2015 12:02:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8aa38fa-9b45-41a4-895a-8b8e90038214</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Akshat: When you have follow up question, please create another case.&lt;/p&gt;
&lt;p&gt;I suggest you to test and see if it work, before asking if it work or not. The best way, it to study understand the example and then follow it to implement for you application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32271?ContentTypeID=1</link><pubDate>Sat, 22 Aug 2015 14:27:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:440df16e-f792-4e4a-b404-cab812294e64</guid><dc:creator>Akshat</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thank you very much.
May be i need more understanding about the central implementation. By the way i am able to scan multiple services on peripheral device. Here is my client_init code sample, please check once.&lt;/p&gt;
&lt;p&gt;void client_handling_init(void)
{
uint32_t err_code;
uint32_t i;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ble_uuid128_t base_uuid = MULTILINK_PERIPHERAL_BASE_UUID;
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid, &amp;amp;m_base_uuid_type);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;base_uuid--%d\n\r&amp;quot;, err_code);

ble_uuid128_t base_uuid1 = MULTILINK_PERIPHERAL_BASE_UUID1;
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid1, &amp;amp;m_base_uuid_type1);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;base_uuid1--%d\n\r&amp;quot;, err_code);

ble_uuid128_t base_uuid2 = MULTILINK_PERIPHERAL_BASE_UUID2;
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid2, &amp;amp;m_base_uuid_type2);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;base_uuid2--%d\n\r&amp;quot;, err_code);

ble_uuid128_t base_uuid3 = MULTILINK_PERIPHERAL_BASE_UUID3;
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid3, &amp;amp;m_base_uuid_type3);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;base_uuid2--%d\n\r&amp;quot;, err_code);

for (i = 0; i &amp;lt; MAX_CLIENTS; i++)
{
    m_client[i].state  = IDLE;
}
m_client_count = 0;
db_discovery_init();

// Register with discovery module for the discovery of the service.

ble_uuid_t uuid[4];
uuid[0].type = m_base_uuid_type;
uuid[0].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[0], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;evt_register--%d\n\r&amp;quot;, err_code);

uuid[1].type = m_base_uuid_type1;
uuid[1].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID1;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[1], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;evt_register1--%d\n\r&amp;quot;, err_code);
	
uuid[2].type = m_base_uuid_type2;
uuid[2].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID2;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[2], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;evt_register2--%d\n\r&amp;quot;, err_code);
	
uuid[3].type = m_base_uuid_type3;
uuid[3].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID3;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[3], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
printf(&amp;quot;evt_register3--%d\n\r&amp;quot;, err_code);
	
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Now i want to read the characteristics value properly.
I have tried with -
&lt;strong&gt;err_code = sd_ble_gattc_read(p_ble_gattc_evt-&amp;gt;conn_handle, p_srv_being_discovered-&amp;gt;charateristics[p_db_discovery-&amp;gt;curr_char_ind].characteristic.handle_value, 0);&lt;/strong&gt;
in &lt;strong&gt;on_characteristic_discovery_rsp()&lt;/strong&gt; function. I am getting the read response also, in the response i am getting data in &lt;strong&gt;p_ble_gattc_evt-&amp;gt;params.read_rsp.data&lt;/strong&gt;. Is this a correct procedure ? if not
can you please tell me how to get the actual characteristics value ?&lt;/p&gt;
&lt;p&gt;Thank you one again for your response.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32270?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2015 13:21:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e63e5d07-b35a-44d2-8ca8-795e543f43cb</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Akshat: Why do you use the same  &amp;amp;m_base_uuid_type when calling sd_ble_uuid_vs_add() ? They are 2 different base, they should be 2 m_base_uuid_type. Think of m_base_uuid_type as the index of the 128 bit UUID base in the stack&amp;#39;s UUID database.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32269?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2015 12:13:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a980de63-b1cf-4008-a84b-51ab2f0f1a7a</guid><dc:creator>Akshat</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks for help.
I am able to discover a service and it&amp;#39;s characteristics. Now I want to discover more than one service of the same peripheral device. I have tried, but after discovering the second service my central device is restarting. My client handling init is look like:&lt;/p&gt;
&lt;p&gt;void client_handling_init(void)
{
uint32_t err_code;
uint32_t i;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ble_uuid128_t base_uuid = MULTILINK_PERIPHERAL_BASE_UUID;	
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid, &amp;amp;m_base_uuid_type);
APP_ERROR_CHECK(err_code);
ble_uuid128_t base_uuid1 = MULTILINK_PERIPHERAL_BASE_UUID1;	
err_code = sd_ble_uuid_vs_add(&amp;amp;base_uuid1, &amp;amp;m_base_uuid_type);
APP_ERROR_CHECK(err_code);

for (i = 0; i &amp;lt; MAX_CLIENTS; i++)
{
    m_client[i].state  = IDLE;
}

m_client_count = 0;
db_discovery_init();

// Register with discovery module for the discovery of the service.
ble_uuid_t uuid[2];
uuid[0].type = m_base_uuid_type;
uuid[0].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[0], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
	
uuid[1].type = m_base_uuid_type;
uuid[1].uuid = MULTILINK_PERIPHERAL_SERVICE_UUID1;
err_code = ble_db_discovery_evt_register(&amp;amp;uuid[1], db_discovery_evt_handler);
APP_ERROR_CHECK(err_code);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;can you please tell, where i am going wrong ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32268?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2015 08:53:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44ce979f-065f-4543-bae8-52dffb5e7111</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;The current ble_db_discovery.c module doesn&amp;#39;t support generic discovery of the att table. You would need to register which service you want to discover in advance. So the 128 bit UUID should be known.
If you want to do generic discovery, you can base on what we do now, and implement the mechanism to follow every service to discover all the characteristic of each service.&lt;/p&gt;
&lt;p&gt;Calling sd_ble_uuid_vs_add() should not return BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND please double check.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32267?ContentTypeID=1</link><pubDate>Thu, 20 Aug 2015 16:38:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c925fe8b-e798-458d-b6ff-17e4487ae602</guid><dc:creator>Akshat</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks. I am able to read the characteristics and descriptors of a custom uuid. Now I want to discover all the services of peripheral device with multilink central. what should I need to do for this ? And also how to discover a peripheral device with a different base UUID. I have added the other UUID in :
sd_ble_uuid_vs_add(&amp;amp;base_uuid, &amp;amp;m_base_uuid_type);
but it is not working, I am getting an error :
BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND , what should i have to do ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32266?ContentTypeID=1</link><pubDate>Thu, 20 Aug 2015 09:22:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1bcd0825-ede2-4b19-a62e-562fb0f243f7</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@akshat: when scanning, the scanner can only read what&amp;#39;s in the advertising packet and the address of the advertiser. So if the advertiser doesn&amp;#39;t transmit anything else in the advertising packet, you have to find the address and do the filter on the address before you connect.
After you have connected you can do service discovery and look for more information in the Att table, such as GAP, GATT, Device information etc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32265?ContentTypeID=1</link><pubDate>Wed, 19 Aug 2015 16:26:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c477b050-de31-4cee-86cf-e5643d55ff51</guid><dc:creator>Akshat</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;thanks for your response.
I have already changed the TARGET_DEV_NAME to the peripheral device name.
But the peripheral device is only advertising the BLE_GAP_AD_TYPE_FLAGS type, I just want to know how to scan primary services like Generic Access, Generic Attribute, Device Information and their properties. Is there any simple BLE scanner example for reference ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multilink central scan problem</title><link>https://devzone.nordicsemi.com/thread/32264?ContentTypeID=1</link><pubDate>Wed, 19 Aug 2015 12:38:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b40c3f7-a937-41ab-8569-0c08dc858650</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Akshat,&lt;/p&gt;
&lt;p&gt;How did you test that ? Note that the multilink_central example only connect to and print out log when the device that has the short or complete name matches target.&lt;/p&gt;
&lt;p&gt;What you should do is to print out the advertising data you receive when BLE_GAP_EVT_ADV_REPORT occurs.&lt;/p&gt;
&lt;p&gt;Make sure you are scanning without any whitelist (selective scanning)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>