GATT Current Time Service (CTS) Client
You can use the CTS Client library to retrieve the current time from a connected peer that is running the GATT server with the Current Time Service.
The CTS Client is used in the Bluetooth: Peripheral CTS client sample.
API documentation
include/bluetooth/services/cts_client.h
subsys/bluetooth/services/cts_client.c
- group bt_gatt_cts_c
Current Time Service Client module.
Typedefs
-
typedef void (*bt_cts_read_cb)(struct bt_cts_client *cts_c, struct bt_cts_current_time *current_time, int err)
Read complete callback.
This function is called when the read operation finishes.
- Param cts_c:
Current Time Service client structure.
- Param current_time:
The current time value that was read.
- Param err:
Error code.
-
typedef void (*bt_cts_notify_cb)(struct bt_cts_client *cts_c, struct bt_cts_current_time *current_time)
Value notification callback.
This function is called every time the server sends a notification for a changed value.
- Param cts_c:
Current Time Service client structure.
- Param current_time:
The notified current time value.
Functions
-
int bt_cts_client_init(struct bt_cts_client *cts_c)
Function for initializing the Current Time Service client.
- Parameters:
cts_c – [out] Current Time Service client structure. This structure must be supplied by the application. It is initialized by this function and can later be used to identify this particular client instance.
- Return values:
0 – If the client was initialized successfully. Otherwise, a (negative) error code is returned.
-
int bt_cts_read_current_time(struct bt_cts_client *cts_c, bt_cts_read_cb func)
Function for reading the peer’s Current Time Service Current Time characteristic.
- Parameters:
cts_c – [in] Current Time Service client structure.
func – [in] The callback function.
- Return values:
0 – If all operations are successful. Otherwise, a (negative) error code is returned.
-
int bt_cts_subscribe_current_time(struct bt_cts_client *cts_c, bt_cts_notify_cb func)
Subscribe to the current time value change notification.
- Parameters:
cts_c – [in] Current Time Service client structure.
func – [in] The callback function.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int bt_cts_unsubscribe_current_time(struct bt_cts_client *cts_c)
Remove the subscription.
- Parameters:
cts_c – [in] Current Time Service client structure.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int bt_cts_handles_assign(struct bt_gatt_dm *dm, struct bt_cts_client *cts_c)
Function for assigning handles to this instance of cts_c.
Call this function when a link has been established with a peer to associate the link to this instance of the module. This makes it possible to handle several links and associate each link to a particular instance of this module.
- Parameters:
dm – [in] Discovery object.
cts_c – [out] Current Time Service client structure.
- Return values:
0 – If the operation is successful. Otherwise, a (negative) error code is returned.
-
struct bt_cts_exact_time_256
- #include <cts_client.h>
“Exact Time 256” field of the Current Time characteristic.
-
struct bt_cts_adjust_reason
- #include <cts_client.h>
“Adjust Reason” field of the Current Time characteristic.
-
struct bt_cts_current_time
- #include <cts_client.h>
Data structure for the Current Time characteristic.
-
struct bt_cts_client
- #include <cts_client.h>
Current Time Service client structure. This structure contains status information for the client.
Public Members
-
struct bt_conn *conn
Connection object.
-
uint16_t handle_ct
Handle of the Current Time Characteristic.
-
uint16_t handle_ct_ccc
Handle of the CCCD of the Current Time Characteristic.
-
atomic_t state
Internal state.
-
struct bt_gatt_read_params read_params
Read parameters.
-
struct bt_gatt_subscribe_params notify_params
Notification parameters.
-
bt_cts_read_cb read_cb
Read value callback.
-
bt_cts_notify_cb notify_cb
Notification callback.
-
struct bt_conn *conn
-
typedef void (*bt_cts_read_cb)(struct bt_cts_client *cts_c, struct bt_cts_current_time *current_time, int err)