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
  • ble_bas.c

    
            if (
                (p_evt_write->handle == p_bas->battery_level_handles.cccd_handle)
                &&
                (p_evt_write->len == 2)
            )
    
    

    ble_lbs.c

    
            if (  
                  (p_evt_write->handle == p_lbs->led_char_handles.cccd_handle)
            && (p_evt_write->len == 1)
            && (p_lbs->led_write_handler != NULL)
            )
    
    

    My question is regarding p_evt_write->len. If this is new LED state then indeed it is defined as uint8_t and sizeof(uint8_t) is 1. What is being written to bas with length = 2?

    Or my assumptions are totally wrong and please explain what this length is representing.

    Thanks.

Reply
  • ble_bas.c

    
            if (
                (p_evt_write->handle == p_bas->battery_level_handles.cccd_handle)
                &&
                (p_evt_write->len == 2)
            )
    
    

    ble_lbs.c

    
            if (  
                  (p_evt_write->handle == p_lbs->led_char_handles.cccd_handle)
            && (p_evt_write->len == 1)
            && (p_lbs->led_write_handler != NULL)
            )
    
    

    My question is regarding p_evt_write->len. If this is new LED state then indeed it is defined as uint8_t and sizeof(uint8_t) is 1. What is being written to bas with length = 2?

    Or my assumptions are totally wrong and please explain what this length is representing.

    Thanks.

Children
  • The code snippet you post here from ble_lbs.c is not correct.

    When you receive a write, you can check the handle of the write to see which attribute was actually written. In the snippet from ble_bas.c, you can see that it waits for a write to the CCCD, and such writes should always be two bytes (CCCD is described in the Core Specification, Volume 3, Part G, section 3.3.3.3).

    However, the snippet you post from ble_lbs.c is intended to catch writes to the value of the LED characteristic (i.e. you should use value_handle, not cccd_handle), which will always be one byte.

    One additional comment: It's much easier for us to give you answers if you post unrelated questions as separate questions, instead of replies to an old question that have already been answered and resolved. It's easy that such replies are lost and forgotten, as happened with your reply above.

  • I see, copy and paste is always an issue. Sorry my mistake.

    Do youwant me to create a new topic "Yet another AN36 question"? I was those questions are related.

  • No, I'd suggest that you create question titles that actually explains the question. In the original case here, that could for example be "What is the ble_app_lbs folder in nAN-36"?

    This question you added here could have been titled "What is written to the BAS with length = 2?", and so on. If you do, that would make it much easier for us both to understand what you need to know, and to make sure that all the questions are answered. When questions are posted as replies, it often gets a little tricky to keep up with over time.

  • Will certainly do.

    Yet let's finish already published "unrelated" questions.

    Thank you.

Related