[android] serial 통신 시 외부장치로부터 send가 늦게 들어오는 문제점
조회수 734회
외부장치와 serial port 연결하여 통신하려고 합니다.
장치로부터 send를 보낼 때 앱에서 receive를 제깍제깍 못받고 지연되거나 놓치는 경우가 있습니다.
예를 들면 1~10까지 데이터를 보냈다고 가정하면
앱에서는 1, 2, 3, 5, 6, 8, 9, 10 이런식으로 띄엄띄엄 끊어져서 옵니다.
메시지 보내는 외부장치 쪽 문제일까요..?
앱 단에서 지연되거나 놓치지 않게 처리하는 방법이나 힌트 있으면 답변 꼭 좀 부탁드리겠습니다.
감사합니다.
1 답변
-
시리얼 통신 설정을 하셨나요?
처음 시리얼 통신이 연결 된 후에 baud rates, data bit, parity, stop bit 등을 설정해야 제대로 통신이 될 수 있습니다.
그것이 아니라면 데이터를 받는 input stream 쪽에서 thread 를 통해 read 에 전념하지 않고 다른 일을 하기때문일 수 도 있습니다. 혹시 데이터 받는 코드를 조금 올리실 수 있으면 문제를 푸는데 도움이 될 것 같습니다.
그것도 아니라면 외부장치를 먼저 테스트해봐야할 수 도 있습니다. 외부장치를 앱이 아닌 window 에 연결해서 시리얼 통신하는 프로그램을 깔아 데이터가 잘 들어오는지 확인해보세요.
- 02(start_bit) 10(version) 00 01(length) 33(sequence_number) c0 01(장치번호) 34(msg_id) 01 28(checksum) 03(end_bit) 순으로 포매팅하여 옵니다. sequence_number 값이 순차적으로 들어와야하는데 띄엄띄엄들어오네요.. ssangyongttt 2020.11.12 08:23
- 데이터받는 앱쪽에서 뭔가 많은 작업을 하면서 성능저하일수도 있겠다 생각되는데 그런건 거의없다고 하네요, window 통해서 주고받는 테스트 진행해보도록 하겠습니다. 아이디어 감사합니다! ssangyongttt 2020.11.12 08:25
- 선도 한번 바꿔보시는걸 추천드립니다. 짧은 선으로요 김은기 2020.11.12 15:56
댓글 입력