Считайте характеристику или данные о дескрипторе по Bluetooth Низкое энергетическое периферийное устройство
читает характеристическое значение из Bluetooth® Низкое энергетическое периферийное устройство. Чтение данных зависит от characteristicData = read(c)Attributes свойство входного объекта c характеристики. Для получения дополнительной информации обо всех возможных поведениях read, смотрите characteristicData.
задает characteristicData = read(c,mode)mode как режим чтения.
[ читает метку времени для любого из предыдущих синтаксисов.characteristicData,timestamp] = read(___)
читает значение дескриптора из Bluetooth Низкое энергетическое периферийное устройство.descriptorData = read(d)
Доступ к характеристике на вашем периферийном устройстве и считанный его данные.
Создайте связь с соседним Bluetooth Низкое энергетическое периферийное устройство.
b = ble("Thingy")b =
ble with properties:
Name: "Thingy"
Address: "F2DF635320F6"
Connected: 1
Services: [9×2 table]
Characteristics: [38×5 table]
Show services and characteristics
Создайте характеристический объект, который представляет "Temperature" характеристика.
c = characteristic(b,"Weather Station Service","Temperature")
c =
Characteristic with properties:
Name: "Temperature"
UUID: "EF680201-9B35-4933-9B10-52FFA9740042"
Attributes: "Notify"
Descriptors: [1x3 table]
DataAvailableFcn: []
Show descriptors
Поскольку эта характеристика поддерживает "Notify", можно использовать read получить последние данные.
data = read(c)
data = 1×2
23 75
Можно также возвратить метку времени последних данных.
[data,timestamp] = read(c)
data = 1×2
23 73
timestamp = datetime
16-May-2019 16:20:00
Интерпретируйте данные в Цельсия. Первый байт представляет целую часть температуры, и второй байт представляет десятичное число, расстаются с разрешением 0,01.
temperature = data(1) + data(2)*0.01
temperature = 23.7300
Доступ к характеристике на вашем периферийном устройстве и создает функцию обратного вызова, чтобы считать ее данные.
Создайте связь с соседним Bluetooth Низкое энергетическое периферийное устройство.
b = ble("Thingy")b =
ble with properties:
Name: "Thingy"
Address: "F2DF635320F6"
Connected: 1
Services: [9×2 table]
Characteristics: [38×5 table]
Show services and characteristics
Создайте характеристический объект, который представляет "Temperature" характеристика.
c = characteristic(b,"Weather Station Service","Temperature")
c =
Characteristic with properties:
Name: "Temperature"
UUID: "EF680201-9B35-4933-9B10-52FFA9740042"
Attributes: "Notify"
Descriptors: [1x3 table]
DataAvailableFcn: []
Show descriptors
Поскольку эта характеристика поддерживает "Notify", можно создать функцию обратного вызова. Назовите функциональный displayCharacteristicData и задайте его можно следующим образом. Задайте режим чтения как 'oldest' вместо 'latest'. Вызов 'latest' данные могут привести к ошибкам в функции обратного вызова, вызванной сбрасыванием предыдущих данных.
function displayCharacteristicData(src,evt) [data,timestamp] = read(src,'oldest'); disp(data); disp(timestamp); end
Используйте @ оператор, чтобы присвоить указатель на функцию DataAvailableFcn свойство характеристики. Когда новое уведомление доступно, данные появляются в вашем командном окне.
c.DataAvailableFcn = @displayCharacteristicData
c =
Characteristic with properties:
Name: "Temperature"
UUID: "EF680201-9B35-4933-9B10-52FFA9740042"
Attributes: "Notify"
Descriptors: [1x3 table]
DataAvailableFcn: displayCharacteristicData
Show descriptors
После того, как вы закончили работать с характеристикой, отключаете уведомления с помощью unsubscribe.
unsubscribe(c)
Доступ к дескриптору на вашем периферийном устройстве и считанный его данные.
Создайте связь с соседним Bluetooth Низкое энергетическое периферийное устройство.
b = ble("DemoDev")b =
ble with properties:
Name: "DemoDev"
Address: "FF548EA5658F"
Connected: 1
Services: [5×2 table]
Characteristics: [10×5 table]
Show services and characteristics
Создайте характеристический объект, который представляет "Heart Rate Measurement" характеристика.
c = characteristic(b,"Heart Rate","Heart Rate Measurement")
c =
Characteristic with properties:
Name: "Heart Rate Measurement"
UUID: "2A37"
Attributes: "Notify"
Descriptors: [1x3 table]
DataAvailableFcn: []
Show descriptors
Создайте объект дескриптора, который представляет "Client Characteristic Configuration" дескриптор.
d = descriptor(c,"Client Characteristic Configuration")d =
Descriptor with properties:
Name: "Client Characteristic Configuration"
UUID: "2902"
Attributes: ["Read" "Write"]
Этот дескриптор содержит информацию о том, включены ли уведомление и индикация или отключены. Можно использовать read получить текущие данные.
data = read(d)
data = 1×2
0 0
Интерпретируйте эти данные путем обращения к спецификации для этого дескриптора, найденного в Спецификации Ядра Bluetooth на веб-сайте SIG Bluetooth.
Это значение изменяется когда уведомление или изменения состояния индикации. Например, подпишитесь на уведомление с помощью subscribe. Затем наблюдайте изменение в значении путем чтения дескриптора снова.
subscribe(c,'notification');
data = read(d)data = 1×2
1 0
c — Характеристика Bluetooth Низкое энергетическое периферийное устройствоХарактеристика Bluetooth Низкое энергетическое периферийное устройство в виде a characteristic объект.
Attributes свойство характеристического объекта должно включать "Read"уведомление, или "Indicate" считывать данные.
Пример: data = read(c) читает значение характеристического объекта c.
mode — Режим чтения'latest' (значение по умолчанию) | 'oldest'Режим чтения в виде 'latest' или 'oldest'. Используя 'latest' возвращает новые данные и сбрасывает предыдущие данные. Используя 'oldest' возвращает самые старые данные начиная с последнего чтения.
Примечание
Используйте 'oldest' в DataAvailableFcn функция обратного вызова, чтобы избежать ошибок, вызванных сбрасыванием предыдущих данных.
Пример: data = read(c,'oldest') читает самое старое значение начиная с последнего чтения на характеристическом объекте c.
Типы данных: char | string
d — Дескриптор Bluetooth Низкое энергетическое периферийное устройствоДескриптор Bluetooth Низкое энергетическое периферийное устройство в виде a descriptor объект.
Attributes свойство объекта дескриптора должно включать "Read" считывать данные.
Пример: read(d) читает значение объекта d дескриптора.
characteristicData — Характеристические данныеХарактеристические данные из периферийного устройства, возвращенного как номер или массив чисел.
Чтение данных зависит от Attributes свойство характеристического объекта и заданного режима чтения.
c.Attributes | read(c) или read(c,'latest') | read(c,'oldest') |
|---|---|---|
| Текущие данные. | Не поддерживаемый. |
| Последнее уведомление или данные об индикации.
| Самое старое уведомление или данные об индикации, поскольку в последний раз считано.
|
|
|
|
Типы данных: double
timestamp — Метка времениМетка времени, указывающая на получение характеристики или данных о дескрипторе по компьютеру, возвращенному как a datetime массив.
Типы данных: datetime
descriptorData — Данные о дескриптореДанные о дескрипторе из периферийного устройства, возвращенного как номер.
Типы данных: double
characteristic | descriptor | subscribe | unsubscribe | write
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.