我想在串行端口和java之间建立通信,因为我的真实设备还没有到,所以我经常按照人们在互联网上的建议使用socat。
我首先使用此命令为虚拟串行端口运行socat
socat -d -d pty,raw,echo=0 pty,raw,echo=0
然后我得到了
2018/12/05 05:05:04 socat[2687] N PTY is /dev/pts/4
2018/12/05 05:05:04 socat[2687] N PTY is /dev/pts/5
这意味着我可以将/ dev / pts / 4和/ dev / pts / 5用于端口(注意:这是socat随机给出的,我不知道为什么)
,然后我尝试使用python与/ dev / pts / 4进行通信,并且运行良好,然后我将Java与jSerialComm库一起使用,无法连接到/ dev / pts / 4,甚至无法列出任何端口。
SerialPort sp=SerialPort.getCommPort("/dev/pts/4");
System.out.println(sp.isOpen());
我的Java代码不断返回false。 任何对此的回应,我将不胜感激。
谢谢
答案 0 :(得分:1)
执行SerialPort sp=SerialPort.getCommPort("/dev/pts/4");
后,您将获得控制该端口的对象。但是,在打开端口之前,它仍然是关闭的。这是通过执行sp.openPort();
完成的。然后,您将看到运行sp.isOpen();
时应返回true。
如果您需要进一步的帮助,请参见here。