<?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>SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24292/sdk-14---how-to-set-up-a-ble-observer-for-custom-service</link><description>NRF52DK (PCA10040) - SDK14 - Arm GCC (using Eclipse) - S132 5.0.0 Soft Device 
 I had a custom service set up in SDK13 using the tutorial here . 
 I am migrating my project to SDK14. I have everything else completely working except the BLE service.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 09 Apr 2018 08:24:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24292/sdk-14---how-to-set-up-a-ble-observer-for-custom-service" /><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/127359?ContentTypeID=1</link><pubDate>Mon, 09 Apr 2018 08:24:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ab0c6fe-694a-4eaf-bbab-48ff101acb0d</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;This has a separate thread: &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/33001/nrf52810---sdh-ble-observer-not-getting-notified"&gt;devzone.nordicsemi.com/.../nrf52810---sdh-ble-observer-not-getting-notified&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/126735?ContentTypeID=1</link><pubDate>Wed, 04 Apr 2018 04:03:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71dd03ab-f625-45d1-9d47-5d56d410f3a1</guid><dc:creator>Ankit Bhatnagar</dc:creator><description>&lt;p&gt;Hi Bryan, I am also facing an issue with sdk 14 where by ble event observer hangs the system whenever I try to connect to the device. The device is advertising but hangs on connect. Everything else including a 1 second timer also stops which means the observer is getting the connect event but something somewhere hangs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Since you have already got it to work, any idea what could be happening ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95629?ContentTypeID=1</link><pubDate>Tue, 15 Aug 2017 15:55:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f2d44adf-87f5-452e-b712-48a5f79719e2</guid><dc:creator>Bryan H</dc:creator><description>&lt;p&gt;Now I am getting:&lt;/p&gt;
&lt;p&gt;../../../our_service.c: In function &amp;#39;ble_our_service_on_ble_evt&amp;#39;:&lt;/p&gt;
&lt;p&gt;../../../our_service.c:105:41: error: passing argument 2 of &amp;#39;on_ble_write&amp;#39; discards &amp;#39;const&amp;#39; qualifier from pointer target type [-Werror=discarded-qualifiers]&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;         on_ble_write(p_our_service, p_ble_evt);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I fixed that by adding &lt;code&gt;const&lt;/code&gt; to void on_ble_write...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static void on_ble_write(ble_os_t * p_our_service, ble_evt_t  const * p_ble_evt)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Thank you sooooooo much for your help!&lt;/p&gt;
&lt;p&gt;It works perfectly now!!!!&lt;/p&gt;
&lt;p&gt;I owe you big time!!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95628?ContentTypeID=1</link><pubDate>Tue, 15 Aug 2017 15:36:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97f67a27-4e83-4062-80a3-bc2d0bb77d6f</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;I edited previous comment to add &lt;code&gt;const&lt;/code&gt; in the declaration&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95627?ContentTypeID=1</link><pubDate>Tue, 15 Aug 2017 14:38:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6664a4aa-e4f2-4f30-9709-3309a62f2d0c</guid><dc:creator>Bryan H</dc:creator><description>&lt;p&gt;I am now getting an error:
../../../main.c:1733:73: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]&lt;/p&gt;
&lt;p&gt;NRF_SDH_BLE_OBSERVER(m_our_service_observer, APP_BLE_OBSERVER_PRIO, ble_our_service_on_ble_evt, (void*)&amp;amp;m_our_service);&lt;/p&gt;
&lt;p&gt;It is indicating the error is with : ble_our_service_on_ble_evt&lt;/p&gt;
&lt;p&gt;Also says right below that error:&lt;/p&gt;
&lt;p&gt;c:\sdk14.0\components\softdevice\common\nrf_sdh_ble.h:89:18: note: in definition of macro &amp;#39;NRF_SDH_BLE_OBSERVER&amp;#39;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; .handler   = _handler,                                                                          \

              ^
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;How can I fix that error?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95630?ContentTypeID=1</link><pubDate>Mon, 14 Aug 2017 21:04:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6eecb4c7-1165-4363-af85-67d9d87cd35c</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;change your&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void ble_our_service_on_ble_evt(ble_os_t * p_our_service, ble_evt_t * p_ble_evt)
{
   ...
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void ble_our_service_on_ble_evt(ble_evt_t const *p_ble_evt, void *p_context)
{
    ble_os_t * p_our_service = (ble_os_t *)p_context;

    ...
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95626?ContentTypeID=1</link><pubDate>Mon, 14 Aug 2017 20:45:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:250dee55-26d8-4311-b13b-836e48f9ed12</guid><dc:creator>Bryan H</dc:creator><description>&lt;p&gt;I can&amp;#39;t seem to get it to work with your code above. A ton of errors come up.&lt;/p&gt;
&lt;p&gt;This was the code that was in my &lt;strong&gt;static void ble_evt_dispatch(ble_evt_t * p_ble_evt)&lt;/strong&gt; on the previous SDK (that worked):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ble_our_service_on_ble_evt(&amp;amp;m_our_service, p_ble_evt);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This was the working code for &lt;strong&gt;void ble_our_service_on_ble_evt(ble_os_t * p_our_service, ble_evt_t * p_ble_evt)&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        case BLE_GATTS_EVT_WRITE:
        on_ble_write(p_our_service, p_ble_evt);
        break;
    case BLE_GAP_EVT_CONNECTED:
        p_our_service-&amp;gt;conn_handle = p_ble_evt-&amp;gt;evt.gap_evt.conn_handle;
        break;
    case BLE_GAP_EVT_DISCONNECTED:
        p_our_service-&amp;gt;conn_handle = BLE_CONN_HANDLE_INVALID;
        break;
    default:
        // No implementation needed.
        break;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Any help would be appreciated!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK 14 - How to set up a BLE Observer for custom service</title><link>https://devzone.nordicsemi.com/thread/95625?ContentTypeID=1</link><pubDate>Mon, 14 Aug 2017 16:45:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5adb8319-bd93-4a69-8b4a-ea100c1058fe</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;I started migrating too. Have not fully tested but you can try this.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void ble_our_service_on_ble_evt(ble_evt_t *p_ble_evt, void *p_context)
{
    ble_os_t * our_service = (ble_os_t *)p_context;

    ...
}

// Register a handler for BLE events.
NRF_SDH_BLE_OBSERVER(m_our_service_observer, APP_BLE_OBSERVER_PRIO, ble_our_service_on_ble_evt, (void*)&amp;amp;m_our_service);
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>