目录:

  • 1. 前言
  • 2. 准备一个心率带设备
  • 3. 源码解析
  • 4. 运行结果
  • 5. 写在最后

1. 前言

上一章节介绍了服务的发现,现在来看看服务里面的特征及描述是怎么获取的。

本文是基于源码例子的 service_explorer.py 来展开的。

2. 准备一个心率带设备

为了更好得介绍,我们用NORDIC模拟了一个心率带设备,现在通过nRF Connect来看看它的服务及其下面的特征和描述。

3. 源码解析

import sys
import platform
import asyncio
import loggingfrom bleak import BleakClient
logger = logging.getLogger(__name__)
ADDRESS = ("E6:F8:E8:8D:D7:68"if platform.system() != "Darwin"else "B9EA5233-37EF-4DD6-87A8-2A875E821C46"
)async def main(address):async with BleakClient(address) as client:logger.info(f"Connected: {client.is_connected}")for service in client.services:logger.info(f"[Service] {service}")for char in service.characteristics:if "read" in char.properties:try:value = bytes(await client.read_gatt_char(char.uuid))logger.info(f"\t[Characteristic] {char} ({','.join(char.properties)}), Value: {value}")except Exception as e:logger.error(f"\t[Characteristic] {char} ({','.join(char.properties)}), Value: {e}")else:value = Nonelogger.info(f"\t[Characteristic] {char} ({','.join(char.properties)}), Value: {value}")for descriptor in char.descriptors:try:value = bytes(await client.read_gatt_descriptor(descriptor.handle))logger.info(f"\t\t[Descriptor] {descriptor}) | Value: {value}")except Exception as e:logger.error(f"\t\t[Descriptor] {descriptor}) | Value: {e}")if __name__ == "__main__":logging.basicConfig(level=logging.INFO)asyncio.run(main(sys.argv[1] if len(sys.argv) == 2 else ADDRESS))

从以上代码可以得知:

【Bleak】六、特征及描述的发现相关推荐

  1. OpenCV仿射变换 SURF特征点描述合辑

    原文:http://blog.csdn.net/poem_qianmo/article/details/33320997?utm_source=tuicool&utm_medium=refer ...

  2. 深度学习图像处理目标检测图像分割计算机视觉 02--图像特征与描述

    深度学习图像处理目标检测图像分割计算机视觉 02--图像特征与描述 摘要 一.图像特征与描述 1.1.颜色特征 1.2.几何特征提取 1.3.基于特征点的特征描述子 1.3.1.几何特征:关键点 1. ...

  3. 理解 UDDI(统一描述、发现和集成)

    本文来自IBM [导读]统一描述.发现和集成(Universal Description, Discovery, and Integration,UDDI)项目继续丰富企业用于在 UDDI 业务注册中 ...

  4. 服务器编写_编写下载服务器。 第六部分:描述您发送的内容(内容类型等)...

    服务器编写 就HTTP而言,客户端下载的只是一堆字节. 但是,客户真的很想知道如何解释这些字节. 它是图像吗? 还是ZIP文件? 本系列的最后一部分描述了如何向客户端提示她下载的内容. 设置 内容类型 ...

  5. 编写下载服务器。 第六部分:描述您发送的内容(内容类型等)

    就HTTP而言,客户端下载的只是一堆字节. 但是,客户真的很想知道如何解释这些字节. 它是图像吗? 或者也许是ZIP文件? 本系列的最后一部分描述了如何向客户端提示她下载的内容. 设置 内容类型描述了 ...

  6. 《深入理解 Spring Cloud 与微服务构建》第六章 服务注册和发现 Eureka

    <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 Eureka 文章目录 <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 ...

  7. 哪些数学特征可以用来描述一组数据

    在机器学习的过程中,一个很重要的问题就是特征的提取.提取训练数据的特征,决定着最终学习的效果.那么一组数据,比如一组表示身高的一维数组如何用数学特征加以描述呢.使用到如下的python模块可以快速的计 ...

  8. 提取特征点和特征点描述

    网上找的某段代码: //提取特征点 SurfFeatureDetector Detector(2000); vector<KeyPoint> keyPoint1, keyPoint2;De ...

  9. SuperPoint:深度学习特征点+描述子

    [原文链接]:https://www.vincentqin.tech/posts/superpoint/ 本文出自近几年备受瞩目的创业公司MagicLeap,发表在CVPR 2018,一作Daniel ...

最新文章

  1. 3行代码,Python数据预处理提速6倍!(附链接)
  2. 转iOS性能优化:Instruments使用实战
  3. Python 技术篇-操作oracle数据库执行SQL语句报错,提示ORA-00911: 无效字符解决方法
  4. php如何转换类型,PHP数据类型转换
  5. 如何用九条命令在一分钟内检查 Linux 服务器性能?
  6. STVD下配置Cosmic编译器
  7. 如何跟踪log4j漏洞原理及发现绕WAF的tips
  8. 无法恢复,欧洲云服务巨头数据中心起火
  9. Silverlight+WCF 新手实例 象棋 棋子移动-线交叉点(六)
  10. day02_20190106 基础数据类型 编码 运算符
  11. [unity]网游中实现资源动态加载
  12. python数据挖掘实验报告_数据挖掘实习报告
  13. 2023计算机毕业设计SSM最新选题之java一起学习吧s77u8
  14. U盘启动制作 + xp镜像
  15. 11.2 逃课是个需要严肃对待的问题——《逆袭大学》连载
  16. OpenCV案例(五): 更换背景色
  17. 京东零售大数据云原生平台化实践
  18. 用于excel(或wps)中进行ip处理转换的vbs模块
  19. Unity使用MaskableGraphic画一条带箭头的线
  20. 小白学习MySQL - 聊聊数据备份的重要性

热门文章

  1. 新目标视听说教程1-4
  2. UpdatePanel的用法及 UpdatePanel与JS冲突的解决方法
  3. svn服务器设置忽略文件夹,SVNignore忽略文件及目录 - 米扑博客
  4. 如何完成自己笔记本电脑与Aubo机械臂的网络连接
  5. 准备创建独立站?2022年最新制作企业官网必看的网页设计全攻略
  6. 程序员过情人节,实用表白网页附源码
  7. 霍纳规则(Horner'ruler)算法
  8. 研究基于springboot的租房推荐系统的目的和意义
  9. 那些年,拒绝过马云马化腾的大佬们,都混成什么样?
  10. 他被称为中国第一代程序员,一人之力单挑Java,如今财务自由后,做起了老师!...