日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/19 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python找不到idleble_如何在python中使用pygatt从BLE设备获取通知? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在使用

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设备获取通知?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。