Classes | Macros | Typedefs | Enumerations | Functions
uds.h File Reference

User Data Service API. More...

`#include "gr_includes.h"`
`#include "custom_config.h"`
`#include "ble_prf_utils.h"`
`#include <stdint.h>`
`#include <stdbool.h>`
Include dependency graph for uds.h:

Go to the source code of this file.

## Classes
struct | birth_date_t
| UDS Characteristic - birthdate's structure. More...
struct | uds_chars_flag_t
| UDS Characteristics Flags structure. More...
struct | uds_chars_val_t
| UDS Characteristics value structure. More...
struct | uds_regi_user_data_flag_t
| Registered User Data Flags structure. More...
struct | uds_evt_t
| User Data Service event. More...
struct | uds_regi_user_data_stream_t
| UDS Registered User Data stream. More...
struct | uds_init_t
| User Data Service init structure. More...

## Macros
#define | UDS_CONNECTION_MAX 10
| Maximum number of UDS connections. More...
#define | UDS_AGE_VAL_LEN_MAX 2
| Maximum length of Age Characteristic value. More...
#define | UDS_DATE_OF_BIRTH_VAL_LEN_MAX 4
| Maximum length of Date of Birth Characteristic value. More...
#define | UDS_FIRST_NAME_VAL_LEN_MAX 50
| Maximum length of First Name Characteristic value. More...
#define | UDS_HEIGHT_VAL_LEN_MAX 2
| Maximum length of Height Characteristic value. More...
#define | UDS_GENDER_VAL_LEN_MAX 2
| Maximum length of Gender Characteristic value. More...
#define | UDS_DB_CHANGE_INCR_VAL_LEN_MAX 4
| Maximum length of Database Change Increment value. More...
#define | UDS_USER_INDEX_VAL_LEN_MAX 1
| Maximum length of User Index value. More...
#define | UDS_CTRL_PT_RSP_LEN_MIN 3
| Mimimum length of User Control Point response value. More...
#define | UDS_CTRL_PT_RSP_LEN_MAX 20
| Maximum length of User Control Point response value. More...
#define | UDS_CTRL_PT_VAL_LEN_MAX 19
| Maximum length of User Control Point value. More...
#define | UDS_REGI_USER_DATA_LEN_MAX 19
| Maximum length of Registered User Data value. More...
#define | UDS_REGI_USER_VAL_LEN_MAX 20
| Maximum length of Registered User Characteristic value. More...
#define | UDS_ERROR_UD_ACCESS_NOT_PERMIT 0x80
| Error code: The user data access is not permitted. More...
#define | UDS_ERROR_PROC_IN_PROGRESS 0xFE
| Error code: A previously triggered User Control Point operation is still in progress. More...
#define | UDS_ERROR_CCCD_INVALID 0xFD
| Error code: The Client Characteristic Configuration descriptor is not configured. More...
#define | UDS_DB_CHANGE_INCR_DEFAULT_VAL 0x00
| Database Change Increment default value. More...
#define | UDS_UNKNOWN_USER 0xFF
| Unknown User. More...
#define | UDS_CONSENT_CODE_VAL_MAX 0x270F
| Maximum value of Consent Code. More...
#define | UDS_CONSENT_TRY_NUM_MAX 0x04
| Maximum number of consent tries. More...
#define | UDS_MIDDLE_REGI_USER_SEGM 0x00
| The middle segment of Registered User Characterristic value. More...
#define | UDS_FIRST_REGI_USER_SEGM 0x01
| The first segment of Registered User Characterristic value. More...
#define | UDS_LAST_REGI_USER_SEGM 0x02
| The last segment of Registered User Characterristic value. More...
#define | UDS_ONLY_REGI_USER_SEGM 0x03
| The only segment of Registered User Characterristic value. More...
#define | UDS_MEAS_FLAG_DEFAULT 0x3E
| The default flag of UDS MEAS. More...
#define | UDS_CHAR_MANDATORY 0x000001FF
| Bit mask for mandatory characteristic in UDS. More...
#define | UDS_CHAR_AGE_SUP 0x00000600
| Bit mask for Age characteristic that is optional. More...
#define | UDS_CHAR_DATE_OF_BIRTH_SUP 0x00001800
| Bit mask for date of birth characteristic that is optional. More...
#define | UDS_CHAR_FIRST_NAME_SUP 0x00006000
| Bit mask for first name characteristic that is optional. More...
#define | UDS_CHAR_HEIGHT_SUP 0x00018000
| Bit mask for height characteristic that is optional. More...
#define | UDS_CHAR_GENDER_SUP 0x00060000
| Bit mask for gender characteristic that is optional. More...
#define | UDS_CHAR_REGIST_USER_SUP 0x00380000
| Bit mask for Registered User characteristic that is optional. More...
#define | UDS_CHAR_FULL 0x003FFFFF
| Bit mask of the full characteristic. More...

## Typedefs
typedef void(* | uds_evt_handler_t) (uds_evt_t *p_evt)
| User Data Service event handler type. More...

## Enumerations
enum | uds_ctrl_pt_op_code_t { UDS_CTRL_PT_OP_RESERVED, UDS_CTRL_PT_OP_REGIST_NEW_USER, UDS_CTRL_PT_OP_CONSENT, UDS_CTRL_PT_OP_DEL_USER_DATA, UDS_CTRL_PT_OP_LIST_ALL_USERS, UDS_CTRL_PT_OP_DEL_USERS, UDS_CTRL_PT_OP_RSP_CODE = 0x20 }
| User Data Service Control Point Operation Code. More...
enum | uds_ctrl_pt_rsp_t { UDS_CTRL_PT_RSP_RESERVED, UDS_CTRL_PT_RSP_SUCCESS, UDS_CTRL_PT_RSP_NOT_SUP, UDS_CTRL_PT_RSP_INVALID_PARAM, UDS_CTRL_PT_RSP_FAILED, UDS_CTRL_PT_RSP_USER_NOT_AUTH }
| User Data Service Control Point Response value. More...
enum | uds_evt_type_t { UDS_EVT_INVALID = 0x00, UDS_EVT_DB_CHANGE_INCR_NOTIFICATION_ENABLE, UDS_EVT_DB_CHANGE_INCR_NOTIFICATION_DISABLE, UDS_EVT_CTRL_POINT_INDICATION_ENABLE, UDS_EVT_CTRL_POINT_INDICATION_DISABLE, UDS_EVT_REGIST_USER_INDICATION_ENABLE, UDS_EVT_REGIST_USER_INDICATION_DISABLE, UDS_EVT_DB_CHANGE_INCR_SEND_CPLT, UDS_EVT_CTRL_POINT_RSP_CPLT, UDS_EVT_REGIST_USER_RSP_CPLT, UDS_EVT_AGE_SET_BY_PEER, UDS_EVT_DATE_OF_BIRTH_SET_BY_PEER, UDS_EVT_FIRST_NAME_SET_BY_PEER, UDS_EVT_HEIGHT_SET_BY_PEER, UDS_EVT_GENDER_SET_BY_PEER, UDS_EVT_DB_CHANGE_INCR_SET_BY_PEER, UDS_EVT_CTRL_POINT_SET_BY_PEER, UDS_EVT_USER_GRANT_ACCESS, UDS_EVT_REGIST_NEW_USER, UDS_EVT_DEL_USER_DATA, UDS_EVT_DEL_USERS }
| User Data Service event type. More...
enum | uds_chars_flag_bits { UDS_CHARS_WEIGHT_PRESENT = 0x01, UDS_CHARS_AGE_PRESENT = 0x02, UDS_CHARS_BIRTH_DATE_PRESENT = 0x04, UDS_CHARS_FIRST_NAME_PRESENT = 0x08, UDS_CHARS_HEIGHT_PRESENT = 0x10, UDS_CHARS_GENDER_PRESENT = 0X20 }
| UDS Characteristics Flags. More...
enum | uds_regi_user_data_flag_bits { UDS_REGI_USER_NAME_PRESENT = 0x01, UDS_USER_NAME_TRUNCATED = 0x02 }
| Registered User Data Flags. More...

## Functions
sdk_err_t | uds_service_init (uds_init_t *p_uds_init)
| Initialize a User Data Service instance and add in the DB. More...
sdk_err_t | uds_regi_user_val_send (uint8_t conn_idx)
| Send Registered User Characteristic value. More...
sdk_err_t | uds_db_change_incr_val_send (uint8_t conn_idx, uint8_t user_idx)
| Send Database Change Increment Characteristic value if UDS Characteristics value has been changed. More...
sdk_err_t | uds_ctrl_pt_rsp_send (uint8_t conn_idx, uint8_t *p_data, uint16_t length)
| Send User Control Point response if it's indication has been enabled. More...
uint8_t | uds_get_cur_user_index (uint8_t conn_idx)
| Get current user index. More...
void | uds_set_cur_user_index (uint8_t conn_idx, uint8_t user_index)
| Set current user index. More...

## Detailed Description

User Data Service API.

Attention

  ##### Copyright (c) 2019 GOODIX

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of GOODIX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file uds.h.