You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
5.2 KiB
168 lines
5.2 KiB
/******************************************************************************
|
|
*
|
|
* Copyright 1999-2013 Broadcom Corporation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef SRVC_DIS_API_H
|
|
#define SRVC_DIS_API_H
|
|
|
|
#include "bt_target.h"
|
|
#include "gatt_api.h"
|
|
#include "gattdefs.h"
|
|
#include "types/bt_transport.h"
|
|
|
|
#define DIS_SUCCESS GATT_SUCCESS
|
|
#define DIS_ILLEGAL_PARAM GATT_ILLEGAL_PARAMETER
|
|
#define DIS_NO_RESOURCES GATT_NO_RESOURCES
|
|
typedef uint8_t tDIS_STATUS;
|
|
|
|
/*****************************************************************************
|
|
* Data structure for DIS
|
|
****************************************************************************/
|
|
|
|
#define DIS_ATTR_SYS_ID_BIT 0x0001
|
|
#define DIS_ATTR_MODEL_NUM_BIT 0x0002
|
|
#define DIS_ATTR_SERIAL_NUM_BIT 0x0004
|
|
#define DIS_ATTR_FW_NUM_BIT 0x0008
|
|
#define DIS_ATTR_HW_NUM_BIT 0x0010
|
|
#define DIS_ATTR_SW_NUM_BIT 0x0020
|
|
#define DIS_ATTR_MANU_NAME_BIT 0x0040
|
|
#define DIS_ATTR_IEEE_DATA_BIT 0x0080
|
|
#define DIS_ATTR_PNP_ID_BIT 0x0100
|
|
typedef uint16_t tDIS_ATTR_MASK;
|
|
|
|
typedef tDIS_ATTR_MASK tDIS_ATTR_BIT;
|
|
|
|
typedef struct {
|
|
uint16_t len;
|
|
uint8_t* p_data;
|
|
} tDIS_STRING;
|
|
|
|
typedef struct {
|
|
uint16_t vendor_id;
|
|
uint16_t product_id;
|
|
uint16_t product_version;
|
|
uint8_t vendor_id_src;
|
|
|
|
} tDIS_PNP_ID;
|
|
|
|
typedef union {
|
|
uint64_t system_id;
|
|
tDIS_PNP_ID pnp_id;
|
|
tDIS_STRING data_str;
|
|
} tDIS_ATTR;
|
|
|
|
#define DIS_MAX_STRING_DATA 7
|
|
|
|
typedef struct {
|
|
uint16_t attr_mask;
|
|
uint64_t system_id;
|
|
tDIS_PNP_ID pnp_id;
|
|
uint8_t* data_string[DIS_MAX_STRING_DATA];
|
|
} tDIS_VALUE;
|
|
|
|
typedef void(tDIS_READ_CBACK)(const RawAddress& addr, tDIS_VALUE* p_dis_value);
|
|
|
|
/*****************************************************************************
|
|
* Data structure used by Battery Service
|
|
****************************************************************************/
|
|
typedef struct {
|
|
RawAddress remote_bda;
|
|
bool need_rsp;
|
|
uint16_t clt_cfg;
|
|
} tBA_WRITE_DATA;
|
|
|
|
#define BA_READ_CLT_CFG_REQ 1
|
|
#define BA_READ_PRE_FMT_REQ 2
|
|
#define BA_READ_RPT_REF_REQ 3
|
|
#define BA_READ_LEVEL_REQ 4
|
|
#define BA_WRITE_CLT_CFG_REQ 5
|
|
|
|
typedef void(tBA_CBACK)(uint8_t app_id, uint8_t event, tBA_WRITE_DATA* p_data);
|
|
|
|
#define BA_LEVEL_NOTIFY 0x01
|
|
#define BA_LEVEL_PRE_FMT 0x02
|
|
#define BA_LEVEL_RPT_REF 0x04
|
|
typedef uint8_t tBA_LEVEL_DESCR;
|
|
|
|
typedef struct {
|
|
bool is_pri;
|
|
tBA_LEVEL_DESCR ba_level_descr;
|
|
tBT_TRANSPORT transport;
|
|
tBA_CBACK* p_cback;
|
|
|
|
} tBA_REG_INFO;
|
|
|
|
typedef union {
|
|
uint8_t ba_level;
|
|
uint16_t clt_cfg;
|
|
tGATT_CHAR_RPT_REF rpt_ref;
|
|
tGATT_CHAR_PRES pres_fmt;
|
|
} tBA_RSP_DATA;
|
|
|
|
/*****************************************************************************
|
|
* External Function Declarations
|
|
****************************************************************************/
|
|
/*****************************************************************************
|
|
* Service Engine API
|
|
****************************************************************************/
|
|
/*******************************************************************************
|
|
*
|
|
* Function srvc_eng_init
|
|
*
|
|
* Description Initializa the GATT Service engine, register a GATT
|
|
* application as for a central service management.
|
|
*
|
|
******************************************************************************/
|
|
extern tGATT_STATUS srvc_eng_init(void);
|
|
|
|
/*****************************************************************************
|
|
* DIS Server Function
|
|
****************************************************************************/
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function DIS_SrInit
|
|
*
|
|
* Description Initializa the Device Information Service Server.
|
|
*
|
|
******************************************************************************/
|
|
extern tDIS_STATUS DIS_SrInit(tDIS_ATTR_MASK dis_attr_mask);
|
|
/*******************************************************************************
|
|
*
|
|
* Function DIS_SrUpdate
|
|
*
|
|
* Description Update the DIS server attribute values
|
|
*
|
|
******************************************************************************/
|
|
extern tDIS_STATUS DIS_SrUpdate(tDIS_ATTR_BIT dis_attr_bit, tDIS_ATTR* p_info);
|
|
/*****************************************************************************
|
|
* DIS Client Function
|
|
****************************************************************************/
|
|
/*******************************************************************************
|
|
*
|
|
* Function DIS_ReadDISInfo
|
|
*
|
|
* Description Read remote device DIS information.
|
|
*
|
|
* Returns void
|
|
*
|
|
******************************************************************************/
|
|
extern bool DIS_ReadDISInfo(const RawAddress& peer_bda,
|
|
tDIS_READ_CBACK* p_cback, tDIS_ATTR_MASK mask);
|
|
|
|
#endif
|