This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Device name has only 4 letters

Hello everyone,

I have a problem with my device name. First of all I want tro write the device ID into the device name. I get the device ID over "RF_FICR->DEVICEID[0]".

That means I want to write the device name into a int or char and not with a #define as it is right now. Additionaly I tried to only modify the device name over #define and it shows me only the first 4 letters. I checked everything and I cannot find the problem.

I checked:

init.advdata.name_type               = BLE_ADVDATA_FULL_NAME

#define BLE_GAP_DEVNAME_MAX_LEN                  248

I dont understand why it advertises only 4 letters. I tried to make the implementation like following:

char device_namee[8] ="EF234ABC";

const uint8_t * p_device_name =&device_namee[8];

static void gap_params_init(void)
{
    ret_code_t              err_code;
    ble_gap_conn_params_t   gap_conn_params;
    ble_gap_conn_sec_mode_t sec_mode;

    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);

    err_code = sd_ble_gap_device_name_set(&sec_mode,
                                          p_device_name,
                                          strlen(device_namee));
    APP_ERROR_CHECK(err_code);

    memset(&gap_conn_params, 0, sizeof(gap_conn_params));

    gap_conn_params = m_scan.conn_params;

    err_code = sd_ble_gap_ppcp_set(&gap_conn_params);
    APP_ERROR_CHECK(err_code);
}

If I adveritse like that it shows me nothing or difficult symbols...

Summerized:

  • If I use the method with #define I am only able to write 4 letter
  • If I try to write my own name over char and not over #define it doesnt show anything only some difficult symbols

Best regards!

Parents
  • Hi Hani

    I noticed that you declare device_namee like this: char device_namee[8] ="EF234ABC".

    So basically you are declaring an array with 8 bytes of type char.

    Then you set a pointer to this array, as follows: const uint8_t * p_device_name =&device_namee[8]

    I believe that you should declare the pointer like this: const char * p_device_name =&device_namee   (no array size identifier here!)

    That's my two cents. Let me know how that goes.

    Cheers

    Rob

Reply
  • Hi Hani

    I noticed that you declare device_namee like this: char device_namee[8] ="EF234ABC".

    So basically you are declaring an array with 8 bytes of type char.

    Then you set a pointer to this array, as follows: const uint8_t * p_device_name =&device_namee[8]

    I believe that you should declare the pointer like this: const char * p_device_name =&device_namee   (no array size identifier here!)

    That's my two cents. Let me know how that goes.

    Cheers

    Rob

Children
No Data
Related