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