我在项目中使用蓝牙 LE 设备,并且想在没有实际蓝牙设备的情况下测试蓝牙相关的主机代码。
目前,我有一台带有 BT dongle 作为主机和 BTLE 传感器的 Linux 机器。在 Linux 机器上,我正在运行一个 Python 代码,它使用名为的库与 BTLE 传感器进行通信蓝皮。
问题是:是否有可能在 Linux 中创建一个模拟的 HCI 接口,以便 bluepy 会认为它与我笔记本电脑上的真实 BT 模块进行通信,但实际上 - 该模块将是完全虚拟的,并且允许 Python 代码与我编写的虚拟 BTLE 传感器进行通信。
我已经通过模拟 RS232 设备做了类似的事情。当时我创建了伪 TTY 来代表 RS232 设备,我的模拟代码监听主代码的命令并以与真实设备响应完全相同的方式进行响应。
所以我想对蓝牙传感器有类似的解决方案。如何实现这一目标?
更新: 似乎 bluez 为您提供了一个名为“btvirt”的工具。使用它,您可以创建一对(或更多)虚拟 HCI 接口。而且这个工具似乎不太受欢迎,因为除了 github 中的源代码本身之外,我找不到任何关于它的文档回购。