C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50108] Re:Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때...
또아리 [sky4242] 1910 읽음    2007-07-27 16:45
지식이 짧지만 사족을 달아봅니다. 저렇게 쓰면 리턴은 어떻게 오나요? 저것도 일종의 프로토콜인데..리턴 해주는 값으로 마지막인지 여부를 판단 하시면 됩니다. ETX다음에 다시 리턴해주는 chk[1],chk[0]이 리턴으로 들어온다면 쩡이님 말대로 ETX다음에 2Byte가 들어왔는지 검사를 하시면 되구요...
프로토콜을 자세히 알지 못하니 자세한 답변은 드리기 어려우나...2가지 방법이 있을듯 합니다. 
1. 쩡이님 말대로..리턴되는 데이터의 종료신호를 체크하고  다들어왔는지 여부를 판단하고 다 들어오지 않았다면 임시 버퍼에 더하면서 저장하고 종료신호가 들어올때까지 Sum해서  다들어오면 그 때 처리하는방법..과
2. 일정시간동안 계속 검사를 하는방법입니다.. 일정시간뒤에 데이터가 다 들어왔는지 여부 판단....다 들어왔다면 버퍼에 저장 아니라면 계속 Waiting...

2번째 방법이 편하긴 하지만  통신의 정밀도를 요하는곳에서는 문제가 될 수 있습니다.

쩡이 님이 쓰신 글 :
: cport는 사용해본적은 없는데요.
: Write 데이터를 보니 Return 데이터도 데이터종료신호인 ETX 다음에
: 체크데이터가 2byte 더 들어오는 것으로 보입니다.
:
: 이벤트가 발생할 때마다 들어오는 데이터를 더하면서 검사하다가
: ETX 다음에 2byte 더 들어오면 그 때 처리하는거죠.
: 저는 이렇게 사용합니다만...헤헷
:
:
:
: 너브 님이 쓰신 글 :
: : 안녕하세요...
: : 이번에 cport를 이용해서 시리얼 통신으로 서보모터를 제어하려고 합니다.
: :
: : 시리얼 통신은 첨으이라 그런지 너무나 힘드네요.
: :
: : 질문은...
: : chart cmd[11] = {SOH,'0','0',STX,'0','05',ETX,chk[1],chk[0],'\0'}
: :
: : 위와같은 명령으러 cport를 써주면
: : ComPort1->Write(cmd,10);
: :
: : 서보측에서 data를 보내오면...
: : OnRxChar 이벤트에서 캐랙터를 받아옵니다.
: : 그런데 문제는 받아오는 문자가 적을때는 문제가 되지 않는데
: : 좀 많아질때에는 여러번 끊어서 이밴트를 발생해서 문자를 받아옵니다.
: :
: : 명령어가 많이 보내면 마지막 명령어를 보내기 전에 OnRxChar 이밴트가 발생해서 문자를 받아옵니다.
: :
: : 제가 원하는 것은 하나의 명령어를 보냈을때 그에 대한 답이 다 올때까지 기다렸으면 합니다.
: : 어떻게 해야 되나요?
: : 혹시 OnRxChar 이벤트가 다 끝났다는 신호는 없을까요???
: : (제 짧은 생각이었습니다.)
: :
: : 하나의 명령어에 하나의 답을 받고 싶은데... 명령어에 다른 답의 길이가 다르기 때문에 OnRxChar 이벤트가 1번 이상 발생할 경우 어떻게 처리해야 되나요???

+ -

관련 글 리스트
50101 [질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 너브 1352 2007/07/27
50147     Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 금목암 1569 2007/08/01
50104     Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 쩡이 1538 2007/07/27
50108         Re:Re:[질문] 시리얼 통신 [cport3.10이용]에서 명령어주고 받을때... 또아리 1910 2007/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.