나는 processing을 사용하고 있으며 직렬 포트로 Arduino에서 입력을 읽었지만 연결이 끊어 질 수 있습니다.이 경우 연결을 다시 열려면 어떻게해야합니까?처리시 직렬 포트를 다시 연결
답변
당신은 일반적으로 시리얼 포트를 더 이상 사용할 수 나타 내기 Serial.java에 의해 슬로우들이 RuntimeException을 잡을 수 있습니다. 그런 다음 catch 블록 내에서 직렬 포트 폴링을 시작할 수 있습니다. 일단 Serial 인스턴스를 다시 인스턴스화 할 수있게되면 포트를 다시 사용할 수 있습니다 (예 : USB 케이블이 다시 연결됨). 그러면 게임을 다시 시작할 수 있습니다.
Serial serial;
boolean serialInited;
void setup() {
initSerial();
}
void draw() {
if (serialInited) {
// serial is up and running
try {
byte b = serial.read();
// fun with serial here...
} catch (RuntimeException e) {
// serial port closed :(
serialInited = false;
}
} else {
// serial port is not available. bang on it until it is.
initSerial();
}
}
void initSerial() {
try {
serial = new Serial(this, Serial.list()[0], BAUD_RATE);
serialInited = true;
} catch (RuntimeException e) {
if (e.getMessage().contains("<init>")) {
System.out.println("port in use, trying again later...");
serialInited = false;
}
}
}
오히려 마다 프레임을 다시 연결하지는 않고, 대신 재 연결 시도의 주파수를 제한하는 카운터를 사용할 수도 있습니다. (예 : 10으로 계산하고 다시 시도하고 필요에 따라 반복하십시오.) 그다지 중요하지 않지만 직렬 포트에서 힘들게 두드리는 것은 내가 아는 것에 의한 예기치 않은 부작용이있을 수 있습니다.
감사합니다 잘 작동합니다,이 같은,하지만 같은 일을합니다. :) – ademar111190
Arduino IDE에서 직렬 포트 모니터를 닫은 다음 [Tools] -> [Serial Port]로 돌아가서 직렬 포트를 다시 선택해야합니다.
케이블을 분리하면 이전에 사용하던 직렬 장치가 제거되기 때문입니다. 리눅스는 윈도우보다 더 잘 처리하지만, 어느 쪽이든, 시리얼 모니터로 혼란을 일으킨다.
USB 케이블을 제거하는 대신 보드의 재설정 단추를 눌러 프로그램을 다시 시작해야합니다.
또한 많은 Arduinos에는 직렬 통신의 자동 재설정 기능인 "기능"이 있습니다. 나는 회피 경로를 here에 게시했다.
감사합니다. 작동하지만 사용자 개입없이 코드가 필요합니다. :) – ademar111190
- 1. 직렬 포트를 통한 OpenSSL
- 2. 직렬 포트가 없을 때 직렬 포트를 에뮬레이트하십시오.
- 3. C의 직렬 포트를 통해 쓰기
- 4. 병렬 포트를 통한 직렬 입력
- 5. 직렬 포트를 설치하는 방법은 무엇입니까?
- 6. C#에서 직렬 포트를 발견하십시오.
- 7. 직렬 포트를 통해 로봇에 액세스
- 8. 직렬 포트를 통한 웹 사이트보기
- 9. 자바 직렬 입출력 : USB 직렬 연결/단절을 강력하게 처리하기
- 10. 요청 처리시 영구 TCP 연결 또는 연결 설정
- 11. .NET에서 직렬 포트를 열 수 없습니다.
- 12. 직렬 포트를 통한 프린터 버퍼 오버플로
- 13. 직렬 포트를 여러 번 열 수 있습니까?
- 14. 직렬 포트를 통해 프로그래밍 방식으로 잔액 인쇄하기
- 15. 호스트 직렬 포트를 VxSim과 함께 사용하려면 어떻게합니까?
- 16. Pyserial로 직렬 포트를 열 때 문제가 발생합니다.
- 17. 직렬 포트를 통해 읽은 데이터 형식을 설정합니까?
- 18. 직렬 포트 닫히지 않습니다. COM 포트를 해제하려고합니다.
- 19. 특정 직렬 포트를 찾는 방법은 무엇입니까?
- 20. Java에서 직렬 포트를 "에코 오프"하는 방법
- 21. 직렬 포트를 통해 데이터를 읽을 수 없습니다.
- 22. Python을 사용하여 직렬 포트를 통해 파일 보내기
- 23. 들어오는 TCP 연결 포트를 가져옵니다
- 24. 대체 포트를 통한 mysql 연결
- 25. mongodb 샤드 포트를 다시 설정합니다.
- 26. Nginx는 포트를 생략하여 다시 작성합니다
- 27. 직렬 포트에서 데이터를 읽은 후 매번 직렬 포트를 지울 수 있습니까?
- 28. Android USB 호스트 - 직렬 연결?
- 29. numpy/scipy를 직렬 ATLAS에 연결
- 30. 소켓 연결 및 직렬 포트 연결을 병렬로 실행해야합니다.
처음에 연결을 설정 한 방법에 어떤 문제가 있습니까? –
예를 들어, USB 케이블을 분리했다가 다시 연결하면 가까운 곳에서 직렬 포트를 다시 연결할 수 없으며 소프트웨어를 다시 열 수 없습니다. – ademar111190
질문에 어떤 것들이 연결을 끊어 버리십니까? (USB 분리 및 기타 해당되는 경우 포함) – ZnArK