根据数据包类型拆分 TTY 设备
Split TTY device based on packet type
我有一个 TTY 设备设置来监视组合 bluetooth/GPS 芯片的串行端口。我正在使用 blueZ 来实现蓝牙堆栈并执行与蓝牙相关的所有操作。通过这个端口发送的数据都是 HCI 数据包,甚至是 GPS 数据。 GPS 数据包装在类型为 0xXX
的 HCI 数据包中(由 HCI 数据包的第一个字节指示)。
我想知道是否已经有任何内核工具可以将 TTY 设备拆分为两个独立的设备。例如,我想使用 blueZ 从 /dev/ttyS0
读取和写入所有 HCI 数据包(GPS 数据包除外)。然后,我想要另一个 TTY 设备来读取所有 0xXX
类型的 HCI 数据包,比如 /dev/ttyGPS
。
最后,我正在寻找可以将特定类型的所有 HCI 数据包过滤到不同 "pseudo" TTY 设备的东西。如果这不可能,我将需要使用 hcidump 解析应用程序 space 中的所有 HCI 数据包。虽然这是可能的,但由于之前完成的工作,拥有两个 TTY 设备将大大减少应用程序开发。
我用的芯片正好是TI的芯片。我找到的解决方案是他们作为内核内部的驱动程序提供的。
http://processors.wiki.ti.com/index.php/Shared_Transport_Driver
我有一个 TTY 设备设置来监视组合 bluetooth/GPS 芯片的串行端口。我正在使用 blueZ 来实现蓝牙堆栈并执行与蓝牙相关的所有操作。通过这个端口发送的数据都是 HCI 数据包,甚至是 GPS 数据。 GPS 数据包装在类型为 0xXX
的 HCI 数据包中(由 HCI 数据包的第一个字节指示)。
我想知道是否已经有任何内核工具可以将 TTY 设备拆分为两个独立的设备。例如,我想使用 blueZ 从 /dev/ttyS0
读取和写入所有 HCI 数据包(GPS 数据包除外)。然后,我想要另一个 TTY 设备来读取所有 0xXX
类型的 HCI 数据包,比如 /dev/ttyGPS
。
最后,我正在寻找可以将特定类型的所有 HCI 数据包过滤到不同 "pseudo" TTY 设备的东西。如果这不可能,我将需要使用 hcidump 解析应用程序 space 中的所有 HCI 数据包。虽然这是可能的,但由于之前完成的工作,拥有两个 TTY 设备将大大减少应用程序开发。
我用的芯片正好是TI的芯片。我找到的解决方案是他们作为内核内部的驱动程序提供的。
http://processors.wiki.ti.com/index.php/Shared_Transport_Driver