Important: Before you run this example, make sure to program the SoftDevice .
The Current Time Application is an example that implements the client role of the Current Time Profile using the hardware delivered in the nRF5 Development Kit.
This application utilizes the client implementation of the Current Time Service:
- Note
- This application is not power optimized!
The purpose of this example is to use the Current Time Service to read the current time. The time is printed on the UART in the following format:
Date:
Day of week Saturday
Day of month 15
Month of year November
Year 1986
Time:
Hours 13
Minutes 37
Seconds 42
Fractions 254/256 of a second
Adjust Reason:
Daylight savings 1
Time zone 0
External update 0
Manual update 0
Bonding is usually initiated by the central device. If it is not initiated within a specific time-out period, the application initiates bonding.
The current implementation requires security to be established before service discovery. After service discovery has been completed, button 1 can be used to read the current time (if the Current Time Service and Characteristic are found on the central side).
Setup
You can find the source code and the project file of the example in the following folder:
<InstallFolder>\examples\ble_peripheral\ble_app_cts_c
Button assignments - in addition to those defined in BSP BLE Button Assignments :
-
During Connection:
- Button 1: Read the current time from the connected central.
The Current Time Application does fast advertising for 30 seconds at power up and also after a disconnection. It will then switch to slow advertising mode for 180 seconds. After 180 seconds of slow advertising, the board will go to system-off.
The application uses the following UART settings:
- Baud rate: 115.200
- 8 data bits
- 1 stop bit
- No parity
- HW flow control: None
Testing
Test the Current Time Application with the Master Control Panel by performing the following steps:
- Compile and download the application. Observe that the BSP_INDICATE_ADVERTISING state is indicated.
-
In the Master Control Panel, create the Current Time Service (CTS) server by performing the following steps:
- Click File -> Server Setup. In the window that opens up, click File -> Load setup.
-
In the resulting window, navigate to the
<InstallFolder>\examples\ble_peripheral\ble_app_cts_cfolder. Load the filects_central.bin. - Click 'Stop server' and then 'Start server'.
- You must keep the 'Server Setup' window opened.
- Select the device from Master Control Panel (the device will be advertising as 'Nordic_CTS'), connect and bond. Observe that the BSP_INDICATE_CONNECTED state is indicated.
- After the security procedure is complete, verify that the Current Time Service on the server has been discovered. The message "Current Time Service discovered on server." will be printed on the UART.
- In the 'Server Setup' window, set the values of the Current Time characteristic (UUID 0x2A2B) to C2-07-0B-0F-0D-25-2A-06-FE-08 and press 'update'.
- Press button 1. Verify that the current time printed on the UART matches the time that was input in the Current Time characteristic (UUID 0x2A2B) (see the example UART output ).
- Disconnect from the Master Control Panel and observe that the BSP_INDICATE_ADVERTISING state is indicated.
- Wait until the application goes to system-off ( BSP_INDICATE_IDLE ).
- Press button 1 and connect to the Master Control Panel. Observe that the BSP_INDICATE_CONNECTED state is indicated.
- Disconnect from the Master Control Panel.