根据数据包类型拆分TTY设备



我有一个TTY设备设置,用于监控蓝牙/GPS组合芯片的串行端口。我正在使用blueZ来实现蓝牙堆栈,并执行与蓝牙相关的所有操作。通过该端口发送的数据都是HCI数据包,甚至是GPS数据。GPS数据被封装在类型为0xXX的HCI分组中(由HCI分组的第一字节指示)。

我想知道是否有任何内核功能可以将TTY设备拆分为两个独立的设备。例如,我想使用blueZ从/dev/ttyS0读取和写入所有HCI数据包(GPS数据包除外)。然后,我想要另一个TTY设备来读取0xXX类型的所有HCI数据包,比如/dev/ttyGPS

最后,我正在寻找一些东西来过滤特定类型的所有HCI数据包到不同的"伪"TTY设备。如果这不可能,我将需要使用hcidump解析应用程序空间中的所有HCI数据包。虽然这是可能的,但拥有两个TTY设备将大大减少应用程序开发,因为之前已经完成了工作。

我使用的芯片恰好是TI芯片。我发现的解决方案是由他们作为内核内的驱动程序提供的。

http://processors.wiki.ti.com/index.php/Shared_Transport_Driver