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

OSCHINA-MIRROR/RT-Thread-Mirror-rw007

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Перевод текста на русский язык:

Примечание: обнаружение всех серверов (без поддержки) 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

1.5.2 Инициализация функции BLE

Для использования функции BLE необходимо вызвать функцию инициализации BLE.

    1. Функция BLE RW007 инициализируется как ведущее устройство.
rw007_ble init central

Пример

msh />rw007_ble init central
122-ble_cmd_init
start ble central
msh />
    1. Функция BLE RW007 инициализируется как ведомое устройство.
rw007_ble init peripheral

Особое примечание: в настоящее время функция ведомого устройства RW007 поддерживает использование только WeChat applet.

1.5.3 Получение локального адреса устройства BLE

Адрес устройства 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

1.5.4 SCAN

Функция BLE RW007 поддерживает сканирование окружающих устройств BLE с помощью команды scan.

    1. Сканирование окружающих устройств BLE
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.

    1. Остановка сканирования окружающих устройств BLE
rw007_ble stop_scan

1.5.5 CONNECT

Устройство функции 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

1.5.6 DISCONNECT

Устройство функции 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

1.5.7 WRITE

Функция 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 (здесь используется шестнадцатеричное значение).

1.5.8 Обновление параметра NOTIFY

Функция RW007 BLE поддерживает изменение параметров получения notify.

rw007_ble notify_change [conn_handle] [char_value] [UUID]

Описание параметров:

[conn_handle] — соответствующее значение, генерируемое при подключении RW007 к устройству.

[char_value] — параметр конфигурации, который может принимать следующие значения:

0: отключить индикацию и уведомление;
1: включить уведомление, отключить индикацию;
2: включить индикацию, отключить уведомление;
3: включить индикацию и уведомление.

[UUID] — значение характеристического параметра соответствующего устройства BLE.

1.5.9 Описание типов широковещательных пакетов

Тип широковещательного пакета 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 можно использовать для определения типа широковещательного пакета.

1.6.0 Чтение данных

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.

1.6.1 Описание функций настройки сети BLE

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/RT-Thread-Mirror-rw007.git
git@api.gitlife.ru:oschina-mirror/RT-Thread-Mirror-rw007.git
oschina-mirror
RT-Thread-Mirror-rw007
RT-Thread-Mirror-rw007
master