我正在使用

python开发一个

Linux应用程序,它将连接到我的BLE设备并通过通知特性来获取数据.我正在使用

pygatt进行BLE通信.我可以成功连接并绑定到设备并读取/写入特性.即使我可以订阅通知特性,但问题是,我的BLE设备是一个自定义机器,里面有4个计数器,每当计数器的一个数据发生变化时,它就会设置相应的通知标志,因此,使用onDataChanged-像方法我可以从阅读特征中读取计数器的数据.在使用pygatt的Python中,我可以订阅通知特性:

class_name.device.subscribe(uuid.UUID(notify_characteristic),callback=notifyBle)

而notifyBle是:

def notifyBle(self,handle,data):

read_data = class_name.device.char_read(uuid.UUID(read_characteristic))

print(read_data)

当我运行程序时,首先我扫描设备并连接到我的设备并与之绑定,然后我发现特征并列出它们.一切都很成功.列出特性后,我写了写特性来清除通知标志,也是成功的.最后我订阅通知特征它是成功的.

完成所有这些过程后,我会在物理上增加设备的计数器(设备上有按钮用于增加计数器).当我按下按钮程序进入notifyBle方法,它给出错误,这是:

Exception in thread Thread-3:

Traceback (most recent call last):

File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner

self.run()

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 137, in run

event["callback"](event)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 479, in _handle_notification_string

self._connected_device.receive_notification(handle, values)

File "/usr/local/lib/python3.5/dist-packages/pygatt/device.py", line 226, in receive_notification

callback(handle, value)

File "/home/acd/Masaüstü/python_workspace/ble.py", line 54, in notifyBle

read_data = bleFunctions.dev.char_read(uuid.UUID(bleFunctions.read_characteristic))

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/device.py", line 17, in wrapper

return func(self, *args, **kwargs)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/device.py", line 40, in char_read

return self._backend.char_read(self, uuid, *args, **kwargs)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 53, in wrapper

return func(self, *args, **kwargs)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 519, in char_read

self.sendline('char-read-uuid %s' % uuid)

File "/usr/lib/python3.5/contextlib.py", line 66, in __exit__

next(self.gen)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 180, in event

self.wait(event, timeout)

File "/usr/local/lib/python3.5/dist-packages/pygatt/backends/gatttool/gatttool.py", line 154, in wait

raise NotificationTimeout()

pygatt.exceptions.NotificationTimeout

任何帮助,将不胜感激.

PS:我在Android和Windows UWP中编写了完全相同的程序.使用python,我的目标是在raspberry pi 3上运行它.

PSS:我正在使用带有Ubuntu Mate的raspberry pi 3来在python中开发这个程序.

python找不到idleble_如何在python中使用pygatt从BLE设备获取通知?相关推荐

  1. Python数据分析小技巧:如何在Pandas中实现数据透视表?

    Python数据分析小技巧:如何在Pandas中实现数据透视表? 数据透视表是数据分析中非常有用的工具,可以帮助我们快速了解数据的结构.关联和趋势.在Pandas中,我们可以使用pivot_table ...

  2. python队列怎么用_如何在Python中使用多处理队列? - python

    我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...

  3. python字符串筛选输出_如何在Python中过滤字符串列表

    Python使用列表数据类型在顺序索引中存储多个数据.它的工作方式类似于其他编程语言的数字数组.filter()方法是Python的一种非常有用的方法.可以使用filter()方法从Python中的任 ...

  4. python静态变量计数器_如何在Python中使用静态变量在计数

    今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...

  5. python右对齐 数字_如何在Python中右对齐数值数据?

    我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...

  6. 只学python找工作难吗-只学python语言找工作难吗?

    只学python语言找工作难吗?小编可以肯定的告诉你不难, 初级中级高级职位都有啊,学习python可以找后台开发.数据挖掘.机器学习等方面的工作,python的强大之处在于拥有许多第三方包,可以说是 ...

  7. python 指定证书验证_如何在python中验证SSL证书?

    我需要验证我的自定义CA签署了证书.使用OpenSSL命令行实用程序很容易做到: # Custom CA file: ca-cert.pem # Cert signed by above CA: bo ...

  8. python 找质数的个数_用Python打造一款文件搜索工具,所有功能自己定义!

    一.前言 大家好,又到了Python办公自动化系列. 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将 ...

  9. python隐藏启动台_如何在Python中启动后台进程?

    如何在Python中启动后台进程? 我正在尝试将shell脚本移植到更易读的python版本. 原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等). 如何 ...

最新文章

  1. spring中的JdbcTemplate——JdbcTemplate的最基本用法
  2. java-判断相同和对象比较大小
  3. Selenium2Library关键字(1)
  4. MachineLearning(8)-PCA,LDA基础+sklearn 简单实践
  5. 数据结构算法模拟系统
  6. 开源贡献 计算_学生如何开始为开源软件做贡献
  7. 如何制作标识标志标签
  8. 深入理解CSS动画animation
  9. 布同:3D网游开发整体流程简述
  10. YTU_3313: Barnicle(模拟)
  11. Fault 异常或陷阱 分析
  12. 研究杜比视界和HDR近两个月后的各种经验和故事
  13. 电脑PHP动画制作画板,html5教程制作简单画板代码分享
  14. 刚买的新树莓派怎样用(树莓派新手入门)
  15. JDK8经典特性回顾
  16. 巧妙解决-数学家年龄问题
  17. 数据结构与算法:用链表实现无序列表。
  18. SQL Assistant 12.x Crack
  19. IDC机房有哪些设备?如何组建中小企业IDC机房?
  20. Oracle 查询技巧与优化(二) 多表查询

热门文章

  1. SAP C4C的一个错误消息 - Security token does not match
  2. 用JavaScript实现的设计模式之commandline(命令行)模式
  3. SAP CRM WebClient UI配置的加载逻辑
  4. SAP UI5 事件通知技术的实现之Eventbus.subscribe
  5. user parameter to determine cache in SAP Gateway
  6. IBASE Header change - access sequence
  7. 程序员谈敏捷开发团队里成员间的相互信任
  8. SQL ABAP ST05 hint
  9. Inbound process in CRM
  10. BusinessPartner Relationship in WebUI and Fiori