2009-06-21 3 views
2

직렬 포트에서 2-4 바이트 패킷으로 들어오는 스트리밍 데이터 (9600 보드)를 그래프로 표시해야합니다. 그래픽을 처리하기 전에 패킷을 처리해야합니다. 현재 그래프 폼에서 응답 문제를 일으키는 전체 패킷마다 이벤트를 발생시키고 있습니다.C에서 스트리밍 데이터를 그래프하는 방법

이 문제에 대한 최선의 해결책이다

:

  • 버퍼 데이터와 시간 간격에서 이벤트에 버퍼링 된 데이터를 인상 (예 : 500 밀리 초)
  • 빌드 버퍼와 버퍼 데이터/빈을 대상 설문 조사를 인스턴스화 할 수
  • 기타 (?)

답변

5

나는 확실히 업데이트 속도를 제한 할 폴링 할 때 버퍼. 이러한 응용 프로그램의 경우 일반적으로 300ms마다 하나씩 충분합니다.

이를 기반으로 직렬 포트를 읽고이를 버퍼에 추가하는 작업자 스레드가 좋은 구현입니다. UI 스레드는 타이머를 사용하여 데이터를 쿼리하고 디스플레이를 업데이트 할 수 있습니다.

별도의 스레드를 사용하면 작업 스레드가 더 높은 우선 순위로 실행될 수 있으므로로드 급상승으로 인해 디스플레이 업데이트가 지연 될 수 있지만 손실되는 데이터는 없습니다.

하나의 추가 트릭은 고정 타이머를 사용하는 것이 아니라 업데이트가 완료된 후에 타이머를 다시 시작하는 것입니다. 따라서, 갱신이 상당한 시간이 걸리는 경우. 높은 시스템로드로 인해 업데이트가 느려지므로로드가 효과적으로 줄어 듭니다.

+0

감사합니다. – cabgef

관련 문제