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

Service is advertised, but not provided.

Hi Nordic!

I am building a Bluetooth application that uses Alert and Notification Service. We are using Evaluation board PCA10001, our code is based on the example app from board 6310.

The Central role is on iOS app. I can disover the peripheral and if I look at advertising data I see that service with correct UUID (1811) is being advertised. The service is, however, not discovered in later phase, which as I found out means that it is "not provided".

Attached is the source code for the application.

Here is a question I asked on StackOverflow, which lead to finding out that the iOS code is fine.

stackoverflow.com/.../ios-corebluetooth-services-never-discovered-but-are-visible-in-advertisingdata

ble_app_alert_notification.zip

Parents
  • The Alert Notification implementation that is in the SDK is a client implementation of the service, not a server implementation. If you take a look at the Alert Notification Profile document, you can see that the server is the device containing the alarms, while the client is accessing them. Section 2.4 also says:

    The Alert Notification Server shall implement the GAP central role and may implement the GAP Peripheral role. The Alert Notification Client shall implement the GAP Peripheral role and may implement the GAP Central role.

    Since the S110 is a Peripheral device, it therefore must implement the Client role, and this is what the SDK example shows. The services for which you are a client does not show up in your own GATT table, and hence you can't see that the connected Peripheral is a Alert Notification Client when you connect to it from your iOS app.

  • Yes, you'll have to implement the ANS Server on the iOS side. However, this doesn't actually make the iOS device into a GAP Peripheral, even though iOS API's make it seem like this. Take a look at this question for a description of the different roles: https://devzone.nordicsemi.com/index.php/what-is-a-client-and-server-in-ble#reply-233

    You are also correct that this in some sense mirrors the work done on the nRF51822 side, in that you have to implement a Server on iOS for the Client on the nRF51822 to access.

Reply Children
No Data
Related