Q&A

  • 주기 2ms 직렬 데이터 받아서 실시간으로 그림 그리기
안녕하십니까?
질문드립니다. 초보입니다.
우선 질문은 두가지 입니다.

1. 장비에서 PC로 데이터를 보냅니다.
시리얼로 좌악 보내는데 주기는 2ms이고 hex data를 보냅니다.
보내고 받고 저장하는데는 성공했습니다만,
저장을 해 놓고 보니까  저장한 파일 맨 앞 뒤에
아래와 같은 것이 있는데, 저장할 때 이 부분을 어떻게 삭제하나요?

{\rtf1\ansi\ansicpg949\deff0\deflang1033\deflangfe1042{\fonttbl{\f0\fnil\fcharset129 Default;}}
\viewkind4\uc1\pard\lang1042\f0\fs16
  :
중략
  :
\par }

2. 1번과 같은 환경으로, 2ms 주기로 데이터를 받습니다.
그런데 실시간으로 그래프를 그려야 합니다.
델파이에 포함되어 있는 chart로 그리기엔 시간이 모자랄 것이라고들 하시는데
무슨 방법이 제일 좋을까요, 가이드 좀 부탁드립니다.

감사합니다.

참, 통신 라이브러리는 ComPort v2.64 델7 용을 사용했습니다.
아주 기본적인 것만 프로그램 했죠.
2  COMMENTS
  • Profile
    이준희 2003.11.29 23:42
    안녕하세요.
    저도 잘 모르지만, 비슷한 경험이 있어서 한 글 올립니다. ^^
    실시간으로 그래프를 그리기는 어려울 것으로 생각됩니다. 어느 정도 시간차이를 두셔야 할 것입니다. 왜냐하면, Serial컴포넌트도 내부적으로는 read,write스레드로 구성되어 있는데, win2000의 OS가 리얼타임이 아닌 선점형이기 때문에 가끔씩 장비(?)에서 보낸 데이터를 잃어 버리는 경우가 있습니다. 그러니깐, Serial컴포넌트의 내부버퍼가 적당한 크기를 확보하지 않는 이상은 버퍼가 가득 채워진 상태에서 추가적인 장비의 데이터가 들어오면, 데이터를 잊어버리게 됩니다.
    여러가지 경우가 있을 수 있겠지만, 생각나는 것만 간단히 적었습니다. 혹시 잘못된 점이 있으면, 지적하여 주십시요. 그럼~~ 꾸벅.
  • Profile
    박임성 2003.11.29 21:12
    제 생각에는 장비랑 통신을  하신다면
    장비 메뉴얼에 프로토콜 메뉴얼이 있을것 같네요

    거기 에  보시면  아마두 스타트 어드레스<stx> 와 엔드 어드레스<etx>를 규정해 놓았을 것 같네요.. 메뉴얼 프로토콜에 맞쳐 짜시는게 어떨지하구요
    만약 메뉴얼이 없다면  받으신 데이터에 일정 형식이 있을겁니다.
    그걸 보고 데이터 외에는 짤라 내시는게 좋을것 같습니다.
    저같은경우는 스타트 어드레스 값이  나오면 데이터를 문자나 바이트로 옮겨놓고 마지막 어드레스 까지 쭉 옮김니다. 그래서 확인 하구 이상없으면저장하구요 이상이 생기면 다시 체크 하는식으로 했거든요.

    아마두 장비 메뉴얼에 있지 않을까 생각합니다.

    2번 질문에 간에서는 저두 아마 힘들지 않을까 생각 합니다.
    그럼 ...

    조그나마 도움이 됐으면좋겟습니다.