我在跨平台应用程序中使用jSSC-2.6.0。 Windows计算机(32/64位)上返回的端口列表是正确的,但MacOSX(v10.6和10.7)应用程序不返回任何串行设备。如果我在终端ls /dev/tty.*
中手动查看串行设备,我可以查看三个设备。从jssc示例文件运行以下行不会在同一MAC机器上返回任何内容:
String[] portNames = SerialPortList.getPortNames();
我使用后只能看到一大堆设备,包括终端设备:
String[] portNames = SerialPortList.getPortNames("/dev/", Pattern.compile("tty."));
缺点是它会使机器挂起10秒钟而另一台机器(10.7)会在30秒后没有响应。
有没有办法使用jssc可靠地连接到MAC上的串行设备?
答案 0 :(得分:3)
jSSC使用此regexp
列出Mac上的串行端口:tty.(serial|usbserial|usbmodem).*
如果使用此正则表达式找不到您的设备,则应更改它以获取设备名称。
下一个重要的事情是jSSC尝试打开端口并获取termios
结构以识别真正的串行设备。在描述的情况下,我建议只使用官方和最晚的司机。端口列表功能非常简单,尝试使用某些串口终端在另一个软件上检查此问题。