Netbeans를 사용하여 arduino Uno와 통신하는 jfx 응용 프로그램을 만들고 있습니다. 내 64 비트 OS X 상자에 RXTX를 설치했는데 제대로 작동하는 것 같습니다. 초기화() 메소드에서 응용 프로그램의 메인 컨트롤러에서직렬 포트가 열린 상태에서 Java 응용 프로그램이 종료되지 않습니다.
나는이 작업을 수행 :
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier("/dev/tty.usbmodem1d1111");
this.serialPort = (SerialPort) portId.open("Box App", 1000);
// this.serialPort.close();
내가 호출하지 않고 응용 프로그램의 유일한 창을 닫을 때이 점을 제외하고 위대한입니다 serialPort.close()
기능, 응용 프로그램/JVM 백그라운드에서 계속 실행됩니다. 컨트롤러의 dispose() 메서드를 재정의하고 Platform.exit()
을 추가하려고했습니다. Platform.setImplicitExit(true);
은 명시 적으로 true로 설정됩니다.
내가 할 수있는 다른 방법이 확실하지 않습니다. 직렬 I/O가 완료되기 전에 사용자가 응용 프로그램을 닫으면 분명히 멈출 것입니다. 응용 프로그램 창이 닫힐 때 강제로 포트를 닫을 수 있습니까?
다른 콜백 이벤트가 있습니까 창을 닫 이벤트를 첨부 도움이 될 것입니다? – chrylis