cancel
Showing results for 
Search instead for 
Did you mean: 

BlueNRG aci_att_find_information_req bug?

Lukasz Iwaszkiewicz
Associate III
Posted on April 15, 2016 at 00:13

Hi 

   I think I found a bug in aci_att_find_information_req which always returns BLE_STATUS_TIMEOUT for me. This function creates a hci_request variable, fills it with zeros, and then sets all fields except ''event''. Then in hci_send_req function, case EVT_CMD_STATUS: gets asserted, and if (r->event != EVT_CMD_STATUS) condition is checked and met (since event == 0). Then, in the next iteration of while loop, I get BLE_STATUS_TIMEOUT

   

If I initialize hci_request::event field to EVT_CMD_STATUS, function works, and I successfully got an UUID of handle 0x01. Please note, that every (?) other function with ''aci_gatt_'' prefix located in ''bluenrg_gatt_aci.c'' file has this ''event'' field initialized just like I mentioned, and at the other hand, every function prefixed ''aci_att_'' has not.

Please help me verify if this is something wrong with my code, or it's a bug. How do I proceed in the latter case? I've found a repo for BlueNRG library here https://developer.mbed.org/teams/ST/code/X_NUCLEO_IDB0XA1/ , but don't know how to contact the developers.

PS. My code is a somewhat modified example named ''SensorDemo'' from ''STM32CubeExpansion_BLE1_V2.5.2'', and I run the function on question like this:

void GAP_ConnectionComplete_CB (uint8_t addr[6], uint16_t handle)

{

        connected = TRUE;

        connection_handle = handle;

        printf (''Connected to device:'');

        for (int i = 5; i > 0; i--) {

                printf (''%02X-'', addr[i]);

        }

        printf (''%02X\n'', addr[0]);

        tBleStatus stat = aci_att_find_information_req (connection_handle, 0x01, 0x01);

        if (stat != BLE_STATUS_SUCCESS) {

                printf (''stat != BLE_STATUS_SUCCESS (%d)\n'', stat);

                while (1)

                        ;

        }

}

All the code is here : https://github.com/iwasz/blue-nrg-test , and it runs on STM32F7-DISCO + BlueNRG shield

Regs
0 REPLIES 0