2016-04-14 03:13 PM
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 shieldRegs