思澈科技软件开发工具包  2.20
Sibles 广播

Sibles 广播提供基于 GAP 广播 API 的简单 API。 用户可以配置部分参数然后可以开始广播。

  • 配置广播模式以确定广播行为。
    • SIBLES_ADV_CONNECT_MODE,启动可连接广播以建立链接。
    • SIBLES_ADV_BROADCAST_MODE,启动不可连接的广播广播。
    • SIBLES_ADV_DIRECTED_CONNECT_MODE,为专用链接建立启动定向广播。
  • 为每种模式配置参数,例如间隔、持续时间和是否重复。
  • 将广播数据和扫描响应数据设置为提供的结构。

这是示例:

// Declare app advertising context
SIBLES_ADVERTISING_CONTEXT_DECLAR(g_app_advertising_context);
// Listen the advertising status changed and request.
static uint8_t app_advertising_event(uint8_t event, void *context, void *data)
{
switch (event)
{
{
// Check current started advertising mode
rt_kprintf("ADV start resutl %d, mode %d\r\n", evt->status, evt->adv_mode);
break;
}
{
// Check current stopped advertising mode
rt_kprintf("ADV stopped reason %d, mode %d\r\n", evt->reason, evt->adv_mode);
break;
}
default:
break;
}
return 0;
}
static void app_advertising_start(void)
{
char local_name[] = "TEST_SIFLI";
uint8_t manu_additnal_data[] = {0x20, 0xC4, 0x00, 0x91};
uint16_t manu_company_id = 0x01;
uint8_t ret;
// Configure advertising mode
// Configure mode parameters
// Support two advertising interval switch.
// Whether repeated if duration timeout
// Whether restart after disconnection.
// Whether advertising and scan response use same data
// Set local name in advertising data
para.adv_data.completed_name = rt_malloc(rt_strlen(local_name) + sizeof(sibles_adv_type_name_t));
para.adv_data.completed_name->name_len = rt_strlen(local_name);
rt_memcpy(para.adv_data.completed_name->name, local_name, para.adv_data.completed_name->name_len);
// Set manufacturer data in advertising data
para.adv_data.manufacturer_data = rt_malloc(sizeof(sibles_adv_type_manufacturer_data_t) + sizeof(manu_additnal_data));
para.adv_data.manufacturer_data->company_id = manu_company_id;
para.adv_data.manufacturer_data->data_len = sizeof(manu_additnal_data);
rt_memcpy(para.adv_data.manufacturer_data->additional_data, manu_additnal_data, sizeof(manu_additnal_data));
para.evt_handler = app_advertising_event;
ret = sibles_advertising_init(g_app_advertising_context, &para);
if (ret == SIBLES_ADV_NO_ERR)
{
sibles_advertising_start(g_app_advertising_context);
}
}
sibles_adv_config_t::is_rsp_data_duplicate
uint8_t is_rsp_data_duplicate
Definition: bf0_sibles_advertising.h:193
GAPM_GEN_RSLV_ADDR
@ GAPM_GEN_RSLV_ADDR
Generated resolvable private random address.
Definition: bf0_ble_gap.h:595
sibles_adv_type_manufacturer_data_t::additional_data
uint8_t additional_data[]
Definition: bf0_sibles_advertising.h:256
SIBLES_ADV_EVT_ADV_STARTED
@ SIBLES_ADV_EVT_ADV_STARTED
Definition: bf0_sibles_advertising.h:121
sibles_adv_evt_startted_t::status
uint8_t status
Definition: bf0_sibles_advertising.h:351
sibles_advertising_init
uint8_t sibles_advertising_init(sibles_advertising_context_t *context, sibles_advertising_para_t *para)
Advertising configuration init.
sibles_adv_config_t::is_auto_restart
uint8_t is_auto_restart
Definition: bf0_sibles_advertising.h:191
sibles_adv_type_manufacturer_data_t::company_id
uint16_t company_id
Definition: bf0_sibles_advertising.h:254
SIBLES_ADV_NO_ERR
@ SIBLES_ADV_NO_ERR
Definition: bf0_sibles_advertising.h:108
SIBLES_ADV_CONNECT_MODE
@ SIBLES_ADV_CONNECT_MODE
Definition: bf0_sibles_advertising.h:80
sibles_adv_type_name_t::name_len
uint8_t name_len
Definition: bf0_sibles_advertising.h:203
sibles_adv_connect_mode_config_t::is_repeated
uint32_t is_repeated
Definition: bf0_sibles_advertising.h:142
sibles_adv_config_t::mode_config
sibles_adv_mode_config_t mode_config
Definition: bf0_sibles_advertising.h:187
sibles_adv_connect_mode_config_t::duration
uint32_t duration
Definition: bf0_sibles_advertising.h:135
sibles_adv_type_manufacturer_data_t::data_len
uint8_t data_len
Definition: bf0_sibles_advertising.h:255
data
uint8_t data[]
Definition: bf0_ble_ancs.h:227
sibles_adv_data_t::manufacturer_data
sibles_adv_type_manufacturer_data_t * manufacturer_data
Definition: bf0_sibles_advertising.h:284
sibles_advertising_para_t::adv_data
sibles_adv_data_t adv_data
Definition: bf0_sibles_advertising.h:304
sibles_adv_type_manufacturer_data_t
The structure of manufacturer specific dat in advertising data.
Definition: bf0_sibles_advertising.h:253
sibles_adv_evt_startted_t
The structure of SIBLES_ADV_EVT_ADV_STARTED.
Definition: bf0_sibles_advertising.h:350
sibles_adv_evt_stopped_t::reason
uint8_t reason
Definition: bf0_sibles_advertising.h:360
sibles_adv_evt_stopped_t::adv_mode
uint8_t adv_mode
Definition: bf0_sibles_advertising.h:361
sibles_adv_config_t::adv_mode
uint8_t adv_mode
Definition: bf0_sibles_advertising.h:186
sibles_adv_mode_config_t::conn_config
sibles_adv_connect_mode_config_t conn_config
Definition: bf0_sibles_advertising.h:178
sibles_adv_connect_mode_config_t::interval
uint32_t interval
Definition: bf0_sibles_advertising.h:137
sibles_adv_connect_mode_config_t::backgroud_mode_enabled
uint8_t backgroud_mode_enabled
Definition: bf0_sibles_advertising.h:138
sibles_advertising_para_t::config
sibles_adv_config_t config
Definition: bf0_sibles_advertising.h:302
sibles_advertising_start
uint8_t sibles_advertising_start(sibles_advertising_context_t *context)
Start advertising.
SIBLES_ADV_EVT_ADV_STOPPED
@ SIBLES_ADV_EVT_ADV_STOPPED
Definition: bf0_sibles_advertising.h:122
sibles_adv_type_name_t
The structure of device local name in advertising data.
Definition: bf0_sibles_advertising.h:202
sibles_adv_data_t::completed_name
sibles_adv_type_name_t * completed_name
Definition: bf0_sibles_advertising.h:279
sibles_adv_evt_startted_t::adv_mode
uint8_t adv_mode
Definition: bf0_sibles_advertising.h:352
sibles_advertising_para_t::own_addr_type
uint8_t own_addr_type
Definition: bf0_sibles_advertising.h:300
sibles_adv_connect_mode_config_t::backgroud_duration
uint32_t backgroud_duration
Definition: bf0_sibles_advertising.h:140
sibles_adv_connect_mode_config_t::backgroud_interval
uint32_t backgroud_interval
Definition: bf0_sibles_advertising.h:141
sibles_advertising_para_t::evt_handler
sibles_advertising_event evt_handler
Definition: bf0_sibles_advertising.h:307
sibles_adv_evt_stopped_t
The structure of SIBLES_ADV_EVT_ADV_STOPPED.
Definition: bf0_sibles_advertising.h:359
sibles_adv_type_name_t::name
char name[]
Definition: bf0_sibles_advertising.h:204
SIBLES_ADVERTISING_CONTEXT_DECLAR
#define SIBLES_ADVERTISING_CONTEXT_DECLAR(context)
Declar sibles advertising context.
Definition: bf0_sibles_advertising.h:65
sibles_advertising_para_t
The structure of advertising configure.
Definition: bf0_sibles_advertising.h:299