<?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>An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/99481/an-alternative-api-from-sdkv16-0-0-softdevice-v7-to-sdkv14-2-0-softdevice-v5</link><description>pm_handler_secure_on_connection(p_ble_evt); API from sdkv16.0.0 softdevice V7 
 I want an alternative of this API in the sdkv14.2.0 softdevice V5</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 15 May 2023 09:00:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/99481/an-alternative-api-from-sdkv16-0-0-softdevice-v7-to-sdkv14-2-0-softdevice-v5" /><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/425535?ContentTypeID=1</link><pubDate>Mon, 15 May 2023 09:00:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00542713-8236-42d1-abca-98a376ea2ee4</guid><dc:creator>Sigurd</dc:creator><description>[quote user="ahmed560"]I tested&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ble_app_gls example and it works good&amp;nbsp;&lt;/span&gt;[/quote]
&lt;p&gt;Good! (If it still does not work in your exmaple, then maybe check if SEC_PARAM_MIN_KEY_SIZE and&amp;nbsp;&lt;span&gt;SEC_PARAM_MAX_KEY_SIZE is set as per ble_app_gls example in your example as well&lt;/span&gt;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424729?ContentTypeID=1</link><pubDate>Wed, 10 May 2023 07:58:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e9fc235-2ee0-4fa3-ba50-dea7ab2ec32c</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I tested&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ble_app_gls example and it works good&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;#define SEC_PARAM_BOND                  1                                           /**&amp;lt; Perform bonding. */
#define SEC_PARAM_MITM                  1                                           /**&amp;lt; Man In The Middle protection not required. */
#define SEC_PARAM_LESC                  0                                           /**&amp;lt; LE Secure Connections not enabled. */
#define SEC_PARAM_KEYPRESS              0                                           /**&amp;lt; Keypress notifications not enabled. */
#define SEC_PARAM_IO_CAPABILITIES       BLE_GAP_IO_CAPS_DISPLAY_ONLY  

static void pm_evt_handler(pm_evt_t const * p_evt)
{
    ret_code_t err_code;

    switch (p_evt-&amp;gt;evt_id)
    {
        case PM_EVT_BONDED_PEER_CONNECTED:
        {   err_code = app_timer_start(m_sec_req_timer_id, SECURITY_REQUEST_DELAY, NULL);
            NRF_LOG_INFO(&amp;quot;Connected to a previously bonded device.&amp;quot;);
        } break;

        case PM_EVT_CONN_SEC_SUCCEEDED:
        {    IsConnectedFlag=1;
             IsConnected=1;
             pm_conn_sec_status_t conn_sec_status;

            // Check if the link is authenticated (meaning at least MITM).
            err_code = pm_conn_sec_status_get(p_evt-&amp;gt;conn_handle, &amp;amp;conn_sec_status);
            if (conn_sec_status.mitm_protected)
            {
                NRF_LOG_INFO(&amp;quot;Link secured. Role: %d. conn_handle: %d, Procedure: %d&amp;quot;,
                             ble_conn_state_role(p_evt-&amp;gt;conn_handle),
                             p_evt-&amp;gt;conn_handle,
                             p_evt-&amp;gt;params.conn_sec_succeeded.procedure);
            }
            else
            {
                // The peer did not use MITM, disconnect.
                NRF_LOG_INFO(&amp;quot;Collector did not use MITM, disconnecting&amp;quot;);
                err_code = pm_peer_id_get(c_conn_handle, &amp;amp;m_peer_to_be_deleted);
               
                err_code = sd_ble_gap_disconnect(c_conn_handle,
                                                 BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
             
            }
        } break;

        case PM_EVT_CONN_SEC_FAILED:
        {
            /* Often, when securing fails, it shouldn&amp;#39;t be restarted, for security reasons.
             * Other times, it can be restarted directly.
             * Sometimes it can be restarted, but only after changing some Security Parameters.
             * Sometimes, it cannot be restarted until the link is disconnected and reconnected.
             * Sometimes it is impossible, to secure the link, or the peer device does not support it.
             * How to handle this error is highly application dependent. */
              c_conn_handle = BLE_CONN_HANDLE_INVALID;
        } break;

        case PM_EVT_CONN_SEC_CONFIG_REQ:
        {
            // Reject pairing request from an already bonded peer.
            pm_conn_sec_config_t conn_sec_config = {.allow_repairing = false};
            pm_conn_sec_config_reply(p_evt-&amp;gt;conn_handle, &amp;amp;conn_sec_config);
        } break;

        case PM_EVT_STORAGE_FULL:
        {
            // Run garbage collection on the flash.
            err_code = fds_gc();
            if (err_code == FDS_ERR_BUSY || err_code == FDS_ERR_NO_SPACE_IN_QUEUES)
            {
                // Retry.
            }
            else
            {
                
            }
        } break;

        case PM_EVT_PEERS_DELETE_SUCCEEDED:
        {
            adv_scan_start();
        } break;

        case PM_EVT_LOCAL_DB_CACHE_APPLY_FAILED:
        {
            // The local database has likely changed, send service changed indications.
            pm_local_database_has_changed();
        } break;

        case PM_EVT_PEER_DATA_UPDATE_FAILED:
        {
            // Assert.
            
        } break;

        case PM_EVT_PEER_DELETE_FAILED:
        {
            // Assert.
           
        } break;

        case PM_EVT_PEERS_DELETE_FAILED:
        {
            // Assert.
           
        } break;

        case PM_EVT_ERROR_UNEXPECTED:
        {
            // Assert.
            
        } break;

        case PM_EVT_CONN_SEC_START:
        case PM_EVT_PEER_DATA_UPDATE_SUCCEEDED:
        case PM_EVT_PEER_DELETE_SUCCEEDED:
        case PM_EVT_LOCAL_DB_CACHE_APPLIED:
        case PM_EVT_SERVICE_CHANGED_IND_SENT:
        case PM_EVT_SERVICE_CHANGED_IND_CONFIRMED:
        default:
            break;
    }
}

static void sec_req_timeout_handler(void * p_context)
{
    ret_code_t err_code;

    if (c_conn_handle != BLE_CONN_HANDLE_INVALID)
    {
        // Initiate bonding.
        NRF_LOG_DEBUG(&amp;quot;Start encryption&amp;quot;);
        err_code = pm_conn_secure(c_conn_handle, false);
       
    }
}

/**@brief Function for handling BLE events.
 *
 * @param[in]   p_ble_evt   Bluetooth stack event.
 * @param[in]   p_context   Unused.
 */
static void on_ble_peripheral_evt(ble_evt_t const * p_ble_evt)
{
    uint32_t err_code;
    switch (p_ble_evt-&amp;gt;header.evt_id)
    {
     case BLE_GAP_EVT_DISCONNECTED:

          {  NRF_LOG_INFO(&amp;quot;Disconnected&amp;quot;);
            IsConnectedFlag=0; //FOR UART SEND
            IsConnected=0;
            // LED indication will be changed when advertising starts.
            c_conn_handle = BLE_CONN_HANDLE_INVALID;
             if (m_peer_to_be_deleted != PM_PEER_ID_INVALID)
            {
                err_code = pm_peer_delete(m_peer_to_be_deleted);
               
                NRF_LOG_DEBUG(&amp;quot;Collector&amp;#39;s bond deleted&amp;quot;);
                m_peer_to_be_deleted = PM_PEER_ID_INVALID;
            }
           } break;
        case BLE_GAP_EVT_CONNECTED:
            NRF_LOG_INFO(&amp;quot;Connected&amp;quot;);
            m_peer_to_be_deleted = PM_PEER_ID_INVALID;
            IsConnectedFlag=1; //FOR UART SEND
            IsConnected=1;
            //err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
           // APP_ERROR_CHECK(err_code);
            c_conn_handle = p_ble_evt-&amp;gt;evt.gap_evt.conn_handle;
            err_code = app_timer_start(m_sec_req_timer_id, SECURITY_REQUEST_DELAY, NULL);
            break;
        case BLE_GATTC_EVT_TIMEOUT:
            // Disconnect on GATT Client timeout event.
            err_code = sd_ble_gap_disconnect(p_ble_evt-&amp;gt;evt.gattc_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
           
            break;

        case BLE_GATTS_EVT_TIMEOUT:
            // Disconnect on GATT Server timeout event.
            err_code = sd_ble_gap_disconnect(p_ble_evt-&amp;gt;evt.gatts_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
           
            break;

        case BLE_EVT_USER_MEM_REQUEST:
            err_code = sd_ble_user_mem_reply(p_ble_evt-&amp;gt;evt.gattc_evt.conn_handle, NULL);
           
            break;

        case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST:
        {
            ble_gatts_evt_rw_authorize_request_t  req;
            ble_gatts_rw_authorize_reply_params_t auth_reply;

            req = p_ble_evt-&amp;gt;evt.gatts_evt.params.authorize_request;

            if (req.type != BLE_GATTS_AUTHORIZE_TYPE_INVALID)
            {
                if ((req.request.write.op == BLE_GATTS_OP_PREP_WRITE_REQ)     ||
                    (req.request.write.op == BLE_GATTS_OP_EXEC_WRITE_REQ_NOW) ||
                    (req.request.write.op == BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL))
                {
                    if (req.type == BLE_GATTS_AUTHORIZE_TYPE_WRITE)
                    {
                        auth_reply.type = BLE_GATTS_AUTHORIZE_TYPE_WRITE;
                    }
                    else
                    {
                        auth_reply.type = BLE_GATTS_AUTHORIZE_TYPE_READ;
                    }
                    auth_reply.params.write.gatt_status = APP_FEATURE_NOT_SUPPORTED;
                    err_code = sd_ble_gatts_rw_authorize_reply(p_ble_evt-&amp;gt;evt.gatts_evt.conn_handle,
                                                               &amp;amp;auth_reply);
                   
                }
            }
        } break; // BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST
       case BLE_GAP_EVT_PASSKEY_DISPLAY:
        {
            char passkey[PASSKEY_LENGTH + 1] = &amp;quot;12345&amp;quot; ;
            memcpy(passkey, p_ble_evt-&amp;gt;evt.gap_evt.params.passkey_display.passkey, PASSKEY_LENGTH);
            passkey[PASSKEY_LENGTH] = 0;
            err_code = app_timer_stop(m_sec_req_timer_id);
            // Don&amp;#39;t send delayed Security Request if security procedure is already in progress.            
        } break;
        default:
            // No implementation needed.
            break;
    }
}

int main(void)
{
    uint32_t err_code;
    bool     erase_bonds;
    tret     testret;
    // Initialize.
    err_code = app_timer_init();
    err_code = app_timer_create(&amp;amp;m_sec_req_timer_id,
                                APP_TIMER_MODE_SINGLE_SHOT,
                                sec_req_timeout_handler);&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424594?ContentTypeID=1</link><pubDate>Tue, 09 May 2023 14:13:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e90c5eb-fca5-451c-ac49-5dfce89b2809</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Ok, what about 1) and 3)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424452?ContentTypeID=1</link><pubDate>Tue, 09 May 2023 09:13:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ceb0bcd7-6cf7-45a7-937f-faf91baf8f69</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I compared both main codes, I think that I made the same implementation&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424446?ContentTypeID=1</link><pubDate>Tue, 09 May 2023 09:03:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8332acb6-ede2-4340-8b7b-c9c788c287c7</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;1) It works as expected for you with the&amp;nbsp;&lt;span&gt;ble_app_gls example, correct?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2) Can you compare your implementation with&amp;nbsp;ble_app_gls example, maybe you missed something?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3) Could you post your main.c code?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424350?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 15:24:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04e7775d-da6f-41c0-b9d0-d94a2cf12c1e</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;&lt;span&gt;yes I&lt;/span&gt;&lt;span&gt; remove the bond/pairing from both devices&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424348?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 15:08:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bde0743-f10c-4e5c-9c01-a95cf6d3277a</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Did you remove the bond/pairing from both devices? If you are already bonded, then you will not get this pop-up.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424311?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 13:44:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a181982c-c6cf-4101-a03c-5ee7709eadd3</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;the pop-up is where you can write a password in the nRF connect&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424306?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 13:30:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c2f0497-cca6-4bc9-a313-690be86c54e4</guid><dc:creator>Sigurd</dc:creator><description>[quote user="ahmed560"]I want to show the pop-up but it doesn&amp;#39;t work[/quote]
&lt;p&gt;What pop-up?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424222?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 10:54:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eeee5f8d-0b3c-4863-b519-de19c58e2231</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;I try it one more time but it&amp;#39;s not done I want to show the pop-up but it doesn&amp;#39;t work&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424212?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 10:35:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7a35318-ef82-4a97-b36b-37b8e4053be1</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;thank you, I will try it now&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424210?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 10:32:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4750c0b6-d4d2-4463-a547-6f99e8d5ed03</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Take a look at how it&amp;#39;s used in e.g. the ble_app_gls example.&lt;/p&gt;
&lt;p&gt;Some snippets from that example:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**@brief Function for handling the Security Request timer timeout.
 *
 * @details This function will be called each time the Security Request timer expires.
 *
 * @param[in] p_context  Pointer used for passing some arbitrary information (context) from the
 *                       app_start_timer() call to the timeout handler.
 */
static void sec_req_timeout_handler(void * p_context)
{
    ret_code_t err_code;

    if (m_conn_handle != BLE_CONN_HANDLE_INVALID)
    {
        // Initiate bonding.
        NRF_LOG_DEBUG(&amp;quot;Start encryption&amp;quot;);
        err_code = pm_conn_secure(m_conn_handle, false);
        if (err_code != NRF_ERROR_INVALID_STATE)
        {
            APP_ERROR_CHECK(err_code);
        }
    }
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void pm_evt_handler(pm_evt_t const * p_evt)
{
    ret_code_t err_code;

    switch (p_evt-&amp;gt;evt_id)
    {
        case PM_EVT_BONDED_PEER_CONNECTED:
        {
            NRF_LOG_INFO(&amp;quot;Connected to a previously bonded device.&amp;quot;);
            // Start Security Request timer.
            err_code = app_timer_start(m_sec_req_timer_id, SECURITY_REQUEST_DELAY, NULL);
            APP_ERROR_CHECK(err_code);
        } break;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**@brief Function for the Timer initialization.
 *
 * @details Initializes the timer module. This creates and starts application timers.
 */
static void timers_init(void)
{
    ret_code_t err_code;

    // Initialize timer module.
    err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);

    // Create timers.
    err_code = app_timer_create(&amp;amp;m_battery_timer_id,
                                APP_TIMER_MODE_REPEATED,
                                battery_level_meas_timeout_handler);
    APP_ERROR_CHECK(err_code);

    // Create Security Request timer.
    err_code = app_timer_create(&amp;amp;m_sec_req_timer_id,
                                APP_TIMER_MODE_SINGLE_SHOT,
                                sec_req_timeout_handler);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
{
    ret_code_t err_code;

    switch (p_ble_evt-&amp;gt;header.evt_id)
    {
        case BLE_GAP_EVT_DISCONNECTED:
        {
            NRF_LOG_INFO(&amp;quot;Disconnected&amp;quot;);
            m_conn_handle = BLE_CONN_HANDLE_INVALID;
            // Check if the last connected peer had not used MITM, if so, delete its bond information.
            if (m_peer_to_be_deleted != PM_PEER_ID_INVALID)
            {
                err_code = pm_peer_delete(m_peer_to_be_deleted);
                APP_ERROR_CHECK(err_code);
                NRF_LOG_DEBUG(&amp;quot;Collector&amp;#39;s bond deleted&amp;quot;);
                m_peer_to_be_deleted = PM_PEER_ID_INVALID;
            }
        } break;

        case BLE_GAP_EVT_CONNECTED:
        {
            NRF_LOG_INFO(&amp;quot;Connected&amp;quot;);
            m_peer_to_be_deleted = PM_PEER_ID_INVALID;
            err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
            APP_ERROR_CHECK(err_code);
            m_conn_handle = p_ble_evt-&amp;gt;evt.gap_evt.conn_handle;
            // Start Security Request timer.
            err_code = app_timer_start(m_sec_req_timer_id, SECURITY_REQUEST_DELAY, NULL);
            APP_ERROR_CHECK(err_code);
        } break;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424204?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 10:12:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd63d055-cf4f-4b04-9494-195bacf5cde1</guid><dc:creator>ahmed560</dc:creator><description>&lt;p&gt;I try it but it doesn&amp;#39;t work&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: An alternative API from sdkv16.0.0 softdevice V7 to sdkv14.2.0 softdevice V5</title><link>https://devzone.nordicsemi.com/thread/424182?ContentTypeID=1</link><pubDate>Mon, 08 May 2023 09:22:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01dea403-0c94-4307-9d7b-5c45be95ce6f</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Use&amp;nbsp;pm_conn_secure()&lt;/p&gt;
&lt;p&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/lib_pm_functionality.html"&gt;https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/lib_pm_functionality.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>