1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Jieli-Tech-fw-AC63_BT_SDK

 / Детали:

ЗАМЕЧАНИЕ: Способ просмотра широковещательных пакетов и заполнение других полей, таких как 128-битный UUID

Предстоит сделать
Владелец
Создано  
05.03.2025
  • Вид просмотра
    Введите описание изображения
    Введите описание изображения

  • Способ заполнения пакета

+ 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;
}

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
蓝牙相关
label.
GitLife Service Account добавлено
 
蓝牙BLE
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/Jieli-Tech-fw-AC63_BT_SDK.git
git@api.gitlife.ru:oschina-mirror/Jieli-Tech-fw-AC63_BT_SDK.git
oschina-mirror
Jieli-Tech-fw-AC63_BT_SDK
Jieli-Tech-fw-AC63_BT_SDK