Port.openPort () всегда возвращает false - PullRequest
0 голосов
/ 14 июня 2019

Привет! Я пытаюсь отправить данные из весеннего загрузочного приложения, чтобы показать их в сериале Arduino. Я пытался написать код, основанный на некоторых учебниках, которые я нашел в интернете. Когда я запускаю приложение, я не получаю сообщение об ошибке и выбрал порт.openPort () всегда возвращает false и ничего в возвращаемом последовательном портале всегда отключает пакет весенней загрузки

пакет com.example.databasedemo;

import com.fazecast.jSerialComm.SerialPort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.io.PrintWriter;

import static com.fazecast.jSerialComm.SerialPort.getCommPort;


@RestController
public class arduino {



    static com.fazecast.jSerialComm.SerialPort chosenPort;
    @RequestMapping(value="/get")
   public String getdata() throws IOException {

      SerialPort[] portNames =SerialPort.getCommPorts();
       System.out.println(portNames[0]);
       chosenPort =getCommPort("COM4");
       System.out.println(chosenPort.getSystemPortName());

       if(chosenPort.openPort()) {




                   // enter an infinite loop that sends text to the arduino
                   PrintWriter output = new PrintWriter(chosenPort.getOutputStream());

                       output.print("first try");
                       output.flush();
return "send ";

       }
    else {
        // disconnect from the serial port
        chosenPort.closePort();
        return "dis"+chosenPort.getSystemPortName();

    }

    }


}

и это код Arduino:

void setup() {
  // put your setup code here, to run once:
 Serial.begin(9600);
  Serial.setTimeout(50);
}

void loop() {
  // put your main code here, to run repeatedly:
 String text = Serial.readString();
 Serial.println("name= "+text);
 delay(1000);
}
...