Hi
I am using nrf52832 to develop a ble hid device with tile function
I merge sample code ble_app_tile to ble_app_hid_keyboard example
I use the advertising_init function from ble_app_tile instead of original function
and I found when the advertising start, it will advertise continuously and non stop until running down of battery
any sample code or discussion thread I can reference to fix this issue?
bellow is my advertising_init function
static void advertising_init(void)
{
NRF_LOG_INFO("advertising_init\n");
ret_code_t err_code;
uint16_t uuid, uuid_hid;
uint16_t tile_service_uuid;
uint16_t adv_interval;
uint8_t tile_service_data_length;
uint8_t tile_service_data[TILE_SERVICE_DATA_MAX_LENGTH];
uint8_t manuf;
//ble_advertising_init_t init;
ble_advdata_service_data_t service_data_array[1]; /**< Array of Service data structures. */
/* manufacturing data is available */
ble_advdata_manuf_data_t manuf_specific_data; /**< Manufacturer specific data. */
/* Set manufacturing data to default */
memset(&manuf_specific_data, 0, sizeof(manuf_specific_data));
// Set Tile default advertising parameters.
memset(&g_adv_params, 0, sizeof(g_adv_params));
g_adv_params.primary_phy = BLE_GAP_PHY_1MBPS;
g_adv_params.duration = APP_ADV_DURATION;
g_adv_params.properties.type = BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED;
g_adv_params.p_peer_addr = NULL;
g_adv_params.filter_policy = BLE_GAP_ADV_FP_ANY;
// Build and set Tile advertising data.
memset(&g_advdata, 0, sizeof(g_advdata));
g_advdata.name_type = BLE_ADVDATA_FULL_NAME;
g_advdata.include_appearance = true;
g_advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;
/* Get current advertising data and params */
(void) tile_gap_get_adv_params(&adv_interval, &tile_service_uuid, &tile_service_data_length, tile_service_data, &manuf);
g_adv_params.interval = adv_interval;
if (0 != tile_service_data_length)
{
service_data_array[0].service_uuid = tile_service_uuid;
service_data_array[0].data.size = tile_service_data_length;
service_data_array[0].data.p_data = tile_service_data;
g_advdata.p_service_data_array = service_data_array;
g_advdata.service_data_count = 1;
}
uuid = tile_service_uuid;
uuid_hid = BLE_UUID_HUMAN_INTERFACE_DEVICE_SERVICE;
ble_uuid_t adv_uuids[] = {{uuid, BLE_UUID_TYPE_BLE}, {uuid_hid,BLE_UUID_TYPE_BLE}};
g_advdata.uuids_complete.uuid_cnt = 2;
g_advdata.uuids_complete.p_uuids = adv_uuids;
m_adv_data.adv_data.len = BLE_GAP_ADV_SET_DATA_SIZE_MAX;
err_code = ble_advdata_encode(&g_advdata, m_adv_data.adv_data.p_data, &m_adv_data.adv_data.len);
APP_ERROR_CHECK(err_code);
err_code = sd_ble_gap_adv_set_configure(&m_adv_handle, &m_adv_data, &g_adv_params);
APP_ERROR_CHECK(err_code);
err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING);
APP_ERROR_CHECK(err_code);
}