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
[58862] Re:시리얼 포트 수신시 버퍼관련 문제.
장성호 [nasilso] 2120 읽음    2009-10-22 11:49
음...
TCP/IP 통신인경우에 일정 Size이하인 경우
송신한쪽에서 송신한 만큼   한번에 들어오기도 합니다만..

RS232  - Serial통신인경우

송신한 쪽에서  보낸만큼 수신한쪽에서 일정하게 들어오지 않습니다.

송신측에서 다음과 같이 10Byte씩 3번 보냈을경우에
    [10Byte]  + [10Byte] + [10Byte]

수신측에서는...
    [5Byte]+[3Byte]+[7Byte]+[2Byte]+[....]

위와같이 전혀 붙어서 오지 않습니다.
(문론 가끔 송신한 만큼 딱 맡게 들어올수도 있겠죠)

그러니 위와같이 뚝뚝 끝어져 올것을 감안해서 코딩해야 합니다.

STX , ETX를  Unique한걸로 보내던가?
아니면 Packet Length를 고정시키던가?
아니면..Packet - Header에  Length를 명기하던가...

그럼..



Kenzuro 님이 쓰신 글 :
: 안녕하세요.. 초보가 궁금한게 있어서 질문 올립니다~ 많은 관심좀 부탁드립니다.
:
: 궁금한 것은요..
:
: 제가 장비에서 시리얼 통신으로 정보를 받는데요.. 정보가 5개씩 한 세트로 50세트가 들어오도록
:
: 되어있습니다. D라는 정보가 처음 시작이라면 D가 맨 앞에 와줘야 하는데.. 어쩔 때는 정보가 제대로
:
: 들어오다가도 처음 시작정보인 D가 중간에 껴 있는 경우도 있습니다. 값이 이상하게 들어오나 싶어서
:
: 들어오는 정보를 파일로 출력해보니 정보는 제대로 들어옵니다.. 이것저것 생각해본 결과
:
: 버퍼에서 출력되지 않고 남아있던 정보가 한번에 출력되면서 그런거 같은데요.. 이 버퍼를 초기화 해 줄 방법
:
: 이 있을까요? 검색을 해봤는데.. 검색도 코딩도 초보라 그런지 잘 못찾겠더라구요.. 잘 부탁드립니다!!
:
: 컴포트는 TComPort를 사용했습니다.

+ -

관련 글 리스트
58861 시리얼 포트 수신시 버퍼관련 문제. Kenzuro 1139 2009/10/22
58894     답변 감사합니다 ㅜ.ㅜ Kenzuro 1358 2009/10/27
58863     Re:시리얼 포트 수신시 버퍼관련 문제. nansama 2519 2009/10/22
58862     Re:시리얼 포트 수신시 버퍼관련 문제. 장성호 2120 2009/10/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.