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.