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

AN36 question

this is quote from AN36> 4.2 Set up

The nRF51822 Evaluation Kit is needed for this application example. However, it is possible to modify the project to also work with the Development Kit. 4.2.1 Setting up the Evaluation board Since the nRF51822 Evaluation Kit has an onboard SEGGER chip, you can connect the Evaluation board through a USB cable and immediately start working on it. 4.2.2 Setting up the application A lot of boilerplate code is needed to get started creating an application and a service, so the first step is to copy code from the SDK:

  1. Go to Board\nrf6310\ble\ble_app_template folder.
  2. Copy this folder to Board\pca10001\ble\ and rename it to ble_app_lbs.
  3. Inside the Arm subfolder of ble_app_lbs change the name of the project files from ble_app_template to ble_app_lbs.

At the same time AN36 has folder code[u][/u] which includes ble_app_lbs.uvproj

Could someone please clarify.

The second question/clarification is where can I find parameters SD110 used on pca10005 and pca10004 for keil?

Thank you.

Parents
  • I'm assuming than when initialization of (ble_gatts_attr_t)attr_char_value.init_len and (ble_gatts_attr_t)attr_char_value.max_len takes place sizeof of the attribute characteristic value should be used: i.e. if my initial value is string

    
    #define MAX_LEN 20
    char first[] = "hello world";
    char last[] = "good bye cruel world";
    
    

    During init

    
    attr_char_value.p_value = first;
    attr_char_value.init_len = strlen(first);
    attr_char_value.max_len = MAX_LEN;
    
    

    later

    
    attr_char_value.p_value = last;
    attr_char_value.init_len = strlen(last);
    
    

    Am I correct?

  • The default is for characteristic values to be kept in stack memory, in which case the value is copied from p_value and into a buffer inside the softdevice when initializing the characteristic. In this case, changing the value p_value pointed towards after init have no effect.

    If you want to have variable length, you must set the vlen field in the ble_gatts_attr_md_t struct. When you then use sd_ble_gatts_value_set(), the softdevice will set the correct length in its GATT table, enabling the GATT Client to read the correct length.

Reply
  • The default is for characteristic values to be kept in stack memory, in which case the value is copied from p_value and into a buffer inside the softdevice when initializing the characteristic. In this case, changing the value p_value pointed towards after init have no effect.

    If you want to have variable length, you must set the vlen field in the ble_gatts_attr_md_t struct. When you then use sd_ble_gatts_value_set(), the softdevice will set the correct length in its GATT table, enabling the GATT Client to read the correct length.

Children
No Data
Related