到目前为止,我已经使用bleno开发了几个程序,可以在我的Raspberry Rpi2和RPi3中用作BLE外围设备。 任何人都可以告诉我,如果有替代Bleno的东西,在Python中甚至更好用C语言,为我的Raspberry开发BLE外围设备服务的代码?
答案 0 :(得分:2)
您可以随时使用Linux中的HCI_CHANNEL_USER功能直接与蓝牙控制器通信(例如来自C)。事实上,这正是bleno所做的。只需遵循蓝牙规范中的HCI协议即可。
答案 1 :(得分:2)
我有同样的痛苦 - 试图为python获得一个好的BLE Peripheral角色库 - 所以我继续将Bleno移植到python2 / 3。 它仍然是WIP,但Echo演示工作正常。
https://github.com/Adam-Langley/pybleno/
它在pypi上是“pybleno”
当然,对于出色的原始节点代码库,向Sandeep Mistry大声呼喊。
希望人们觉得它很有用。
答案 2 :(得分:0)
我不能给你C的答案,但是bluepy现在似乎是与BLE外围设备(就像bleno一样)说话的最佳品种,如果你想使用核心模式,那就是Adafruit的BlueFruit LE
警告:我自己只是用Pi外围设备弄湿了,并且还没有任何成功的项目。答案 3 :(得分:0)
据我所知,还没有用C编写的库,但这是一个有趣的起点: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/(特别有趣的是:doc / mgmt-api.txt,用于LE事物的doc / gatt-api.txt)
似乎有两个接口可以做蓝牙工作:D-Bus和HCI插座。 HCI套接字是具有特殊AF_BLUETOOTH域的实际C套接字(http://man7.org/linux/man-pages/man2/socket.2.html有助于对此进行解释)。 而且,您可以使用org.bluez。*通过D-Bus进行更高级的接口。
让所有这些工作都可能是一场噩梦,所有其他Python库可能都可以正常工作。如果您想要更高的性能,则完全可以在C或Rust中工作,而只需要套接字和D-Bus,这听起来真的很难。