Hi,
I'm new to nRF8001 SDK and Bluetooth and I hope my questions are not too stupid lol. So here it goes:
I'm using the Nordic nRF8001 SDK to implement a self-defined service with vendor specific UUID, in order to communicate with an iPhone app using the RedBearLab's BLE shield. The service has a notification enabled characteristic (TX pipe), used for transmitting data to the iPhone central.
I used the nRFgo Studio to generate the appropriate service.h file and the iPhone app can find the device and connect to it. After connection, the iPhone app (according to the app develope) would subscribe to the characteristic (represented by the TX pipe in question) and wait for a response that subscription was acknowledged. On the Arduino side, I can see that the 'ACI_EVT_PIPE_STATUS' would flare, indicating a change of pipe status. However the lib_aci_is_pipe_available(...) function would always return 'false' on that particular pipe. So I am trying to understand what happened...
My questions are:
-
in order to open the TX pipe, does it suffice for the central to subscribe to the characteristic in question (setting notify to yes) ?
-
If the central subscribes to this characteristic, with this SDK will the peripheral send a response to central acknowledging the subscription automatically (through the pipe)?
-
If I am able to see an ACI_EVT_PIPE_STATUS returned, does it mean that the central actually subscribed to the characteristic?
-
On the iPhone app side, the developer can use iOS standard Bluetooth api and the nRF8001 SDK should have no problem working with it , right?
I know it's a lot of questions but thank you very much for taking your time to have a look at them !!
Best regards.