SmartSnippets DA1459x SDK
Files | Data Structures | Typedefs | Enumerations | Functions

User data service sample implementation API. More...

Files

file  uds.h
 User Data Service sample implementation API.
 

Data Structures

struct  uds_callbacks_t
 

Typedefs

typedef void(* uds_ccc_changed_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint16_t value)
 CCC for Database Change Increment written callback. More...
 
typedef bool(* uds_db_increment_changed_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t increment)
 Database Change Increment written callback. More...
 
typedef void(* uds_cp_register_new_user_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint16_t consent)
 Register New User control point written callback. More...
 
typedef void(* uds_cp_consent_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint8_t user_id, uint16_t consent)
 Consent control point written callback. More...
 
typedef void(* uds_cp_delete_user_data_cb_t) (ble_service_t *svc, uint16_t conn_idx)
 Delete user data control point written callback. More...
 
typedef void(* uds_db_read_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t field)
 Client attempt to read database value callback. More...
 
typedef void(* uds_db_write_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t field, uint16_t offset, uint16_t length, const void *value)
 Client attempt to write database value callback. More...
 

Enumerations

enum  uds_user_id_t { UDS_USER_ID_UNKNOWN = 0xFF }
 
enum  uds_error_t { UDS_ERROR_ACCESS_NOT_PERMITTED = ATT_ERROR_APPLICATION_ERROR }
 
enum  uds_db_field_t {
  UDS_DB_FIELD_FIRST_NAME = 0x00000001, UDS_DB_FIELD_LAST_NAME = 0x00000002, UDS_DB_FIELD_EMAIL_ADDRESS = 0x00000004, UDS_DB_FIELD_AGE = 0x00000008,
  UDS_DB_FIELD_DATE_OF_BIRTH = 0x00000010, UDS_DB_FIELD_GENDER = 0x00000020, UDS_DB_FIELD_WEIGHT = 0x00000040, UDS_DB_FIELD_HEIGHT = 0x00000080,
  UDS_DB_FIELD_VO2_MAX = 0x00000100, UDS_DB_FIELD_HEART_RATE_MAX = 0x00000200, UDS_DB_FIELD_RESTING_HEART_RATE = 0x00000400, UDS_DB_FIELD_MAX_RECOMMENDED_HEART_RATE = 0x00000800,
  UDS_DB_FIELD_AEROBIC_THRESHOLD = 0x00001000, UDS_DB_FIELD_ANAEROBIC_THRESHOLD = 0x00002000, UDS_DB_FIELD_SPORT_TYPE = 0x00004000, UDS_DB_FIELD_DATE_OF_THRESHOLD_ASSESSMENT = 0x00008000,
  UDS_DB_FIELD_WAIST_CIRCUMFERENCE = 0x00010000, UDS_DB_FIELD_HIP_CIRCUMFERENCE = 0x00020000, UDS_DB_FIELD_FAT_BURN_HEART_RATE_LOW_LIMIT = 0x00040000, UDS_DB_FIELD_FAT_BURN_HEART_RATE_UP_LIMIT = 0x00080000,
  UDS_DB_FIELD_AEROBIC_HEART_RATE_LOW_LIMIT = 0x00100000, UDS_DB_FIELD_AEROBIC_HEART_RATE_UP_LIMIT = 0x00200000, UDS_DB_FIELD_ANEROBIC_HEART_RATE_LOW_LIMIT = 0x00400000, UDS_DB_FIELD_ANEROBIC_HEART_RATE_UP_LIMIT = 0x00800000,
  UDS_DB_FIELD_FIVE_ZONE_HEART_RATE_LIMITS = 0x01000000, UDS_DB_FIELD_THREE_ZONE_HEART_RATE_LIMITS = 0x02000000, UDS_DB_FIELD_TWO_ZONE_HEART_RATE_LIMIT = 0x04000000, UDS_DB_FIELD_LANGUAGE = 0x08000000
}
 
enum  uds_cp_response_t {
  UDS_CP_RESPONSE_SUCCESS = 0x01, UDS_CP_RESPONSE_OPCODE_NOT_SUPPORTED = 0x02, UDS_CP_RESPONSE_INVALID_PARAM = 0x03, UDS_CP_RESPONSE_FAILED = 0x04,
  UDS_CP_RESPONSE_NOT_AUTHORIZED = 0x05
}
 

Functions

ble_service_tuds_init (const ble_service_config_t *config, uds_db_field_t db_fields, const uds_callbacks_t *cb)
 Register User Data Service instance. More...
 
void uds_cp_register_new_user_cfm (ble_service_t *svc, uint16_t conn_idx, uds_cp_response_t status, uint8_t user_id)
 Control Point register new user confirm. More...
 
void uds_set_db_increment (ble_service_t *svc, uint16_t conn_idx, uint32_t increment, bool notify)
 Set database increment. More...
 
void uds_cp_consent_cfm (ble_service_t *svc, uint16_t conn_idx, uds_cp_response_t status)
 Control Point consent confirmation. More...
 
void uds_cp_delete_user_cfm (ble_service_t *svc, uint16_t conn_idx, uds_cp_response_t status)
 Control Point delete user confirmation. More...
 
void uds_db_read_cfm (ble_service_t *svc, uint16_t conn_idx, uint32_t field, att_error_t status, uint16_t length, const void *value)
 Database read confirmation. More...
 
void uds_db_write_cfm (ble_service_t *svc, uint16_t conn_idx, uint32_t field, att_error_t status)
 Database write confirmation. More...
 
void uds_set_user_id (ble_service_t *svc, uint16_t conn_idx, uint8_t user_id)
 Set user ID. More...
 
uint8_t uds_get_user_id (ble_service_t *svc, uint16_t conn_idx)
 Get user ID. More...
 

Detailed Description

User data service sample implementation API.

Typedef Documentation

◆ uds_ccc_changed_cb_t

typedef void(* uds_ccc_changed_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint16_t value)

CCC for Database Change Increment written callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]valuevalue to change

◆ uds_cp_consent_cb_t

typedef void(* uds_cp_consent_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint8_t user_id, uint16_t consent)

Consent control point written callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]user_iduser ID
[in]consentconsent

◆ uds_cp_delete_user_data_cb_t

typedef void(* uds_cp_delete_user_data_cb_t) (ble_service_t *svc, uint16_t conn_idx)

Delete user data control point written callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index

◆ uds_cp_register_new_user_cb_t

typedef void(* uds_cp_register_new_user_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint16_t consent)

Register New User control point written callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]consentconsent

◆ uds_db_increment_changed_cb_t

typedef bool(* uds_db_increment_changed_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t increment)

Database Change Increment written callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]incrementincrement
Returns
if database was changed

◆ uds_db_read_cb_t

typedef void(* uds_db_read_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t field)

Client attempt to read database value callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]fieldfield

◆ uds_db_write_cb_t

typedef void(* uds_db_write_cb_t) (ble_service_t *svc, uint16_t conn_idx, uint32_t field, uint16_t offset, uint16_t length, const void *value)

Client attempt to write database value callback.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]fieldfield
[in]offsetoffset
[in]lengthlength of value
[in]valuewritten value

Enumeration Type Documentation

◆ uds_cp_response_t

Response status for UDS Control Point operation

Enumerator
UDS_CP_RESPONSE_SUCCESS 

Response success

UDS_CP_RESPONSE_OPCODE_NOT_SUPPORTED 

Opcode not supported

UDS_CP_RESPONSE_INVALID_PARAM 

Invalid parameter

UDS_CP_RESPONSE_FAILED 

Response failed

UDS_CP_RESPONSE_NOT_AUTHORIZED 

Response not authorized

◆ uds_db_field_t

UDS database fields (as UDS characteristics defined by User Data Service specification

Enumerator
UDS_DB_FIELD_FIRST_NAME 

First name

UDS_DB_FIELD_LAST_NAME 

Last name

UDS_DB_FIELD_EMAIL_ADDRESS 

E-mail address

UDS_DB_FIELD_AGE 

Age

UDS_DB_FIELD_DATE_OF_BIRTH 

Date of birth

UDS_DB_FIELD_GENDER 

Gender

UDS_DB_FIELD_WEIGHT 

Weight

UDS_DB_FIELD_HEIGHT 

Height

UDS_DB_FIELD_VO2_MAX 

V02 max

UDS_DB_FIELD_HEART_RATE_MAX 

Heart rate max

UDS_DB_FIELD_RESTING_HEART_RATE 

Resting heart rate

UDS_DB_FIELD_MAX_RECOMMENDED_HEART_RATE 

Max recommended heart rate

UDS_DB_FIELD_AEROBIC_THRESHOLD 

Aerobic threshold

UDS_DB_FIELD_ANAEROBIC_THRESHOLD 

Anaerobic threshold

UDS_DB_FIELD_SPORT_TYPE 

Sport type

UDS_DB_FIELD_DATE_OF_THRESHOLD_ASSESSMENT 

Date of threshold assessment

UDS_DB_FIELD_WAIST_CIRCUMFERENCE 

Waist circumference

UDS_DB_FIELD_HIP_CIRCUMFERENCE 

Hip circumference

UDS_DB_FIELD_FAT_BURN_HEART_RATE_LOW_LIMIT 

Fat burn heart rate low limit

UDS_DB_FIELD_FAT_BURN_HEART_RATE_UP_LIMIT 

Fat burn heart rate up limit

UDS_DB_FIELD_AEROBIC_HEART_RATE_LOW_LIMIT 

Aerobic heart rate low limit

UDS_DB_FIELD_AEROBIC_HEART_RATE_UP_LIMIT 

Aerobic heart rate up limit

UDS_DB_FIELD_ANEROBIC_HEART_RATE_LOW_LIMIT 

Anaerobic heart rate low limit

UDS_DB_FIELD_ANEROBIC_HEART_RATE_UP_LIMIT 

Anaerobic heart rate up limit

UDS_DB_FIELD_FIVE_ZONE_HEART_RATE_LIMITS 

Five zone heart rate limits

UDS_DB_FIELD_THREE_ZONE_HEART_RATE_LIMITS 

Tree zone heart rate limits

UDS_DB_FIELD_TWO_ZONE_HEART_RATE_LIMIT 

Two zone heart rate limits

UDS_DB_FIELD_LANGUAGE 

Language

◆ uds_error_t

UDS specific error

Enumerator
UDS_ERROR_ACCESS_NOT_PERMITTED 

Access not permitted

◆ uds_user_id_t

User ID

Enumerator
UDS_USER_ID_UNKNOWN 

User id unknown

Function Documentation

◆ uds_cp_consent_cfm()

void uds_cp_consent_cfm ( ble_service_t svc,
uint16_t  conn_idx,
uds_cp_response_t  status 
)

Control Point consent confirmation.

Confirmation of connecting the client to registered user.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusstatus of response

◆ uds_cp_delete_user_cfm()

void uds_cp_delete_user_cfm ( ble_service_t svc,
uint16_t  conn_idx,
uds_cp_response_t  status 
)

Control Point delete user confirmation.

Send confirmation that the current user was deleted or not.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusstatus of response

◆ uds_cp_register_new_user_cfm()

void uds_cp_register_new_user_cfm ( ble_service_t svc,
uint16_t  conn_idx,
uds_cp_response_t  status,
uint8_t  user_id 
)

Control Point register new user confirm.

Confirmation of registering the new user. This confirmation contains:

  • constant response code
  • op code
  • status
Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]statusstatus of response
[in]user_iduser ID

◆ uds_db_read_cfm()

void uds_db_read_cfm ( ble_service_t svc,
uint16_t  conn_idx,
uint32_t  field,
att_error_t  status,
uint16_t  length,
const void *  value 
)

Database read confirmation.

This function is responds to the callback uds_db_read_cb_t

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]fieldfield from which read the value
[in]statuserror status
[in]lengthvalue length
[out]valueread value

◆ uds_db_write_cfm()

void uds_db_write_cfm ( ble_service_t svc,
uint16_t  conn_idx,
uint32_t  field,
att_error_t  status 
)

Database write confirmation.

This function responds to the callback uds_db_write_cb_t

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]fieldfield to which write the value
[in]statuserror status

◆ uds_get_user_id()

uint8_t uds_get_user_id ( ble_service_t svc,
uint16_t  conn_idx 
)

Get user ID.

Get user ID from User Index characteristic.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
Returns
user ID

◆ uds_init()

ble_service_t* uds_init ( const ble_service_config_t config,
uds_db_field_t  db_fields,
const uds_callbacks_t cb 
)

Register User Data Service instance.

Function registers User Data Service with given set of database fields.

Parameters
[in]configUDS specific configuration
[in]db_fieldsUDS database fields
[in]cbapplication callbacks
Returns
service instance

◆ uds_set_db_increment()

void uds_set_db_increment ( ble_service_t svc,
uint16_t  conn_idx,
uint32_t  increment,
bool  notify 
)

Set database increment.

Function sets value of database increment determined by the client to synchronize with the server.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]incrementincrement value
[in]notifynotify database increment

◆ uds_set_user_id()

void uds_set_user_id ( ble_service_t svc,
uint16_t  conn_idx,
uint8_t  user_id 
)

Set user ID.

Set user ID in User Index characteristic.

Parameters
[in]svcservice instance
[in]conn_idxconnection index
[in]user_iduser ID