#include "xf_hal.h"
#include "string.h"
#define TAG "sample_ssaps"
#define SAMPLE_ADV_ID 1
#define SAMPLE_ADV_HANDLE 1
#define SAMPLE_SLE_CONN_INTV_MIN 0x64
#define SAMPLE_SLE_CONN_INTV_MAX 0x64
#define SAMPLE_SLE_ADV_INTERVAL_MIN 0xC8
#define SAMPLE_SLE_ADV_INTERVAL_MAX 0xC8
#define SAMPLE_SLE_CONN_SUPERVISION_TIMEOUT 0x1F4
#define SAMPLE_SLE_CONN_MAX_LATENCY 0
#define SAMPLE_SLE_ADV_TX_POWER 10
{
{
{
},
{0}
},
},
{0}
}
};
{
"xf_sle_enable error!:%#X", ret);
"xf_sle_set_local_name error:%#X", ret);
"xf_sle_set_local_name error:%#X", ret);
"xf_sle_ssaps_add_service_to_app error:%#X", ret);
"xf_sle_ssaps_start_service error:%#X", ret);
"xf_sle_start_announce error:%#X", ret);
}
{
XF_LOGI(
TAG,
"EV:disconnect, it will restart ADV");
"xf_sle_start_announce error:%#X", ret);
} break;
} break;
XF_LOGI(
TAG,
"EV:REQ WRITE:need_rsp:%d,hdl:%d,conn_id:%d,trans_id:%d",
} break;
XF_LOGI(
TAG,
"EV:REQ READ:need_rsp:%d,hdl:%d,conn_id:%d,trans_id:%d",
};
);
"xf_sle_start_announce error:%#X", ret);
} break;
default:
break;
}
}
{
{
{
}, {
.struct_data_len = 1,
},
{.struct_data_len = 0}
},
.seek_rsp_data_len = 0,
.seek_rsp_data = NULL,
};
"ADV set data error:%#X", ret);
}
{
{
};
"ADV set param error:%#X", ret);
}
#define XF_CHECK(condition, retval, tag, format,...)
xfusion 检查宏(条件 成立 时则输出日志后返回)。
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
#define XF_LOG_BUFFER_HEXDUMP_ESCAPE(buffer, buffer_len)
以十六进制输出 buffer 的内容,同时输出可见的 ascii 码,以及转义字符。
#define xf_memcpy(dest, src, n)
xf_err_t xf_sle_ssaps_event_cb_register(xf_sle_ssaps_event_cb_t evt_cb, xf_sle_ssaps_event_t events)
SLE SSAPS 事件回调注册
xf_err_t xf_sle_ssaps_send_response(uint8_t app_id, uint16_t conn_id, uint32_t trans_id, xf_sle_ssap_err_t err_code, xf_sle_ssaps_response_value_t *rsp)
SLE SSAPS 发送 (请求的) 响应
xf_err_t xf_sle_ssaps_add_service_to_app(uint8_t app_id, xf_sle_ssaps_service_t *service)
SLE SSAPS 服务端 (应用) 添加服务
xf_sle_ssaps_event_t
SLE SSAPS 事件
xf_err_t xf_sle_ssaps_app_register(xf_sle_uuid_info_t *app_uuid, uint8_t *app_id)
SLE SSAPS 服务端注册
xf_err_t xf_sle_ssaps_start_service(uint8_t app_id, uint16_t service_handle)
SLE SSAPS 服务开启
@ XF_SLE_SSAP_SERVICE_TYPE_PRIMARY
@ XF_SLE_SSAP_PERMISSION_WRITE
@ XF_SLE_SSAP_PERMISSION_READ
@ XF_SLE_CONN_EVT_DISCONNECT
@ XF_SLE_CONN_EVT_CONNECT
@ XF_SLE_SSAPS_EVT_REQ_WRITE
@ XF_SLE_SSAPS_EVT_REQ_READ
xf_err_t xf_sle_set_announce_data(uint8_t announce_id, const xf_sle_announce_data_t *data)
SLE 设置广播 (公开) 数据
xf_err_t xf_sle_set_local_name(const uint8_t *name, const uint8_t len)
SLE 设置本端设备名称
struct __packed _xf_sle_uuid_info_t xf_sle_uuid_info_t
SLE UUID 信息 (多种长度类型通用)
#define XF_SLE_ADDR_LEN
SLE 地址长度
xf_err_t xf_sle_enable(void)
SLE 功能开启
xf_err_t xf_sle_set_announce_param(uint8_t announce_id, const xf_sle_announce_param_t *param)
SLE 设置广播 (公开) 参数
xf_err_t xf_sle_start_announce(uint8_t announce_id)
SLE 广播开启
#define XF_SLE_DECLARE_UUID16(uuid16)
SLE 声明一个 16-bit UUID
@ XF_SLE_ADV_STRUCT_TYPE_DISCOVERY_LEVEL
@ XF_SLE_ADV_STRUCT_TYPE_COMPLETE_LOCAL_NAME
@ XF_SLE_ANNOUNCE_TYPE_CONNECTABLE_SCANABLE
@ XF_SLE_ANNOUNCE_LEVEL_NORMAL
@ XF_SLE_ADV_CHANNEL_MAP_DEFAULT
@ XF_SLE_ANNOUNCE_ROLE_T_CAN_NEGO
SLE 广播 (公开) 数据 ( 包含响应数据 )
xf_sle_adv_struct_t * announce_struct_set
uint8_t addr[XF_SLE_ADDR_LEN]
SLE 广播数据单元 ( AD structure )
xf_sle_adv_struct_type_t type
uint32_t announce_interval_min
uint16_t conn_interval_min
uint32_t announce_interval_max
xf_sle_announce_gt_role_t announce_gt_role
uint16_t conn_interval_max
uint16_t conn_max_latency
xf_sle_adv_channel_map_t announce_channel_map
uint16_t conn_supervision_timeout
xf_sle_announce_level_t announce_level
xf_sle_announce_type_t announce_type
struct _xf_sle_ssaps_evt_cb_param_t::@28 req_read
SLE SSAPS 接收到读请求事件的参数
struct _xf_sle_ssaps_evt_cb_param_t::@29 req_write
SLE SSAPS 接收到写请求事件的参数
static xf_sle_ssapc_find_struct_param_t service_struct
static xf_sle_uuid_info_t s_app_uuid
static void sample_sle_set_adv_data(void)
static uint8_t s_prop_value[8]
static uint8_t s_ntf_value[]
static void sample_sle_set_adv_param(void)
#define SAMPLE_SLE_ADV_INTERVAL_MAX
static uint8_t s_rsp_value[]
static uint8_t s_local_name[]
#define SAMPLE_SLE_CONN_INTV_MIN
#define SAMPLE_ADV_HANDLE
#define SAMPLE_SLE_CONN_INTV_MAX
static uint8_t s_sle_mac_addr[XF_SLE_ADDR_LEN]
#define SAMPLE_SLE_CONN_SUPERVISION_TIMEOUT
static xf_err_t sample_ssaps_event_cb(xf_sle_ssaps_event_t event, xf_sle_ssaps_evt_cb_param_t *param)
#define SAMPLE_SLE_ADV_INTERVAL_MIN
#define SAMPLE_SLE_CONN_MAX_LATENCY
#define XF_LOGI(tag, format,...)