sle_common
sle common sle_common
SLE (Star Flash Low Energy) 提供星闪短距通信协议的公共类型定义与错误码,包括设备地址、链路类型、连接信息等数据结构。该模块同时定义 SLE 通用错误码和 SSAP (Service and Application Protocol) 协议错误码。
头文件清单
#include "middleware/services/bts/sle/sle_common.h"
#include "middleware/services/bts/sle/sle_errcode.h"
Enumerations
sle_addr_type_t
addr_type_t sle addr type t sle_addr_type_t
typedef enum {
SLE_ADDRESS_TYPE_PUBLIC = 0, /*!< 公有地址 */
SLE_ADDRESS_TYPE_RANDOM = 6, /*!< 随机地址 */
} sle_addr_type_t;
| 枚举成员 |
取值 |
描述 |
| SLE_ADDRESS_TYPE_PUBLIC |
0 |
公有地址 |
| SLE_ADDRESS_TYPE_RANDOM |
6 |
随机地址 |
sle_link_type_t
link_type_t sle link type t sle_link_type_t
typedef enum {
SLE_ASYNCHRONOUS_CONNECTION = 0x00, /*!< 异步链路 */
SLE_SYNCHRONIZATION_CONNECTION = 0x01, /*!< 同步链路 */
} sle_link_type_t;
| 枚举成员 |
取值 |
描述 |
| SLE_ASYNCHRONOUS_CONNECTION |
0x00 |
异步链路 |
| SLE_SYNCHRONIZATION_CONNECTION |
0x01 |
同步链路 |
errcode_sle_t
errcode sle t errcode_sle_t sle_t
typedef enum {
ERRCODE_SLE_SUCCESS = 0, /*!< 执行成功 */
ERRCODE_SLE_CONTINUE = ERRCODE_SLE_COMMON_BASE, /*!< 继续执行 */
ERRCODE_SLE_DIRECT_RETURN, /*!< 直接返回 */
ERRCODE_SLE_NO_ATTATION, /*!< 错误码 */
ERRCODE_SLE_PARAM_ERR, /*!< 参数错误 */
ERRCODE_SLE_FAIL, /*!< 配置失败 */
ERRCODE_SLE_TIMEOUT, /*!< 配置超时 */
ERRCODE_SLE_UNSUPPORTED, /*!< 参数不支持 */
ERRCODE_SLE_GETRECORD_FAIL, /*!< 获取当前记录失败 */
ERRCODE_SLE_POINTER_NULL, /*!< 指针为空 */
ERRCODE_SLE_NO_RECORD, /*!< 无记录返回 */
ERRCODE_SLE_STATUS_ERR, /*!< 状态错误 */
ERRCODE_SLE_NOMEM, /*!< 内存不足 */
ERRCODE_SLE_AUTH_FAIL, /*!< 认证失败 */
ERRCODE_SLE_AUTH_PKEY_MISS, /*!< PIN码或密钥丢失致认证失败 */
ERRCODE_SLE_RMT_DEV_DOWN, /*!< 对端设备关闭 */
ERRCODE_SLE_PAIRING_REJECT, /*!< 配对拒绝 */
ERRCODE_SLE_BUSY, /*!< 系统繁忙 */
ERRCODE_SLE_NOT_READY, /*!< 系统未准备好 */
ERRCODE_SLE_CONN_FAIL, /*!< 连接失败 */
ERRCODE_SLE_OUT_OF_RANGE, /*!< 越界 */
ERRCODE_SLE_MEMCPY_FAIL, /*!< 拷贝失败 */
ERRCODE_SLE_MALLOC_FAIL, /*!< 内存申请失败 */
ERRCODE_SLE_CONN_EXIST, /*!< 对已经存在连接的设备创建链接 */
ERRCODE_SLE_MAX = ERRCODE_SLE_COMMON_END /*!< SLE错误码最大值 */
} errcode_sle_t;
| 枚举成员 |
取值 |
描述 |
| ERRCODE_SLE_SUCCESS |
0 |
执行成功 |
| ERRCODE_SLE_CONTINUE |
0x80006000 |
继续执行 |
| ERRCODE_SLE_DIRECT_RETURN |
0x80006001 |
直接返回 |
| ERRCODE_SLE_NO_ATTATION |
0x80006002 |
错误码 |
| ERRCODE_SLE_PARAM_ERR |
0x80006003 |
参数错误 |
| ERRCODE_SLE_FAIL |
0x80006004 |
配置失败 |
| ERRCODE_SLE_TIMEOUT |
0x80006005 |
配置超时 |
| ERRCODE_SLE_UNSUPPORTED |
0x80006006 |
参数不支持 |
| ERRCODE_SLE_GETRECORD_FAIL |
0x80006007 |
获取当前记录失败 |
| ERRCODE_SLE_POINTER_NULL |
0x80006008 |
指针为空 |
| ERRCODE_SLE_NO_RECORD |
0x80006009 |
无记录返回 |
| ERRCODE_SLE_STATUS_ERR |
0x8000600A |
状态错误 |
| ERRCODE_SLE_NOMEM |
0x8000600B |
内存不足 |
| ERRCODE_SLE_AUTH_FAIL |
0x8000600C |
认证失败 |
| ERRCODE_SLE_AUTH_PKEY_MISS |
0x8000600D |
PIN码或密钥丢失致认证失败 |
| ERRCODE_SLE_RMT_DEV_DOWN |
0x8000600E |
对端设备关闭 |
| ERRCODE_SLE_PAIRING_REJECT |
0x8000600F |
配对拒绝 |
| ERRCODE_SLE_BUSY |
0x80006010 |
系统繁忙 |
| ERRCODE_SLE_NOT_READY |
0x80006011 |
系统未准备好 |
| ERRCODE_SLE_CONN_FAIL |
0x80006012 |
连接失败 |
| ERRCODE_SLE_OUT_OF_RANGE |
0x80006013 |
越界 |
| ERRCODE_SLE_MEMCPY_FAIL |
0x80006014 |
拷贝失败 |
| ERRCODE_SLE_MALLOC_FAIL |
0x80006015 |
内存申请失败 |
| ERRCODE_SLE_CONN_EXIST |
0x80006016 |
对已经存在连接的设备创建链接 |
| ERRCODE_SLE_MAX |
0x800067FF |
SLE错误码最大值 |
errcode_sle_ssap_t
errcode sle ssap t errcode_sle_ssap_t sle_ssap_t
typedef enum {
ERRCODE_SSAP_INVALID_PDU = ERRCODE_SLE_SSAP_BASE + 0x01, /*!< 服务端接收的PDU无效 */
ERRCODE_SSAP_PDU_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x02, /*!< 服务端不支持处理接收的PDU */
ERRCODE_SSAP_UNKNOW = ERRCODE_SLE_SSAP_BASE + 0x03, /*!< 服务端执行请求时发生未知错误 */
ERRCODE_SSAP_INVALID_HANDLE = ERRCODE_SLE_SSAP_BASE + 0x04, /*!< 请求中的句柄无效 */
ERRCODE_SSAP_INSUFFICIENT_RESOURCES = ERRCODE_SLE_SSAP_BASE + 0x05, /*!< 服务端没有足够资源完成请求 */
ERRCODE_SSAP_PROHIBIT_READING = ERRCODE_SLE_SSAP_BASE + 0x06, /*!< 服务端禁止客户端读取值 */
ERRCODE_SSAP_PROHIBIT_WRITE = ERRCODE_SLE_SSAP_BASE + 0x07, /*!< 服务端禁止客户端写入值 */
ERRCODE_SSAP_CLIENT_NOT_AUTHENTICATED = ERRCODE_SLE_SSAP_BASE + 0x08, /*!< 客户端未经过认证 */
ERRCODE_SSAP_CLIENT_NOT_AUTHORIZATION = ERRCODE_SLE_SSAP_BASE + 0x09, /*!< 客户端未被授权 */
ERRCODE_SSAP_BEARER_NOT_ENCRYPTED = ERRCODE_SLE_SSAP_BASE + 0x0A, /*!< 传输PDU的承载未加密 */
ERRCODE_SSAP_ENTRIES_NOT_FOUND = ERRCODE_SLE_SSAP_BASE + 0x0B, /*!< 服务端未找到对应条目 */
ERRCODE_SSAP_INVALID_METHOD_CALL = ERRCODE_SLE_SSAP_BASE + 0x0C, /*!< 方法访问错误 */
ERRCODE_SSAP_INCORRECT_DATA_TYPE = ERRCODE_SLE_SSAP_BASE + 0x0D, /*!< 客户端发送写入数据类型不符 */
ERRCODE_SSAP_INCORRECT_DATA_VALUE_LENGTH = ERRCODE_SLE_SSAP_BASE + 0x0E, /*!< 客户端发送写入值长度不符 */
ERRCODE_SSAP_VALUE_OUT_OF_RANGE = ERRCODE_SLE_SSAP_BASE + 0x0F, /*!< 客户端写入的值超出范围 */
ERRCODE_SSAP_SUBCONTRACT_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x10, /*!< 服务端不支持信令的分包发送 */
ERRCODE_SSAP_ATTRIBUTE_NUM_OVER_LIMIT = ERRCODE_SLE_SSAP_BASE + 0x11, /*!< 请求数量超出服务端的支持能力 */
ERRCODE_SSAP_FRAGMENT_NUMBER_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x12, /*!< 服务端不支持信令分片序号功能 */
ERRCODE_SSAP_SUBCONTRACT_NOT_FULLY_RECEIVE = ERRCODE_SLE_SSAP_BASE + 0x13, /*!< 服务端未接收所有分包 */
ERRCODE_SSAP_TRANSACTION_NUM_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x14, /*!< 服务端不支持消息事务号 */
ERRCODE_SSAP_RELIABLE_MODE_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x15, /*!< 服务端不支持可靠模式 */
ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MIN = ERRCODE_SLE_SSAP_BASE + 0xAF, /*!< 预留给上层协议定义应用错误 */
ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MAX = ERRCODE_SLE_SSAP_BASE + 0xFF, /*!< 预留给上层协议定义应用错误 */
} errcode_sle_ssap_t;
| 枚举成员 |
取值 |
描述 |
| ERRCODE_SSAP_INVALID_PDU |
0x80006101 |
服务端接收的PDU无效 |
| ERRCODE_SSAP_PDU_NOT_SUPPORT |
0x80006102 |
服务端不支持处理接收的PDU |
| ERRCODE_SSAP_UNKNOW |
0x80006103 |
服务端执行请求时发生未知错误 |
| ERRCODE_SSAP_INVALID_HANDLE |
0x80006104 |
请求中的句柄无效 |
| ERRCODE_SSAP_INSUFFICIENT_RESOURCES |
0x80006105 |
服务端没有足够资源完成请求 |
| ERRCODE_SSAP_PROHIBIT_READING |
0x80006106 |
服务端禁止客户端读取值 |
| ERRCODE_SSAP_PROHIBIT_WRITE |
0x80006107 |
服务端禁止客户端写入值 |
| ERRCODE_SSAP_CLIENT_NOT_AUTHENTICATED |
0x80006108 |
客户端未经过认证 |
| ERRCODE_SSAP_CLIENT_NOT_AUTHORIZATION |
0x80006109 |
客户端未被授权 |
| ERRCODE_SSAP_BEARER_NOT_ENCRYPTED |
0x8000610A |
传输PDU的承载未加密 |
| ERRCODE_SSAP_ENTRIES_NOT_FOUND |
0x8000610B |
服务端未找到对应条目 |
| ERRCODE_SSAP_INVALID_METHOD_CALL |
0x8000610C |
方法访问错误 |
| ERRCODE_SSAP_INCORRECT_DATA_TYPE |
0x8000610D |
客户端发送写入数据类型不符 |
| ERRCODE_SSAP_INCORRECT_DATA_VALUE_LENGTH |
0x8000610E |
客户端发送写入值长度不符 |
| ERRCODE_SSAP_VALUE_OUT_OF_RANGE |
0x8000610F |
客户端写入的值超出范围 |
| ERRCODE_SSAP_SUBCONTRACT_NOT_SUPPORT |
0x80006110 |
服务端不支持信令的分包发送 |
| ERRCODE_SSAP_ATTRIBUTE_NUM_OVER_LIMIT |
0x80006111 |
请求数量超出服务端的支持能力 |
| ERRCODE_SSAP_FRAGMENT_NUMBER_NOT_SUPPORT |
0x80006112 |
服务端不支持信令分片序号功能 |
| ERRCODE_SSAP_SUBCONTRACT_NOT_FULLY_RECEIVE |
0x80006113 |
服务端未接收所有分包 |
| ERRCODE_SSAP_TRANSACTION_NUM_NOT_SUPPORT |
0x80006114 |
服务端不支持消息事务号 |
| ERRCODE_SSAP_RELIABLE_MODE_NOT_SUPPORT |
0x80006115 |
服务端不支持可靠模式 |
| ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MIN |
0x800061AF |
预留给上层协议定义应用错误 |
| ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MAX |
0x800061FF |
预留给上层协议定义应用错误 |
Structures
sle_addr_t
addr_t sle addr t sle_addr_t
typedef struct {
uint8_t type; /*!< SLE设备地址类型 */
unsigned char addr[SLE_ADDR_LEN]; /*!< SLE设备地址 */
} sle_addr_t;
成员说明
| 成员名称 |
数据类型 |
描述 |
| type |
uint8_t |
SLE设备地址类型 |
| addr |
unsigned char[SLE_ADDR_LEN] |
SLE设备地址 |
sle_conn_info_t
conn_info_t sle conn info t sle_conn_info_t
typedef struct {
uint8_t link_type; /*!< 链路类型 */
union {
uint16_t conn_id; /*!< 连接ID */
struct {
uint8_t conn_type; /*!< 同步链路类型 */
uint8_t group_id; /*!< 同步链路组ID */
uint16_t conn_id; /*!< 连接ID */
uint8_t member_id; /*!< 同步链路的成员ID */
} iso_conn_info;
};
} sle_conn_info_t;
成员说明
| 成员名称 |
数据类型 |
描述 |
| link_type |
uint8_t |
链路类型 |
| conn_id |
uint16_t |
连接ID(异步链路时有效) |
| iso_conn_info |
struct |
同步链路连接信息(同步链路时有效),包含conn_type、group_id、conn_id、member_id成员 |
Macros
SLE_ADDR_LEN
addr_len sle addr len sle_addr_len
SLE_NAME_MAX_LEN
name_max_len sle name max len sle_name_max_len
#define SLE_NAME_MAX_LEN 31
SLE_LINK_KEY_LEN
link_key_len sle link key len sle_link_key_len
#define SLE_LINK_KEY_LEN 16
SLE_CHANNEL_MAP_LEN
channel_map_len sle channel map len sle_channel_map_len
#define SLE_CHANNEL_MAP_LEN 10
SLE_STANDARD_FEATURES_LEN
sle standard features len sle_standard_features_len standard_features_len
#define SLE_STANDARD_FEATURES_LEN 10
SLE_PRIVATE_FEATURES_LEN
private_features_len sle private features len sle_private_features_len
#define SLE_PRIVATE_FEATURES_LEN 16
ERRCODE_SLE_COMMON_BASE
errcode sle common base errcode_sle_common_base sle_common_base
#define ERRCODE_SLE_COMMON_BASE 0x80006000
ERRCODE_SLE_SSAP_BASE
errcode sle ssap base errcode_sle_ssap_base sle_ssap_base
#define ERRCODE_SLE_SSAP_BASE 0x80006100
ERRCODE_SLE_SSAP_END
errcode sle ssap end errcode_sle_ssap_end sle_ssap_end
#define ERRCODE_SLE_SSAP_END 0x800061FF
ERRCODE_SLE_SAF_BASE
errcode sle saf base errcode_sle_saf_base sle_saf_base
#define ERRCODE_SLE_SAF_BASE 0x80006200
ERRCODE_SLE_SAF_END
errcode sle saf end errcode_sle_saf_end sle_saf_end
#define ERRCODE_SLE_SAF_END 0x8000644F
ERRCODE_SLE_COMMON_END
errcode sle common end errcode_sle_common_end sle_common_end
#define ERRCODE_SLE_COMMON_END 0x800067FF