[android] serial 통신 시 외부장치로부터 send가 늦게 들어오는 문제점

조회수 735회

외부장치와 serial port 연결하여 통신하려고 합니다.

장치로부터 send를 보낼 때 앱에서 receive를 제깍제깍 못받고 지연되거나 놓치는 경우가 있습니다.

예를 들면 1~10까지 데이터를 보냈다고 가정하면

앱에서는 1, 2, 3, 5, 6, 8, 9, 10 이런식으로 띄엄띄엄 끊어져서 옵니다.

메시지 보내는 외부장치 쪽 문제일까요..?

앱 단에서 지연되거나 놓치지 않게 처리하는 방법이나 힌트 있으면 답변 꼭 좀 부탁드리겠습니다.

감사합니다.

  • 한번에 보내는걸 고려해보는걸 어떨까요? ohsangyun 2020.11.13 16:18

1 답변

  • 좋아요

    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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)