面向python的蓝牙低能耗(ble)库

bleep的Python项目详细描述


#哔哔声

受[bleat](https://github.com/thegecko/bleat)启发的python的ble抽象层。目前只支持Linux,对Mac OS X的实验性支持。

##当前支持

  • 发现设备
  • 阅读广告数据
  • 连接到设备
  • 发现服务、特征和描述符
  • 从特征中读取

##安装

###Linux

首先,安装pygattlib的fork及其依赖项:

`bash sudo apt-get install libboost-python-devlibboost-thread-devlibbluetooth-devlibglib2.0-devpython-dev `

您还应确保libbluetooth版本至少为4.101:

`bash apt-cache policy libbluetooth-dev | grep Installed `

然后,克隆存储库,并安装python包。

`bash git clone https://github.com/matthewelse/pygattlib.git cd pygattlib sudo python setup.py install `

这将构建动态库,并安装python包。

然后您可以轻松地安装bleep:

`bash sudo pip install bleep `

如果您想发展出bleep,请运行:

` sudo python setup.py develop `

这将导致在导入库时反映对bleep所做的任何更改。

>;注意:即使使用python交互式shell,也可能需要使用sudo运行所有ble代码。

###Mac OS X

在Mac OS X上安装非常简单:

`bash git clone https://github.com/matthewelse/bleep.git cd bleep sudo python setup.py install `

同样地,如果您想发展bleep,请运行此命令而不是最后一行:

`bash sudo python setup.py develop `

##示例

###tree.py

您可以运行tree.py来查看附加到具有特定mac地址的设备的所有服务、特征和描述符。为了找到设备的mac地址,可以使用hcitool lescan,或者使用bledevice.discoverdevices()。

` usage: tree.py [-h] mac `

##用法

###包括哔哔声

`python >>> from bleep import BLEDevice `

###扫描设备

`python >>> devices = BLEDevice.discoverDevices() >>> devices [Device Name:  (5A:79:8E:91:83:1C), Device Name:  (C1:20:68:1B:00:26), Device Name: BLE Keyboard (C9:E8:56:3B:4D:B1), Device Name:  (4C:25:F5:C2:E6:61), Device Name:  (60:03:08:B2:47:F1), Device Name:  (C1:62:3A:1D:00:14)] `

这将返回一个设备对象列表,但是您不会连接到其中任何对象,因此请选择一个您喜欢的对象,然后连接到该对象:

`python >>> device = devices[2] >>> device.connect() `

然后您可以访问设备的服务:

`python >>> device.services [Generic Access, Generic Attribute, Device Information, Battery Service, Human Interface Device] `

每项服务的特点

`python >>> service = device.services[4] >>> service Human Interface Device >>> service.characteristics [HID Information, Report Map, Protocol Mode, HID Control Point, Report, Report] `

以及每个特征的描述符

`python >>> char = service.characteristics[4] >>> char Report >>> char.descriptors [Client Characteristic Configuration, Report Reference] `

###有用的功能

bleDevice.discoverdevices支持一些参数,这些参数允许您指定要连接到哪个ble设备(在Linux以外的操作系统上忽略)、要采样多长时间,以及一个返回布尔值的函数,允许您选择您的设备。

`python def discoverDevices(device='hci0', timeout=5, filter=lambda x: True) `

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaAkka参与者工具包上下文。ActorofVS系统。阿克特罗夫   java快速查看是否未选中所有复选框的方法   使用JLabel添加图片时遇到的java问题   java如何在SpringRestTemplate中自定义自动封送以生成/修改XML头(编码,DOCTYPE)   java Exchange Web服务(EWS)使用令牌凭据进行单点登录?   java无法从@Transaction中具有关系的两个表中删除   多线程处理我的代码只有在通过java完成处理后才能继续   java FileNotFoundException:[excel在本地计算机上的位置]文件名、目录名或卷标语法不正确   java JPanel不会显示在另一个JPanel之上   从Eclipse构建器运行Java程序   java根据状态更改记录器级别   在Java中,如何使用日志。e(或任何函数)列出代码中使用的所有变量   java 21点极小极大算法   java NullPointerException@Googlemap lambda表达式?(gMapsfx)   java如何运行。从转换的exe文件。使用不带Jre的Launch4J工具的jar文件   java将非实质性的Swing插件加载到Eclipse