Считайте характеристику или данные о дескрипторе по Bluetooth Низкое энергетическое периферийное устройство
читает характеристическое значение из периферийного устройства Bluetooth® Low Energy. Чтение данных зависит от 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
Интерпретируйте эти данные путем обращения к спецификации для этого дескриптора на веб-сайте SIG Bluetooth.
Это значение изменяется когда уведомление или изменения состояния индикации. Например, подпишите на notifcation использование subscribe
. Затем наблюдайте изменение в значении путем чтения дескриптора снова.
subscribe(c,'notification');
data = read(d)
data = 1×2
1 0
c
— Характеристика Bluetooth Низкое энергетическое периферийное устройствоХарактеристика Bluetooth Низкое энергетическое периферийное устройство в виде 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 Низкое энергетическое периферийное устройство в виде descriptor
объект.
Attributes
свойство объекта дескриптора должно включать "Read"
считывать данные.
Пример: read(d)
читает значение объекта d
дескриптора.
characteristicData
— Характеристические данныеХарактеристические данные из периферийного устройства, возвращенного как номер или массив чисел.
Чтение данных зависит от Attributes
свойство характеристического объекта и заданного режима чтения.
c.Attributes | read(c) или read(c,'latest') | read(c,'oldest') |
---|---|---|
| Текущие данные. | Не поддерживаемый. |
| Последнее уведомление или данные об индикации.
| Самое старое уведомление или данные об индикации, поскольку в последний раз считано.
|
|
|
|
Типы данных: double
timestamp
— Метка времениМетка времени, указывающая на получение характеристики или данных о дескрипторе по компьютеру, возвращенному как datetime
массив.
Типы данных: datetime
descriptorData
— Данные о дескриптореДанные о дескрипторе из периферийного устройства, возвращенного как номер.
Типы данных: double
characteristic
| descriptor
| subscribe
| unsubscribe
| write
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.