Перевод текста на русский язык:
Примечание: обнаружение всех серверов (без поддержки)
rw007_ble get_char Примечание: описание обнаружения всех (без поддержки)
rw007_ble get_disc Примечание: характеристика обнаружения всех (без поддержки)
rw007_ble mtu_exch Примечание: обмен BLE MTU (без поддержки)
rw007_ble notify Примечание: включить уведомление BLE (без поддержки)
rw007_ble write Примечание: запись данных BLE (без поддержки)
rw007_ble read Примечание: чтение данных BLE (без поддержки)
rw007_ble notify_change [conn_handle] [UUID] [char_value] Примечание: настройка уведомления BLE по UUID
rw007_ble write_uuid [conn_handle] [UUID] [data] Примечание: запись данных BLE по UUID
rw007_ble read_uuid [conn_handle] [UUID] Примечание: чтение данных BLE по UUID
rw007_ble cfgwifi [duration_ms] Примечание: включение конфигурации BLE Wi-Fi
Для использования функции BLE необходимо вызвать функцию инициализации BLE.
rw007_ble init central
Пример
msh />rw007_ble init central
122-ble_cmd_init
start ble central
msh />
rw007_ble init peripheral
Особое примечание: в настоящее время функция ведомого устройства RW007 поддерживает использование только WeChat applet.
Адрес устройства BLE делится на публичный и случайный адрес.
rw007_ble get_addr
Пример
msh />rw007_ble get_addr
339 - ble_cmd_get_addr
msh />ble data input packet resp_type: 0, len: 12
public_id_addr = c8:47:8c:41:10:04
random_id_addr = 00:00:00:00:00:00
Функция BLE RW007 поддерживает сканирование окружающих устройств BLE с помощью команды scan.
rw007_ble scan
Пример
msh >rw007_ble scan
365 - ble_cmd_scan
msh >
ble data input packet resp_type: 1, len: 37
RW007_BLE_NTF_TYPE_DISCOVER
received advertisement; event_type=0 rssi=-69 addr_type=1 addr=61:97:58:84:b3:fe
mfg_data = 02 01 1a 02 0a 0c 0a ff 4c 00 10 05 42 1c e0 56 bc
Содержание адреса addr здесь может быть использовано подключённым устройством позже. Поскольку имя соответствующего устройства BLE в настоящее время не отображается напрямую, сначала необходимо вручную определить адрес устройства BLE.
rw007_ble stop_scan
Устройство функции BLE RW007 поддерживает подключение к устройству через класс mac-адреса устройства BLE. Эта команда поддерживает только основной режим для подключения к классу mac-адресу ведомого устройства. После успешного подключения будет соответствующее значение conn_handle, это значение conn_handle используется в других функциях.
Тестовая команда
rw007_ble connect xx:xx:xx:xx:xx:xx
Пример
msh />rw007_ble connect 4c:ed:fb:00:04:b1
198 - ble_cmd_connect
str_addr: 4c:ed:fb:00:04:b1
mac addr: b1: 4: 0:fb:ed:4c
msh />resp_type: 1, len: 52
RW007_BLE_NTF_TYPE_CONNECT
type: 0, status: 0, conn_handle: 1
resp_type: 1, len: 44
RW007_BLE_NTF_TYPE_CONNECT_DESC
our_id_addr: c9:47:8c:42:00:48
peer_id_addr: b1:04:00:fb:ed:4c
Устройство функции BLE RW007 поддерживает активное отключение ведомого устройства.
rw007_ble disconnect [conn_handle]
Требования к conn_handle и connect одинаковы.
Пример
msh />rw007_ble disconnect 1
341 - ble_cmd_disconnect
msh />resp_type: 1, len: 52
RW007_BLE_NTF_TYPE_DISCONN
Функция BLE RW007 для записи данных, поддерживает запись соответствующих данных путём указания UUID.
rw007_ble write_uuid [conn_handle] [UUID] [data]
Описание инструкции: [conn_handle]
— это соответствующее значение, генерируемое при подключении RW007 к устройству, [UUID]
— характеристический параметр соответствующего устройства BLE, а [data]
— данные. Данные для отправки.
Пример:
msh />rw007_ble write_uuid 1 ebe0ccbe7a0a4b0c8a1a6ff2997da3a6 00
data: 00
write conn_hanle:1 uuid:ebe0ccbe7a0a4b0c8a1a6ff2997da3a6
write rc:0
Примечание: в тестовом примере [conn_handle]
равен 1, [UUID]
— ebe0ccbe7a0a4b0c8a1a6ff2997da3a6
, а [data]
— 0x00 (здесь используется шестнадцатеричное значение).
Функция RW007
BLE поддерживает изменение параметров получения notify
.
rw007_ble notify_change [conn_handle] [char_value] [UUID]
Описание параметров:
[conn_handle]
— соответствующее значение, генерируемое при подключении RW007
к устройству.
[char_value]
— параметр конфигурации, который может принимать следующие значения:
0: отключить индикацию и уведомление;
1: включить уведомление, отключить индикацию;
2: включить индикацию, отключить уведомление;
3: включить индикацию и уведомление.
[UUID]
— значение характеристического параметра соответствующего устройства BLE
.
Тип широковещательного пакета event
в функции RW007
BLE можно разделить на следующие типы:
/* Advertising report */
#define BLE_HCI_ADV_RPT_EVTYPE_ADV_IND (0)
#define BLE_HCI_ADV_RPT_EVTYPE_DIR_IND (1)
#define BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND (2)
#define BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND (3)
#define BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP (4)
Структура широковещательного пакета выглядит следующим образом:
struct ble_gap_disc_desc {
uint8_t event_type;
uint8_t length_data;
ble_addr_t addr;
int8_t rssi;
uint8_t *data;
/***
* LE direct advertising report fields; direct_addr is BLE_ADDR_ANY if
* direct address fields are not present.
*/
ble_addr_t direct_addr;
};
Различные типы широковещательных пакетов различаются по event_type. Все типы делятся на следующие:
/* Advertising report */
0: обычный широковещательный пакет;
1: прямой широковещательный пакет;
2: пакет запроса сканирования;
3: не подключаться к инструкциям широковещательной рассылки;
4: ответ на запрос сканирования.
Таким образом, в ответе на сканирование устройства соответствующий event_type
можно использовать для определения типа широковещательного пакета.
RW007
поддерживает функцию чтения данных через UUID
.
rw007_ble read_uuid [conn_handle] [UUID]
Описание параметров:
[conn_handle]
— соответствующее значение, сгенерированное при подключении RW007
к устройству.
[UUID]
— характеристический параметр соответствующего устройства BLE
.
Пример:
msh />rw007_ble read_uuid 1 2a24
read conn_hanle:1 uuid:2a24
read rc:0
msh />ble data input packet resp_type: 0, len: 18
RW007_BLE_RSP_TYPE_READ
connect:1 attr_handle:14 uuid: 24 2a read data:
00000000: 4C 59 57 53 44 30 33 4D 4D 43 00 LYWSD03MMC.
Примечание: здесь [conn_handle]
равно 1, [UUID]
— 2a24
, а прочитанные данные — это имя устройства BLE.
Модуль RW007 уже поддерживает функцию чтения 128-битного UUID.
Пример:
msh />rw007_ble read_uuid 1 ebe0ccbe7a0a4b0c8a1a6ff2997da3a6
read conn_hanle:1 uuid:ebe0ccbe7a0a4b0c8a1a6ff2997da3a6
read rc:0
msh />ble data input packet resp_type: 0, len: 22
RW007_BLE_RSP_TYPE_READ
connect:1 attr_handle:51 uuid: a6 a3 7d 99 f2 6f 1a 8a 0c 4b 0a 7a be cc e0 eb read data:
00000000: 00
Примечание: Здесь [conn_handle]
равно 1, [UUID]
— 128-битный ebe0ccbe7a0a4b0c8a1a6ff2997da3a6
, а значение прочитанных данных — 00
.
RW007
поддерживает функцию настройки сети WeChat applet BLE
.
rw007_ble cfgwifi [duration_ms]
Описание параметра:
[duration_ms] — продолжительность, в течение которой модуль будет транслировать информацию во внешний мир как подчинённый, в миллисекундах (мс). Имя модуля RW007
, которое он транслирует во внешний мир, — RW007-XXXX
, где XXXX
— последние 4 цифры mac
-адреса модуля.
Для кода, управляемого хостом, сторона хоста может обратиться к следующему коду реализации, чтобы войти в режим распределения сети BLE
:
rt_err_t rw007_ble_cfgwifi(uint32_t duration_ms)
{
struct
``` Пример
msh />rw007_ble cfgwifi 30000
msh />[420332] I/WLAN.mgnt: wifi connect success ssid:
[421341] I/WLAN.lwip: Got IP address : 192.168.1.212
Примечание: 30000 — это длительность внешней трансляции модуля RW007 в качестве ведомого устройства. Как только длительность превысит установленное значение, внешняя трансляция прекратится.
**Некоторые ограничения на одновременное использование функций конфигурации BLE-сети и хоста BLE**
(1) Функция SCAN хоста и распределение BLE-сети не могут использоваться одновременно. Когда модуль RW007 находится в состоянии широковещательной передачи «Advertise» (функция ведомого устройства открывает широковещательную передачу), а хост (stm32) снова выполняет операцию сканирования, операция сканирования вернёт код ошибки, что означает, что операция сканирования недействительна. Операция сканирования не может быть выполнена нормально до тех пор, пока состояние широковещательной передачи Advertise не закончится, но этот процесс не влияет на состояние подключённого устройства.
(2) Функция SCAN хоста и конфигурация BLE-сети не могут использоваться одновременно. Когда хост (stm32) выполняет операцию сканирования хоста BLE, а модуль RW007 одновременно настроен на широковещательную передачу «Advertise», операция сканирования будет прервана. Операция сканирования может быть выполнена только после того, как состояние широковещательной передачи Advertise закончится, но этот процесс не повлияет на состояние подключённых устройств.
## 2. На что обратить внимание
Из-за ситуации с мультиплексированием контактов драйвер bsp SPI должен быть настроен во время Config.
## 4. Контакты
— Поддержка: команда разработчиков RT-Thread;
— Домашняя страница: https://github.com/RT-Thread-packages/rw007.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )