SmartSnippets DA1459x SDK
Files | Data Structures | Macros | Enumerations | Functions
Current Time Service

Current time service sample implementation API. More...

Files

file  cts.h
 Current Time Service implementation API.
 

Data Structures

struct  cts_current_time_t
 
struct  cts_local_time_info_t
 
struct  cts_ref_time_info_t
 
struct  cts_callbacks_t
 

Macros

#define CTS_ADJUST_REASON_VALID_VALUES_MASK
 

Enumerations

enum  cts_error
 
enum  cts_adjust_reason_t
 
enum  cts_dst_t
 
enum  cts_ref_time_source_t
 

Functions

ble_service_tcts_init (const cts_local_time_info_t *info, const cts_callbacks_t *cb)
 
void cts_notify_time (ble_service_t *svc, uint16_t conn_idx, const cts_current_time_t *time)
 
void cts_notify_time_all (ble_service_t *svc, const cts_current_time_t *time)
 
void cts_set_local_time_info (ble_service_t *svc, const cts_local_time_info_t *info)
 
void cts_get_time_cfm (ble_service_t *svc, uint16_t conn_idx, att_error_t status, const cts_current_time_t *time)
 
void cts_set_time_cfm (ble_service_t *svc, uint16_t conn_idx, att_error_t status)
 
void cts_set_local_time_info_cfm (ble_service_t *svc, uint16_t conn_idx, att_error_t status)
 
void cts_get_ref_time_info_cfm (ble_service_t *svc, uint16_t conn_idx, att_error_t status, const cts_ref_time_info_t *info)
 
__STATIC_INLINE int8_t cts_get_time_zone (int8_t h, uint8_t m)
 
__STATIC_INLINE bool cts_get_time_zone_offset (int8_t tz, int8_t *h, int8_t *m)
 
__STATIC_INLINE bool cts_is_current_time_valid (const cts_current_time_t *time)
 
__STATIC_INLINE bool cts_is_local_time_info_valid (const cts_local_time_info_t *info)
 

Detailed Description

Current time service sample implementation API.

Macro Definition Documentation

◆ CTS_ADJUST_REASON_VALID_VALUES_MASK

#define CTS_ADJUST_REASON_VALID_VALUES_MASK
Value:
(CTS_AR_NO_CHANGE | \
CTS_AR_CHANGE_OF_DST | \
CTS_AR_MANUAL_TIME_UPDATE | \
CTS_AR_EXTERNAL_REFERENCE_TIME_UPDATE | \
CTS_AR_CHANGE_OF_TIME_ZONE)

CTS Current Time adjust reason valid values mask

Enumeration Type Documentation

◆ cts_adjust_reason_t

CTS Current Time adjust reason

◆ cts_dst_t

enum cts_dst_t

CTS Local Time Information DST

◆ cts_error

enum cts_error

CTS additional ATT error codes

◆ cts_ref_time_source_t

CTS Reference Time Source

Function Documentation

◆ cts_get_ref_time_info_cfm()

void cts_get_ref_time_info_cfm ( ble_service_t svc,
uint16_t  conn_idx,
att_error_t  status,
const cts_ref_time_info_t info 
)

Response for get_ref_time_info callback

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusATT error
[in]inforeference time information

◆ cts_get_time_cfm()

void cts_get_time_cfm ( ble_service_t svc,
uint16_t  conn_idx,
att_error_t  status,
const cts_current_time_t time 
)

Response for get_time callback

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusATT error
[in]timecurrent time

◆ cts_get_time_zone()

__STATIC_INLINE int8_t cts_get_time_zone ( int8_t  h,
uint8_t  m 
)

Helper function to calculate time zone for cts_local_time_information_t

Note
This will work for all current time zones, it will get incorrect result for -00:15, -00:30, -00:45 which are not valid time zones for now.
Parameters
[in]hhours difference to UTC (can be positive or negative)
[in]mminutes difference UTC (positive values only)
Returns
time zone value

◆ cts_get_time_zone_offset()

__STATIC_INLINE bool cts_get_time_zone_offset ( int8_t  tz,
int8_t *  h,
int8_t *  m 
)

Helper function to extract hour and minute from time_zone field

Parameters
[in]tztime zone as in cts_local_time_information_t
[out]hhours difference to UTC
[out]mminutes difference to UTC

return true if tz is valid

◆ cts_init()

ble_service_t* cts_init ( const cts_local_time_info_t info,
const cts_callbacks_t cb 
)

Register CTS instance

Function initializes and register Current Time Service. If local_time_info is NULL Local Time Information optional characteristic will not be available.

Parameters
[in]infolocal time information
[in]cbapplication callbacks
Returns
service instance

◆ cts_is_current_time_valid()

__STATIC_INLINE bool cts_is_current_time_valid ( const cts_current_time_t time)

Helper function to check it contents of cts_current_time_t is valid

Parameters
[in]timecurrent time

return true if time is valid

◆ cts_is_local_time_info_valid()

__STATIC_INLINE bool cts_is_local_time_info_valid ( const cts_local_time_info_t info)

Helper function to check it contents of cts_local_time_info_t is valid

Parameters
[in]infolocal time information

return true if info is valid

◆ cts_notify_time()

void cts_notify_time ( ble_service_t svc,
uint16_t  conn_idx,
const cts_current_time_t time 
)

Notify connected client about current time

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]timecurrent time with change reason

◆ cts_notify_time_all()

void cts_notify_time_all ( ble_service_t svc,
const cts_current_time_t time 
)

Notify connected clients about current time

Parameters
[in]svcservice instance
[in]timecurrent time with change reason

◆ cts_set_local_time_info()

void cts_set_local_time_info ( ble_service_t svc,
const cts_local_time_info_t info 
)

Set local time information

Parameters
[in]svcservice instance
[in]infolocal time information

◆ cts_set_local_time_info_cfm()

void cts_set_local_time_info_cfm ( ble_service_t svc,
uint16_t  conn_idx,
att_error_t  status 
)

Response for set_local_time_info callback

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusATT error

◆ cts_set_time_cfm()

void cts_set_time_cfm ( ble_service_t svc,
uint16_t  conn_idx,
att_error_t  status 
)

Response for set_time callback

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusATT error