我有一个 TTY 设备设置来监控组合蓝牙/GPS 芯片的串行端口。我正在使用 blueZ 来实现蓝牙堆栈并做所有与蓝牙相关的事情。通过此端口发送的数据都是 HCI 数据包,甚至是 GPS 数据。GPS 数据包装在 HCI 类型的数据包中0xXX
(由 HCI 数据包的第一个字节表示)。
我想知道是否已经有任何内核工具可以将 TTY 设备分成两个单独的设备。/dev/ttyS0
例如,我想使用 blueZ读取和写入所有 HCI 数据包(GPS 数据包除外) 。然后,我想要另一个 TTY 设备来读取所有类型的 HCI 数据包0xXX
,比如说/dev/ttyGPS
。
最后,我正在寻找将某种类型的所有 HCI 数据包过滤到不同的“伪”TTY 设备的东西。如果这不可能,我将需要使用 hcidump 解析应用程序空间中的所有 HCI 数据包。虽然这是可能的,但拥有两个 TTY 设备会因为之前完成的工作而大大减少应用程序开发。