Это мой код:
package test1;
/**
*
* @author ECS
*/
import com.fazecast.jSerialComm.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) throws IOException {
SerialPort ports[]=SerialPort.getCommPorts();
System.out.println("Select a port: ");
int i=0;
for(SerialPort port:ports){
System.out.println(i++ +". "+ port.getSystemPortName());
}
Scanner s=new Scanner(System.in);
int choosenport=s.nextInt();
SerialPort port=ports[choosenport-1];
if(port.openPort())
{
System.out.println("Succesfully open port: ");
}else{
System.out.println("Unable to open port!");
return;
}
port.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 0, 0);
String newdata=String.valueOf(port.getInputStream());
Scanner data=new Scanner(newdata);
System.out.println(data);
while(data.hasNextLine()){
System.out.println(data.nextLine());
}
}
}
, и это вывод моего последовательного монитора в Arduino IDE. Вывод arduino
Вывод моей java-программы такой:
Select a port:
0. COM1
1. COM23
1
Succesfully open port:
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
com.fazecast.jSerialComm.SerialPort$SerialPortInputStream@1405ef7
На самом деле я понятия не имею, почему это результат.
Он успешно открывает порт, но по какой-то причине не выводит то, что выводит последовательный монитор Arduino.Я пытался изменить вывод последовательного монитора Arduino на цифры, но все равно всегда получал один и тот же результат.Я надеюсь, что кто-то может просветить меня об этом.Он работает нормально, но вывод для меня настоящая загадка.Я начинающий, когда дело доходит до программирования, и я только что столкнулся с этой библиотекой jSerialComm несколько дней назад.Буду очень благодарен за любые предложения.