【问题标题】:How to determine tty number如何确定 tty 号码
【发布时间】:2015-01-29 18:52:02
【问题描述】:

我有一个用作虚拟串行端口的 USB 设备。我想让它在 Linux 上运行。连接设备后,Linux usb-to-serial 驱动程序和 tty 驱动程序找到它,并出现设备节点 /dev/ttyUSBx。可以将几个相同的设备连接到系统。我编写 Java 代码,它必须通过 RXTX 库 与设备通信。

所以我想知道,哪个设备对应于特定的 tty 节点。如何在 Java 中获取这些信息?我认为我必须创建具有必要功能的 JNI,但我不了解 C 代码的操作链。谁能帮忙找路?

【问题讨论】:

    标签: java linux


    【解决方案1】:

    您可以直接从 Java 执行 shell 命令。

    String[] command = new String[]{"/bin/sh", "-c", "find /sys/devices -name ttyUSB0 | grep -v 'tty/tty'";
    Process child = Runtime.getRuntime().exec(command);
    BufferedReader br = new BufferedReader(new InputStreamReader(child.getInputStream()));
    String line = input.readLine();
    ...
    

    这样您就可以在 USB 树中获取设备节点连接的详细信息。例如你得到:

    /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/ttyUSB0
    

    然后通过执行获取设备的序列号

    cat /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/serial
    

    通过序列号唯一识别特定设备,如ftE2MLXP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      相关资源
      最近更新 更多