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
[29179] Re:컴포터로 노이즈가 유입 되었을때 어떻게 처리 해야 하나요?
김시환 [godson2] 981 읽음    2004-03-25 23:14
일반적으로 시리얼 포트는 유선으로 연결되어 있을 경우 노이즈가 거의 안들어 오는데
지속적으로 노이즈가 들어 온다면 혹시 무선 데이타를 받는 것인지요?

유선으로 데이타를 받는다면 ComPort1->ReadStr(Str,Count); 이 문구를 써도 문제가
없겠지만 만일 무선을 쓴다면 이런 구문은 좀 위험합니다.

만일 무선 데이타를 받는 것이라면 1바이트씩 받아서 처리하는 방법을 써야 합니다.
일반적으로 무선의 경우 Header 데이타를 가지고 있는데 1바이트씩 처리하면서 헤더 값이
검출 되면 그때 부터 데이타를 버퍼에 저장을 하여야 합니다.
이런경우 일반적으로 버퍼는 링 버퍼 형태를 많이 쓰죠..

그리고 데이타를 받는 부분과 받은 데이타를 처리하는 부분을 나누어서 별도의 쓰레드에서 처리하는
것이 좋을 겁니다. 무선의 경우 계속해서 데이타가 들어오기 때문에 들어 오는 데이타 처리하랴
받은 데이타 처리하랴 좀 바쁠 겁니다. 이럴땐 일을 분담해서 해야 겠죠...

하지만 유선인데도 노이즈가 들어 온다면 그건 선로상에 문제가 있는 경우가 오히려 높을 겁니다.
아니면 데이타가 전송중에 깨지던가 그렇겠죠,, 이럴땐 에러 검출을 해서 데이타를
구분해서 써야 하겠죠,.
시리얼 통신에서 에러 처리는 CRC 를 많이 씁니다.

+ -

관련 글 리스트
29157 컴포터로 노이즈가 유입 되었을때 어떻게 처리 해야 하나요? 강영준 978 2004/03/24
29193     Re:여러분의 열화와 같은 성원으로 해결 했습니다. 강영준 1055 2004/03/26
29192     [답변] 프로그램이 죽는 이유...해미 경험담...아마도 같은 경우.. 정성훈.해미 1571 2004/03/26
29179     Re:컴포터로 노이즈가 유입 되었을때 어떻게 처리 해야 하나요? 김시환 981 2004/03/25
29180         Re:Re:컴포터로 노이즈가 유입 되었을때 어떻게 처리 해야 하나요? 강영준 1041 2004/03/25
29181             Re:Re:Re:컴포터로 노이즈가 유입 되었을때 어떻게 처리 해야 하나요? 김시환 984 2004/03/26
29160     [답변] 예외처리가 필요할 것 같군요 정성훈.해미 1143 2004/03/24
34681         Re:[답변] 예외처리가 필요할 것 같군요 주희 1000 2004/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.