Слияние кода завершено, страница обновится автоматически
Вид просмотра
Способ заполнения пакета
+ static u8 adv_cnt = 0;
static u8 adv_name_ok = 0; // имя сначала хранится в ADV пакете
static int trans_make_set_adv_data(void)
{
u8 offset = 0;
u8 *buf = trans_adv_data;
#if DOUBLE_BT_SAME_MAC
offset += make_eir_packet_val(&buf[offset], offset, HCI_EIR_DATATYPE_FLAGS, FLAGS_GENERAL_DISCOVERABLE_MODE | FLAGS_LE_AND_EDR_SAME_CONTROLLER, 1);
#else
offset += make_eir_packet_val(&buf[offset], offset, HCI_EIR_DATATYPE_FLAGS, FLAGS_GENERAL_DISCOVERABLE_MODE | FLAGS_EDR_NOT_SUPPORTED, 1);
#endif
offset += make_eir_packet_val(&buf[offset], offset, HCI_EIR_DATATYPE_COMPLETE_16BIT_SERVICE_UUIDS, 0xAF30, 2);
+ // если содержимое поля больше u32, используйте make_eir_packet_data(), определяйте как массив
+ u8 uuid_128[16] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+ 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
+ // 128 бит обратной последовательностью
+ offset += make_eir_packet_data(&buf[offset], offset, HCI_EIR_DATATYPE_COMPLETE_128BIT_SERVICE_UUIDS, uuid_128, sizeof(uuid_128));
+ /* offset += make_eir_packet_data(&buf[offset], offset, HCI_EIR_DATATYPE_MORE_128BIT_SERVICE_UUIDS, uuid_128, sizeof(uuid_128)); */
char *gap_name = ble_comm_get_gap_name();
u8 name_len = strlen(gap_name);
u8 valid_len = ADV_RSP_PACKET_MAX - (offset + 2);
if (name_len < valid_len) {
offset += make_eir_packet_data(&buf[offset], offset, HCI_EIR_DATATYPE_COMPLETE_LOCAL_NAME, (void *)gap_name, name_len);
adv_name_ok = 1;
} else {
adv_name_ok = 0;
}
+ // если содержимое поля меньше u32, используйте make_eir_packet_val(), определяйте как переменную
+ offset += make_eir_packet_val(&buf[offset], offset, HCI_EIR_DATATYPE_MANUFACTURER_SPECIFIC_DATA, adv_cnt, 1);
``` if (offset > ADV_RSP_PACKET_MAX) {
puts("***trans_adv_data переполнение!!!!!!\n");
return -1;
}
log_info("trans_adv_data(%d):", offset);
log_info_hexdump(buf, offset);
trans_server_adv_config.adv_data_len = offset;
trans_server_adv_config.adv_data = trans_adv_data;
return 0;
}
Вход Перед тем как оставить комментарий