<?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>Question about creating BLE data transmission</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/28180/question-about-creating-ble-data-transmission</link><description>Hi Guys, 
 Me again. I was thinking someone could provide some suggestions on my understanding of the BLE connection ( porfile, GATT, characteristic,value, etc...) 
 I finished reading all the BLE tutorials and would like to re-write my understanding</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 11 Dec 2017 15:05:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/28180/question-about-creating-ble-data-transmission" /><item><title>RE: Question about creating BLE data transmission</title><link>https://devzone.nordicsemi.com/thread/111320?ContentTypeID=1</link><pubDate>Mon, 11 Dec 2017 15:05:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb558283-1d7b-462e-989c-38fd980a3b55</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Petter is out of office, and I will step in in the mean time.&lt;/p&gt;
&lt;p&gt;The GATT profile essentially covers the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which GATT service(s) you need to implement, and if you need client or server support&lt;/li&gt;
&lt;li&gt;Which GAP settings you should use, including the following:
&lt;ul&gt;
&lt;li&gt;Connection parameters (con. interval, slave latency, con. supervising timeout)&lt;/li&gt;
&lt;li&gt;Advertising parameters (advertising interval, advertising timeout)&lt;/li&gt;
&lt;li&gt;Which GAP roles you should support (peripheral, central, broadcaster or observer)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each GATT service has it&amp;#39;s own specification document listing the characteristics required for that service, and how those characteristics should look (what properties are used, what descriptors if any, what is the data format).&lt;/p&gt;
&lt;p&gt;For an example of how to do this configuration I would have a look at one of the BLE examples, such as ble_app_hrs. All the service and characteristic configuration is handled by the service files, ble_hrs.c (HRS service), ble_dis.c (Device Information Service) and ble_bas.c ( Battery State service).&lt;/p&gt;
&lt;p&gt;The service files will include functions to send data, and you can register a callback function that is used to process incoming data.
I would recommend you have a look at the example, in particular the service files, to get a better understanding of the software involved.&lt;/p&gt;
&lt;p&gt;Most apps are designed for a specific GATT profile, that is correct. As Petter mentioned we have example apps available with source code showing you how to do this.&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Question about creating BLE data transmission</title><link>https://devzone.nordicsemi.com/thread/111319?ContentTypeID=1</link><pubDate>Thu, 07 Dec 2017 21:30:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ace4ce3a-5a9e-41b6-9e13-05c17cad1b96</guid><dc:creator>cookieeeeee</dc:creator><description>&lt;p&gt;Thanks for your reply. I would like to know a more specific answer actually.&lt;/p&gt;
&lt;p&gt;To implementing the GATT profile, what do I need to implement ? At the code level. From the tutorial, I got understand that for a heart rate GATT profile, I need to set up the service declaration, then set up the corresponding characteristic declaration as well as the characteristic value deceleration, is that the actual GATT profile at the code level?&lt;/p&gt;
&lt;p&gt;And for the second question, if I would like to use the profile itself to hold and transfer the value, I should put them in the characteristic value declaration, is that correct?&lt;/p&gt;
&lt;p&gt;And if I did that, used profile itself to transfer the data, I need to also did some similar in the phone app so it can hook up to the device and read the values from those characteristic value declaration, is that right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Question about creating BLE data transmission</title><link>https://devzone.nordicsemi.com/thread/111318?ContentTypeID=1</link><pubDate>Thu, 07 Dec 2017 08:39:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c8c79aa3-2442-4737-a440-d7fc761c190e</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The GATT profile describes a use case, roles, and general behaviors based on the GATT functionality. If you use a SIG profile, like the Heart Rate Profile, everything is defined, and it should be implemented according to the Heart Rate Profile spec, found &lt;a href="https://www.bluetooth.com/specifications/gatt"&gt;here&lt;/a&gt;. You can make your own profile, then you implement it however you want. Let me know if I didn&amp;#39;t answer your question.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Correct. If you just want something simple to transfer proprietary data you should have a look at the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/ble_sdk_app_nus_eval.html?cp=4_0_0_4_2_2_22"&gt;UART example&lt;/a&gt;. This is a proprietary profile, defined by us.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You should start by looking at our Android app examples, available &lt;a href="https://github.com/NordicSemiconductor?utf8=%E2%9C%93&amp;amp;q=android&amp;amp;type=&amp;amp;language="&gt;here&lt;/a&gt;. Toolbox is a good starting point. If you have specific questions you can post them separately here.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This is up to you. You can use build your transfer using different characteristics, or you use one and then do the handling of the data at a higher level.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>