问题描述
我正在尝试使用JSSC library连接到我的Arduino Nano。我有适用于Mac的驱动程序,并且可以与Arduino编辑器一起使用,并且可以进行所有操作,但是JSSC库无法识别该板。没有错误,只是找不到我的主板。
这是我的代码:
package com.apstamp45.arduino_test;
import jssc.SerialPortList;
/**
* This class is used to comunicate with
* an Arduino through a serial port using
* the JSSC library.
* @see https://github.com/scream3r/java-simple-serial-connector/releases/tag/v2.8.0
* @author apstamp45
* @since 10/20/2020
*/
public class Main {
/**
* The main method.
* @param args The command line arguments.
*/
public static void main(String[] args) {
String[] portNames = SerialPortList.getPortNames();
for (int i = 0; i < portNames.length; i++) {
System.out.println(portNames[i]);
}
}
}
任何建议将不胜感激。
解决方法
在SerialPortList.java第56行中:
PORTNAMES_REGEXP = Pattern.compile("tty.(serial|usbserial|usbmodem).*");
正则表达式不包含Arduino Nano的usb类型(或所有板级idk)。通过将行更改为以下内容来解决此问题:
PORTNAMES_REGEXP = Pattern.compile("tty.((serial|usbserial|usbmodem).*|wchusbserial*)");
这使库可以识别此USB类型。