나는 매초마다 거리를 출력 할 수 있도록 간단한 수중 음파 탐지기 프로젝트를 가지고 있습니다. 내 arduino와 통신하기 위해 UsbSerial을 사용하는 Android 앱을 구현했습니다. 지금까지는 데이터를 수신 할 수 있었지만 수신 한 데이터는 정확했지만 문제는 값이 제대로 전송되지 않는 경우입니다. 여기 샘플 I 수신 출력 : 생성하는 코드 여기안드로이드 앱이 Arduino와 동기화되지 않았습니다. 시리얼 통신
data: 7
data: 1
data:
data: 71
하고 출력 :
- 라인 1 :
그래서 제 생각에 여기에이 문제가 & 2는 단지 한 줄이어야합니다.private UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() { @Override public void onReceivedData(byte[] arg0) { try { String data = new String(arg0, "UTF-8"); System.out.println("data: " + data); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } };
71
- 3 행이 내 앱으로 존재하지 않아야합니다. 열창은
onReceivedData
을 듣고 arduino는 항상 무언가를 보냅니다.
도움을 주시면 감사하겠습니다.
이것은 print 데이터()의 일을하는 방식이 마지막 데이터 조각에 대해 호출되지 않기 때문에 입력을 매칭하기 위해 * \ n *을 구분 기호로 사용해야합니다. 새로운 입력이 도착하면 또한,'bufferSize'가 *'buffer'의 크기를 초과하면 어떻게 될까요? –
@PatrickTrentin 데이터를 직렬 포트에서 전달할 때 버퍼 크기를 초과 할 수있는 방법이 없지만 사용자 의견이 완벽하게 유효하며 해당 상황도 처리해야합니다. 감사 – pms