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
[68858] Re:Re:시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요?
프로바라기 [] 2031 읽음    2012-12-21 12:14
답변 감사드립니다.
제가 쓰레드를 언급한 이유는 데이터를 못받는 이유가 타이밍때문, 데이터를 다 받아서 처리하기 전에
새로운 데이터가 들어와서 DebugPortRxChar가 호출되는 현상이 아닐까 하는 생각때문이었고요

말씀하신바에 따르면 count값이 들어오는 데이터 타입의 갯수 인가요?
그렇다면  아래와 같이 해보았는데요.. count값이 죄다 0으로만 찍히고  있습니다. ㅜ.ㅜ 따라서 if문은 항상 false

if(count == 6)
{
    memset(&rcv[0], 0, sizeof(rcv));
    DebugPort->Read((void *)&rcv[0], Count);

    sscanf(&rcv[0],"%f%f%f%f%f%f",&data[0],&data[1],&data[2],&data[3],&data[4],&data[5]);
}
else
   Memo->SelText = count;


송신보드의 소스는
sprintf(buf,"%f %f %f %f %f %f",phi,theta,psi,gx,gy,gz);


일반 에뮬레이터로 출력한 데이터 스샷을 첨부합니다.


망치 님이 쓰신 글 :
: 데이터를 수신하는데 있어 쓰레드는 별개의 문제인거 같군요.
:
: 문의하신 소스만 보았을때는 문제가 있는거 같습니다.
: Count가 리턴되는데 sscanf에서는 무조건 0~5까지 배열값을 뿌리게 되어있군요.
: 실질적으로 6바이트가 안들어올수 있는데요.
:
: 만일 Count=2값이 되었을때 0,1 배열값을 뺀 나머지는 쓰레기값으로 뿌려지겠군요...
:
: 이 시점에서 쓰레드를 쓸것인가를 고민하게 되는데
: 만약 6바이트만 들어온다고 보았을때 이 6바이트가 최대 타임아웃이 얼마냐에 따라
: 쓰레드 사용 결정을 할수 있겠네요. 왜냐하면 그 시간동안 데이터가 들어오는거 확인하는동안 다른걸 못하기 때문인거죠.
:
: 타임아웃이 만약 1초로 되어있다면 1초동안 계속적으로 Read하고 6개가 다 받아졌을때 그 루틴을 빠져나오면 되겠네요...
:
: 정확하게 사용하는 프로토콜등을 모르니 여기까지....
:
: 프로바라기 님이 쓰신 글 :
: : rs232방식으로 보드와 통신을 하는중인데요...
: : 일반 다운로드한 프로그램들은 데이터를 잘만 받는데
: : 제가 만든 프로그램에서는 데이터가 앞부분만 들어온다던지 하는 등의
: : 정상적인 데이터를 받을 수 가 없네요..
: :
: : DebugPortRxChar(TObject *Sender, int Count) 함수내에서
: :
: : DebugPort->Read((void *)&rcv[0], Count);으로 데이터를 받고
: : sscanf(&rcv[0],"%f%f%f%f%f%f",&data[0],&data[1],&data[2],&data[3],&data[4],&data[5]);
: : 으로 데이터를 변환 추출하고 있는데 쓰레기 값도 많이 들어오고 놓치는 데이터도 많고요
: : 조언좀 부탁드립니다.

+ -

관련 글 리스트
68850 시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요? 프로바라기 1718 2012/12/20
68872     Re:시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요? 프로그램초짜 2094 2012/12/24
68851     Re:시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요? 망치 2034 2012/12/20
68858         Re:Re:시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요? 프로바라기 2031 2012/12/21
68859             Re:Re:Re:시리얼통신을 하기위해서는 꼭 쓰레드를 써야 하는 건가요? 망치 2034 2012/12/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.