/* Takes care of both Scan Response and Advertising data */
int _bt_hal_set_advertising_data(btgatt_adv_param_setup_t adv_param_setup)
{
/* Takes care of both Scan Response and Advertising data */
int _bt_hal_set_advertising_data(btgatt_adv_param_setup_t adv_param_setup)
{
/* Solicit UUID */
if (adv_param_setup.solicit_uuid_len > 0) {
__bt_hal_parse_uuid(adv_param_setup.solicit_uuid_len,
/* Solicit UUID */
if (adv_param_setup.solicit_uuid_len > 0) {
__bt_hal_parse_uuid(adv_param_setup.solicit_uuid_len,
l = __bt_hal_parse_service_data(adv_param_setup.service_data_len,
adv_param_setup.service_data, &adv_data[index]);
l = __bt_hal_parse_service_data(adv_param_setup.service_data_len,
adv_param_setup.service_data, &adv_data[index]);
adv_data[index] = 1 + adv_param_setup.manufacturer_data_len;
adv_data[index+1] = 0xFF;
memcpy(&adv_data[index+2], adv_param_setup.manufacturer_data, adv_param_setup.manufacturer_data_len);
adv_data[index] = 1 + adv_param_setup.manufacturer_data_len;
adv_data[index+1] = 0xFF;
memcpy(&adv_data[index+2], adv_param_setup.manufacturer_data, adv_param_setup.manufacturer_data_len);
adv_data[index] = 1 + adv_param_setup.tds_data_len;
adv_data[index+1] = 0x26;
memcpy(&adv_data[index+2], adv_param_setup.tds_data, adv_param_setup.tds_data_len);
adv_data[index] = 1 + adv_param_setup.tds_data_len;
adv_data[index+1] = 0x26;
memcpy(&adv_data[index+2], adv_param_setup.tds_data, adv_param_setup.tds_data_len);
for (i = 0; i < length; i++)
snprintf(&adv_data_str[i * 2], 3, "%02X", adv_data[i]);
INFO("Set adv data. Index [%d] length [%d] Data[%s]", index, length, adv_data_str);
for (i = 0; i < length; i++)
snprintf(&adv_data_str[i * 2], 3, "%02X", adv_data[i]);
INFO("Set adv data. Index [%d] length [%d] Data[%s]", index, length, adv_data_str);
event->event = BT_HAL_MULTI_ADV_DATA_EVT;
event->server_if = adv_param_setup.server_if;
event->status = BT_STATUS_SUCCESS;
event->event = BT_HAL_MULTI_ADV_DATA_EVT;
event->server_if = adv_param_setup.server_if;
event->status = BT_STATUS_SUCCESS;
g_idle_add(__bt_hal_adv_event_cb, (gpointer)event);
return BT_STATUS_SUCCESS;
g_idle_add(__bt_hal_adv_event_cb, (gpointer)event);
return BT_STATUS_SUCCESS;