This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ble_advertising.c, code which probably need a change

In ble_advertising.c, line 165, you can see such interesting code. I assume it is a copy/paste error:

  if(p_advdata->p_tx_power_level != NULL)
        {
            m_advdata.p_tx_power_level     = &m_tx_power_level;
            m_advdata.p_tx_power_level     = p_advdata->p_tx_power_level;
        }

Probably better will be:

if(p_advdata->p_tx_power_level != NULL)
            {
                m_advdata.p_tx_power_level     = &m_tx_power_level;
                m_tx_power_level     = *(p_advdata->p_tx_power_level);
            }

What do you think Nordic?

  • I think someone forgot to remove m_tx_power_level from the code as it has become obsolete. The actual code should be

      if(p_advdata->p_tx_power_level != NULL)
            {
                m_advdata.p_tx_power_level     = p_advdata->p_tx_power_level;
            }
    

    but since m_advdata.p_tx_power_level is updated with the correct value in the second lvalue, the code should work ok.

    I will ask the sdk team to look into it. Thanks for updating us.

Related