Android BLE Gatt返回错误对应宏

来源:互联网 发布:怎样禁止电脑安装软件 编辑:程序博客网 时间:2024/06/07 13:45

参考android源码stack/include/gatt_api.h

一般当onStatesChange回调出现 states不为0 既有错误的时候调用close gatt.close()释放一下GATT就应该可以解决问题的

#ifndef GATT_API_H #define GATT_API_H   #include"bt_target.h" #include"gattdefs.h"   /***************************************************************************** ** Constants *****************************************************************************/ /* Success code and error codes */ #define GATT_SUCCESS0x00 #define GATT_INVALID_HANDLE0x01 #define GATT_READ_NOT_PERMIT0x02 #define GATT_WRITE_NOT_PERMIT0x03 #define GATT_INVALID_PDU0x04 #define GATT_INSUF_AUTHENTICATION0x05 #define GATT_REQ_NOT_SUPPORTED0x06 #define GATT_INVALID_OFFSET0x07 #define GATT_INSUF_AUTHORIZATION0x08 #define GATT_PREPARE_Q_FULL0x09 #define GATT_NOT_FOUND0x0a #define GATT_NOT_LONG0x0b #define GATT_INSUF_KEY_SIZE0x0c #define GATT_INVALID_ATTR_LEN0x0d #define GATT_ERR_UNLIKELY0x0e #define GATT_INSUF_ENCRYPTION0x0f #define GATT_UNSUPPORT_GRP_TYPE0x10 #define GATT_INSUF_RESOURCE0x11     #define GATT_ILLEGAL_PARAMETER0x87 #define GATT_NO_RESOURCES0x80 #define GATT_INTERNAL_ERROR0x81 #define GATT_WRONG_STATE0x82 #define GATT_DB_FULL0x83 #define GATT_BUSY0x84 #define GATT_ERROR0x85 #define GATT_CMD_STARTED0x86 #define GATT_PENDING0x88 #define GATT_AUTH_FAIL0x89 #define GATT_MORE0x8a #define GATT_INVALID_CFG0x8b #define GATT_SERVICE_STARTED0x8c #define GATT_ENCRYPED_MITM GATT_SUCCESS #define GATT_ENCRYPED_NO_MITM0x8d #define GATT_NOT_ENCRYPTED0x8e #define GATT_CONGESTED0x8f   /* 0xE0 ~ 0xFC reserved for future use */ #define GATT_CCC_CFG_ERR0xFD/* Client Characteristic Configuration Descriptor Improperly Configured */ #define GATT_PRC_IN_PROGRESS0xFE/* Procedure Already in progress */ #define GATT_OUT_OF_RANGE0xFF/* Attribute value out of range */ typedef UINT8 tGATT_STATUS;     #define GATT_RSP_ERROR0x01 #define GATT_REQ_MTU0x02 #define GATT_RSP_MTU0x03 #define GATT_REQ_FIND_INFO0x04 #define GATT_RSP_FIND_INFO0x05 #define GATT_REQ_FIND_TYPE_VALUE0x06 #define GATT_RSP_FIND_TYPE_VALUE0x07 #define GATT_REQ_READ_BY_TYPE0x08 #define GATT_RSP_READ_BY_TYPE0x09 #define GATT_REQ_READ0x0A #define GATT_RSP_READ0x0B #define GATT_REQ_READ_BLOB0x0C #define GATT_RSP_READ_BLOB0x0D #define GATT_REQ_READ_MULTI0x0E #define GATT_RSP_READ_MULTI0x0F #define GATT_REQ_READ_BY_GRP_TYPE0x10 #define GATT_RSP_READ_BY_GRP_TYPE0x11 #define GATT_REQ_WRITE0x12/* 0001-0010 (write)*/ #define GATT_RSP_WRITE0x13 #define GATT_CMD_WRITE0x52/* changed in V4.0 01001-0010(write cmd)*/ #define GATT_REQ_PREPARE_WRITE0x16 #define GATT_RSP_PREPARE_WRITE0x17 #define GATT_REQ_EXEC_WRITE0x18 #define GATT_RSP_EXEC_WRITE0x19 #define GATT_HANDLE_VALUE_NOTIF0x1B #define GATT_HANDLE_VALUE_IND0x1D #define GATT_HANDLE_VALUE_CONF0x1E #define GATT_SIGN_CMD_WRITE0xD2/* changed in V4.0 1101-0010 (signed write) see write cmd above*/ #define GATT_OP_CODE_MAX GATT_HANDLE_VALUE_CONF+1/* 0x1E = 30 + 1 = 31*/     #define GATT_HANDLE_IS_VALID(x)((x)!=0)   #define GATT_CONN_UNKNOWN0 #define GATT_CONN_L2C_FAILURE1/* general L2cap failure */ #define GATT_CONN_TIMEOUT HCI_ERR_CONNECTION_TOUT/* 0x08 connection timeout */ #define GATT_CONN_TERMINATE_PEER_USER HCI_ERR_PEER_USER/* 0x13 connection terminate by peer user */ #define GATT_CONN_TERMINATE_LOCAL_HOST HCI_ERR_CONN_CAUSE_LOCAL_HOST/* 0x16 connectionterminated by local host */ #define GATT_CONN_FAIL_ESTABLISH HCI_ERR_CONN_FAILED_ESTABLISHMENT/* 0x03E connection fail to establish */ #define GATT_CONN_LMP_TIMEOUT HCI_ERR_LMP_RESPONSE_TIMEOUT/* 0x22 connection fail for LMP response tout */ #define GATT_CONN_CANCEL L2CAP_CONN_CANCEL/* 0x0100 L2CAP connection cancelled */ typedef UINT16 tGATT_DISCONN_REASON;   /* MAX GATT MTU size */ #ifndef GATT_MAX_MTU_SIZE #define GATT_MAX_MTU_SIZE517 #endif   /* max legth of an attribute value */ #ifndef GATT_MAX_ATTR_LEN #define GATT_MAX_ATTR_LEN600 #endif   /* default GATT MTU size over LE link */ #define GATT_DEF_BLE_MTU_SIZE23   /* invalid connection ID */ #define GATT_INVALID_CONN_ID0xFFFF   #ifndef GATT_CL_MAX_LCB #define GATT_CL_MAX_LCB22 #endif   #ifndef GATT_MAX_SCCB #define GATT_MAX_SCCB10 #endif     /* GATT notification caching timer, default to be three seconds */ #ifndef GATTC_NOTIF_TIMEOUT #define GATTC_NOTIF_TIMEOUT3 #endif   /***************************************************************************** ** GATT Structure Definition *****************************************************************************/   /* Attribute permissions */ #define GATT_PERM_READ(1<<0)/* bit 0 */ #define GATT_PERM_READ_ENCRYPTED(1<<1)/* bit 1 */ #define GATT_PERM_READ_ENC_MITM(1<<2)/* bit 2 */ #define GATT_PERM_WRITE(1<<4)/* bit 4 */ #define GATT_PERM_WRITE_ENCRYPTED(1<<5)/* bit 5 */ #define GATT_PERM_WRITE_ENC_MITM(1<<6)/* bit 6 */ #define GATT_PERM_WRITE_SIGNED(1<<7)/* bit 7 */ #define GATT_PERM_WRITE_SIGNED_MITM(1<<8)/* bit 8 */ typedef UINT16 tGATT_PERM;   #define GATT_ENCRYPT_KEY_SIZE_MASK(0xF000)/* the MS nibble of tGATT_PERM; key size 7=0; size 16=9 */   #define GATT_READ_ALLOWED(GATT_PERM_READ| GATT_PERM_READ_ENCRYPTED| GATT_PERM_READ_ENC_MITM) #define GATT_READ_AUTH_REQUIRED(GATT_PERM_READ_ENCRYPTED) #define GATT_READ_MITM_REQUIRED(GATT_PERM_READ_ENC_MITM) #define GATT_READ_ENCRYPTED_REQUIRED(GATT_PERM_READ_ENCRYPTED| GATT_PERM_READ_ENC_MITM)     #define GATT_WRITE_ALLOWED(GATT_PERM_WRITE| GATT_PERM_WRITE_ENCRYPTED| GATT_PERM_WRITE_ENC_MITM| \ GATT_PERM_WRITE_SIGNED | GATT_PERM_WRITE_SIGNED_MITM)   #define GATT_WRITE_AUTH_REQUIRED(GATT_PERM_WRITE_ENCRYPTED| GATT_PERM_WRITE_SIGNED)   #define GATT_WRITE_MITM_REQUIRED(GATT_PERM_WRITE_ENC_MITM| GATT_PERM_WRITE_SIGNED_MITM)   #define GATT_WRITE_ENCRYPTED_PERM(GATT_PERM_WRITE_ENCRYPTED| GATT_PERM_WRITE_ENC_MITM)   #define GATT_WRITE_SIGNED_PERM(GATT_PERM_WRITE_SIGNED| GATT_PERM_WRITE_SIGNED_MITM)     /* Characteristic properties */ #define GATT_CHAR_PROP_BIT_BROADCAST(1<<0) #define GATT_CHAR_PROP_BIT_READ(1<<1) #define GATT_CHAR_PROP_BIT_WRITE_NR(1<<2) #define GATT_CHAR_PROP_BIT_WRITE(1<<3) #define GATT_CHAR_PROP_BIT_NOTIFY(1<<4) #define GATT_CHAR_PROP_BIT_INDICATE(1<<5) #define GATT_CHAR_PROP_BIT_AUTH(1<<6) #define GATT_CHAR_PROP_BIT_EXT_PROP(1<<7) typedef UINT8 tGATT_CHAR_PROP;     /* Format of the value of a characteristic. enumeration type */ enum { GATT_FORMAT_RES,/* rfu */ GATT_FORMAT_BOOL,/* 0x01 boolean */ GATT_FORMAT_2BITS,/* 0x02 2 bit */ GATT_FORMAT_NIBBLE,/* 0x03 nibble */ GATT_FORMAT_UINT8,/* 0x04 uint8 */ GATT_FORMAT_UINT12,/* 0x05 uint12 */ GATT_FORMAT_UINT16,/* 0x06 uint16 */ GATT_FORMAT_UINT24,/* 0x07 uint24 */ GATT_FORMAT_UINT32,/* 0x08 uint32 */ GATT_FORMAT_UINT48,/* 0x09 uint48 */ GATT_FORMAT_UINT64,/* 0x0a uint64 */ GATT_FORMAT_UINT128,/* 0x0B uint128 */ GATT_FORMAT_SINT8,/* 0x0C signed 8 bit integer */ GATT_FORMAT_SINT12,/* 0x0D signed 12 bit integer */ GATT_FORMAT_SINT16,/* 0x0E signed 16 bit integer */ GATT_FORMAT_SINT24,/* 0x0F signed 24 bit integer */ GATT_FORMAT_SINT32,/* 0x10 signed 32 bit integer */ GATT_FORMAT_SINT48,/* 0x11 signed 48 bit integer */ GATT_FORMAT_SINT64,/* 0x12 signed 64 bit integer */ GATT_FORMAT_SINT128,/* 0x13 signed 128 bit integer */ GATT_FORMAT_FLOAT32,/* 0x14 float 32 */ GATT_FORMAT_FLOAT64,/* 0x15 float 64*/ GATT_FORMAT_SFLOAT,/* 0x16 IEEE-11073 16 bit SFLOAT */ GATT_FORMAT_FLOAT,/* 0x17 IEEE-11073 32 bit SFLOAT */ GATT_FORMAT_DUINT16,/* 0x18 IEEE-20601 format */ GATT_FORMAT_UTF8S,/* 0x19 UTF-8 string */ GATT_FORMAT_UTF16S,/* 0x1a UTF-16 string */ GATT_FORMAT_STRUCT,/* 0x1b Opaque structure*/ GATT_FORMAT_MAX /* 0x1c or above reserved */ }; typedef UINT8 tGATT_FORMAT;

原创粉丝点击