<?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>Howto Processes Written Characteristics in BDS project</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/27271/howto-processes-written-characteristics-in-bds-project</link><description>Anyone have experience with the proper way to process written/updated custom characteristics in the APP(main) in a Bluetooth Developer Studio BDS generated code project? 
 I am working on a nRF52840 dev kit with SDK v14.0 and my BDS has plugin v1.3.0</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 27 Nov 2017 17:07:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/27271/howto-processes-written-characteristics-in-bds-project" /><item><title>RE: Howto Processes Written Characteristics in BDS project</title><link>https://devzone.nordicsemi.com/thread/107668?ContentTypeID=1</link><pubDate>Mon, 27 Nov 2017 17:07:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0a7da952-f803-46e3-a80a-d23b4e4de865</guid><dc:creator>SRose</dc:creator><description>&lt;p&gt;Thanks Sigurd.  We&amp;#39;ll do stuff from the main context.  We&amp;#39;re using BDS because the code needs to be completed quickly.  No time to learn to do it from scratch.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Howto Processes Written Characteristics in BDS project</title><link>https://devzone.nordicsemi.com/thread/107667?ContentTypeID=1</link><pubDate>Fri, 17 Nov 2017 14:46:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08e57c0e-a9e8-48c2-9483-5a7eec6a1e0f</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;All the on_ble_evt() functions runs in interrupt priority  &lt;code&gt;APP_IRQ_PRIORITY_LOW&lt;/code&gt;. So you can call sd_() functions from this priority level. But you should not call things in a way so that it&amp;#39;s prevents it from doing its other tasks, but short calls to other sd_ functions is fine.&lt;/p&gt;
&lt;p&gt;If you are in fact doing very intensive processing you should do this from main context. In order to transfer execution from the interrupt context to the main context you can then use the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/lib_scheduler.html?cp=4_0_0_3_34"&gt;scheduler&lt;/a&gt;. We have an &lt;a href="https://devzone.nordicsemi.com/tutorials/23/"&gt;old tutorial here&lt;/a&gt; and this &lt;a href="https://devzone.nordicsemi.com/question/17526/examples-using-the-scheduler/?answer=17595#post-id-17595"&gt;post&lt;/a&gt; that might be useful.&lt;/p&gt;
&lt;p&gt;Also note that the aim of BDS is fast prototyping. BDS plugin was updated for SDK 14, but it&amp;#39;s machine generated code. You might want to learn how to write your custom services. See this &lt;a href="https://github.com/bjornspockeli/custom_ble_service_example"&gt;Custom Service Tutorial on GitHub&lt;/a&gt; that is using the ble_app_template for more on that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>