蓝牙抽象api包

blue-st-sdk-package的Python项目详细描述


#bluest sdk

bluest是一个多平台库([android](https://github.com/stmicroelectronics centrallabs/bluestsdk\u android)、[ios](https://github.com/stmicroelectronics centrallabs/bluestsdk\u ios),以及[Linux](支持https://github.com/stmicroelectronics-centrallabs/bluestsdk_python),允许轻松访问由实现[bluest协议](https://github.com/stmicroelectronics centrallabs/bluestsdk_python_bluest protocol)。



sdk与[python]兼容(https://www.python.org/)2.7并在linux系统上运行。



bluepy
``
此外,它使用[concurrent.futures]模块(https://docs.python.org/3/library/concurrent.futures.html)在后台运行线程池,为监听器提供回调服务。
``shell
$sudo pip install futures
```

``` shell
$sudo pip在运行应用程序示例之前,请安装blue廑u st廑u sdk
````



请按照下面的步骤进行操作。
*应用程序示例[示例1.py](https://github.com/stmicroelectronics-centrallabs/bluetsdk python/blob/master/blue st.py示例/example.来自它的通知。应用程序需要设置一个设备,该设备配备BLE连接和与[Bluest协议](https://github.com/stmicroelectronics centrallabs/bluestsdk_python_Bluest协议)兼容的FW,例如,【SensorTile】(http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-solution-eval-boards/steval-stlkt01v1.html)开发工具包和[fp-sns-motenv1](http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-sns-motenv1.html)功能包。
*[示例2.py](https://github.com/stmicroelectronics-centrallabs/bluetsdk_python/blob/master/blue_st_examples/example_ble_2.py)应用程序示例显示如何连接到导出"步进电机"功能的BLE设备、获取其状态并向其发送命令。该应用程序需要设置一个设备,该设备配备BLE连接和步进电机控制,例如:
*a[nuclea-f401re](http://www.st.com/content/st戋com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nuclea/nuclea-f401re.html)开发板
*an[x-nuclea-idb05a1](http://www.st.com/content/st_com/en/products/econologies/stm32-open-development-environment/stm32-nuclea-expansion-boards/stm32-ode-connect-hw/x-nuclea-idb05a1.html)蓝牙低能扩展板[x-nuclea-ihm01a1](http://www.st.com/content/st_com/en/products/econologies/stm32-open-development-environment/stm32-nuclea-expansion-boards/stm32-ode-move-actuate-hw/x-nuclea-ihm01a1.html)步进电机驱动器扩展板,再加上一个合适的步进电机
*将[节点步进电机设备](https://os.mbed.com/teams/st/code/node布尔步进电机设备])MBED OS应用程序导入到ARM MBED帐户,编译并将其闪存到MCU板上
*编辑应用程序示例并设置"电机设备MAC"全局变量步进电机启动的BLE设备的正确MAC地址(例如,您可以通过智能手机应用程序检索)
*The[example_ble_3.py](https://github.com/stmicroelectronics-centrallabs/bluetsdk_python/blob/master/blue_st_examples/example_ble_3.py)应用程序示例演示如何处理两个ble设备导出"switch"功能,使按下设备上的用户按钮使另一个设备的led通过应用程序本身定义的逻辑切换其状态。应用程序需要设置两个配备BLE连接的设备,例如:
*两个[nuclea-f401re](http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nuclear/nuclea-f401re.html)开发板
*两个[x-nuclea-idb05a1](http://www.st.com/content/st-u com/en/products/econologies/stm32-open-development-environment/stm32-nuclea-expansion-boards/stm32-ode-connect-hw/x-nuclea-idb05a1.html)蓝牙低能扩展板
*导入[节点交换机设备](https://os.mbed.com/teams/st/code/node-ble-switch-device/)MBED操作系统应用程序到您的ARM MBED帐户,编译,并将其闪存到MCU板上
*编辑应用程序示例并正确设置"IoT_设备_x_Mac"全局变量(您可以使用智能手机应用程序检索Mac地址)
*[示例4.py](https://github.com/stmicroelectronics-centrallabs/bluetsdk_python/blob/master/blue_st_examples/example_ble_4.py)应用程序示例显示如何连接到支持麦克风的设备,导出"ADPCM音频"和"ADPCM同步"功能,允许复制录制的音频并将其转储到文件中。应用程序需要设置一个设备,该设备配备BLE连接和与[Bluest协议](https://github.com/stmicroelectronics centrallabs/bluestsdk_python_Bluest协议)兼容的FW,例如,【SensorTile】(http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-solution-eval-boards/steval-stlkt01v1.html)开发工具包和[fp-sns-allmems1](http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-sns-allmems1.html)功能包。
有关软件要求,请参阅应用程序示例文件。


应用程序示例可以在Linux的[Edgest SDK]中找到,Linux是一个用于Linux网关的物联网边缘计算抽象库。



遵循以下步骤:
1。克隆bluest sdk git存储库。
2.输入"blue嫒st嫒examples"文件夹并运行所需的脚本:
``shell
$sudo python example嫒ble嫒x.py
```




bluest protocol

方式:

|功能掩码设备mac(可选)
值0x07/0x0d 0xff 0x01 0xxx 0xxxxxxxx 0xxxxxxxxxxxx



-字段长度必须为7或13字节。

-设备id是标识设备类型的数字:
-0x00对于一般设备,
-0x01是为[steval-wesu1]保留的(http://www.st.com/en/evaluation-tools/steval-wesu1.html)板
-0x02是为[steval-stlkt01v1]保留的(传感器牌)"(http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-soluti在评估板上/st eval-stlkt01v1.html)板
-0x03是为[steval-bcnkt01v1(bluecoin)保留的(http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-solution-eval-boards/steval-bcnkt01v1.html)板
-0x04是为[STEVAL-IDB007VX(bluenrg1)](http://www.st.com/content/st戋com/en/products/evaluation-tools/solution-evaluation-tools/communication-and-connectivity-solution-eval-boards/steval-idb007v1.html)和[STEVAL-IDB008VX(bluenrg2)"(http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/communication-and-connectivity-solution-eval-boards/steval-idb008v1.html)板
-0x80用于通用核板

尚未分配设备ID值。此外,请注意,0x80和0xFF之间的值是为ST Nuclear板保留的。

-功能掩码是一个位字段,它提供有关板导出哪些功能的信息。目前,bits are mapped in the following way:

|Bit|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|Feature|Analog|ADPCM Sync|Switch|Direction of arrival|ADPCM Audio|Microphone Level|Proximity|Luxmeter|Accelerometer|Gyroscope|Magnetometer|Pressure|Humidity|Temperature|Battery|Second Temperature|

|Bit|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|Feature|CO Sensor|DC Motor|Stepper 马达SD记录波束形成加速计事件自由落体传感器融合紧凑传感器融合运动强度指南针活动携带位置接近姿态mems姿态计步器

要了解通过预定义功能导出数据的方式,请参考方法[<;code>;feature.extract_data(时间戳、数据、偏移量)<;code>;](https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.html blue_st_sdk.feature.feature.extract_data)在features类定义中。

-设备MAC地址是可选的,只需要在iOS平台上使用。



以及接近手势。
python sdk的未来版本将涵盖上述所有特性。



特性/特性
sdk管理的特性必须具有如下uuid:<;code>;xxxxxxx-0001-11e1-ac36-0002a5d5c51b<;/code>;.
sdk扫描所有服务,搜索与模式匹配的特征。

uuid的第一部分对于由特征导出的每个特征都将位设置为"1"。

数据的顺序必须与位掩码相同。

1
::——————————————————————————————————————————————————————————————————————————|

前两个字节用于传递时间戳。这对于识别任何数据丢失尤其有用。

,因为ble包的最大长度是20字节,功能的数据字段的最大大小为18字节。



-[fp-sns-motenv1](http://www.st.com/content/st_com/en/products/embedded software/mcus embedded software/stm32 ode function pack sw/fp-sns-motenv1.html):可连接物联网节点的stm32 ode function pack加上环境和运动传感器
-[fp-sns-allmems1](http://www.st.com/co)ntent/st_com/en/products/embedded software/mcus embedded software/stm32 embedded software/stm32 ode function pack sw/fp-sns-allmems1.html):可连接物联网节点的stm32 ode function pack,数字麦克风,环境和运动传感器
-[fp-sns-flight1](http://www.st.com/content/st-u-com/en/products/embedded software/mcus embedded software/stm32-ode function pack sw/fp-sns-flight1.html):可连接物联网节点的stm32 ode function pack,环境和运动传感器,飞行时间传感器(与python sdk一起使用时请删除nfc)



处理并存储检索到的节点。

在开始扫描过程之前,还可以定义新的设备ID,并向已定义的设备注册/添加新功能。

管理器通过[<;code>;managerlistener<;code>;通知新发现的节点;](https://stmicroelectronics centrallabs.github.io/blue st sdk_python/blue_st_sdk.html blue_st_sdk.manager.managerlistener)类。每个回调都由后台运行的线程异步执行。

恢复节点导出的功能并从设备读取/写入数据。

连接设备后,可以执行扫描和启用可用特性。然后,可以请求/发送与发现的功能相关的数据。

正在播发数据消息。
-**正在连接**:已触发与该节点的连接,该节点正在执行设备服务/特征的发现。
-**已连接**:已成功连接该节点。
-**正在断开连接**:正在断开连接;一旦断开该节点返回到空闲状态。
-**丢失**:设备已发送广告数据,但无法再访问。
-**无法访问**:与节点的连接已就位,但无法再访问。
-**死亡**:虚拟最终状态。

由后台运行的线程异步执行。

field(https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.features.html module-blue_st_sdk.features.field)描述导出数据的对象。

数据从BLE特征接收,并包含在一个[<;code>;示例<;/code>;](https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.html blue_st_sdk.feature.sample)类。通过侦听器通知用户有关新数据的信息。

请注意,每个回调都由后台运行的线程异步执行。


可以从功能包中检索可用的功能。


扩展功能类:
1。创建一个由[<;code>;field<;code>;]组成的数组(https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.features.html module-blue_st_sdk.features.field)对象,用于描述由该功能导出的数据。
2。创建只接受节点作为参数的构造函数。从这个构造函数调用超类构造函数,传递特性的名称和特性的字段。
3。实现方法[<;code>;feature.extract_data(timestamp,data,offset)<;code>;](https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.html blue_st_sdk.feature.feature.extract_data)。
4.实现一个类方法,该方法允许从一个[<;code>;sample<;code>;](https://stmicroelectronics centrallabs.github.io/bluetsdk_python/blue_st_sdk.html blue_st_sdk.feature.sample)对象获取数据。
2。注册新功能:
如果要对广告数据中的功能使用Bluest的位掩码,请在执行发现过程之前注册新功能,例如:

`` python
`将"my feature"功能添加到核子设备并将其映射到自定义的
‘0x10000000-0001-11e1-ac36-0002a5d5c51b'功能。
掩码到功能dic={}
掩码到功能dic[0x10000000]=myfeature
尝试:
manager.add_features_to_node(0x80,mask_to_features_dic)
除了e:
打印e
蓝牙设备的同步发现。
manager.discover(假,扫描时间)
```

否则,您可以在发现节点后并连接到节点之前注册该功能:
``python
map=uuidtofeaturemap()
map.put(uuid.uuid('00002A37-0000-1000-8000-00805F9B34FB'),feature_heart rate.featureheartrate)
node.add_external_features(map)
连接到节点。
node.connect()




license
版权所有(c)2018 stmicroelectronics

在源代码和二进制格式中重新分配和使用,无论是否进行
修改,如果满足以下条件,则允许使用:
1.源代码的重新分发必须保留上述版权声明,
此条件列表和以下免责声明。
2.以二进制形式重新分发必须复制上述
注意事项、本条件列表和
文档和/或随分发提供的其他材料中的以下免责声明。
3.未经事先书面许可,不得使用stmicroelectronics的名称或其
贡献者的名称来代言或推广从
本软件衍生的产品。

本软件由版权所有者和贡献者"按原样"提供。任何明示或默示保证,包括但不限于对适销性和特定用途适用性的默示保证,概不负责。在任何情况下,版权所有人或贡献者均不对任何直接、间接、附带、特殊、示范性或间接损害(包括但不限于购买替代货物或服务;使用、数据或利润损失)负责;或业务中断),无论是何种原因造成的,也无论是在合同、严格责任或侵权(包括疏忽或其他)中,还是在任何责任理论的基础上,
因使用本软件而产生的,即使被告知存在这种损害的可能性。

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

推荐PyPI第三方库


热门话题
java无法访问远程pentaho biserver   带有级联类型的OneToMany上的java Hibernate TransientObject异常。如果我们在保存之前调用迭代器()就可以了   java如果用户输入的“数字”超过了用于解释该数字的内存大小,那么正确的测试方法是什么?   java错误400错误请求JqGrid   java如何防止修改类中的私有字段?   java从一个Bean创建两个JPA表?   在Java中生成一个在JVM关闭后仍能生存的进程   java将字符反向复制到字符数组   使用opencv的java人脸检测不起作用   java差异代码覆盖率   robohelp如何使用Java链接Robo帮助中的URL?   java解码自定义加密文件   设计模式:减少java中几乎相同的两种方法的重复代码   java如何在数组中查找最大整数?   java Mockito spy:尝试在spy类方法中使用doReturn,但使用的是原始方法   java JButton在JTable中选择行时不重新启用   java当我尝试git推heroku时,我得到一个错误   java为什么组织。阿帕奇。薛西斯。解析器。SAXParser在utf8编码的xml中不跳过BOM?   selenium Java。jar文件大小