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
[67335] Re:Re:시리얼 통신에서 메세지 송수신 관리 및 구조를 어떻게 하면 좋을까요?
파라도사 [paradosa] 1455 읽음    2012-05-25 20:56
답변 매우 감사드립니다.


송신영 님이 쓰신 글 :
: 1. 크리티컬섹션으로 막아도 충분합니다.
: 2. 메시지큐를 사용한다면 통신 부분을 크리티컬 섹션으로 막는것이 아니라
:    큐 자체를 크리티컬섹션으로 막아서 넣고 빼고 하는 부분만 신경쓰면됩니다.
: 3. 음..
: 4. 네 당근 가능합니다만 크리티컬 섹션은 동작이 아주 짧은 시간에 이루어지는 부분을 감싸야합니다.
:    시간이 오래 걸리는 함수를 크리티컬 섹션으로 감싸면 대략 난감...
:    이럴 경우에는 다른 방식을 생각해 보세요. 
:
: 파라도사 님이 쓰신 글 :
: : 시리얼통신을 사용해서 메세지를 시스템간에 송수신 (A시스템 <---> B시스템)하려고 합니다.
: : A와 B시스템 중에서 B시스템 해당하는 개발을 하고자 합니다.
: :
: : 송수신 구조는 3가지가 공존합니다.
: :
: : 첫째는 메세지 수신 후 바로 ACK메세지로 응답
: : 수신쓰레드에서 메세지를 수신해서 SentEvent를 통해서 콜백함수에 수신데이터를 넘깁니다.
: : 이벤트콜백함수에서 수신된 해당 메시지를 처리한 후에 결과를 ACK형태로 응답을 해 줍니다.
: :
: : 두번째는
: : 수신쓰레드를 통해 요청메시지를 메인윈도우의 이벤트등록 함수에서 수신한 후에 새로운 메세지를 생성하여 송신후 ACK를 받고,
: : 그리고 나서 처음요청메세지에 대한 응답을 송신합니다. 아래의 그림에서 B시스템에 해당됩니다.
: :
: : [아래 참조]
: : A시스템 -----B 시스템
: : 1      ---->
: :       <---- 3 (메세지 생성)
: : 4      ---->
: :       <---- 2 (1번 메세지 응답)
: :
: : 세번째는
: : 프로세스 안에서 타이머나 화면 버튼 등의 이벤트에 의해서 메세지를 생성하여 송신하고 응답을 수신하여 처리합니다.
: :
: : 이상의 3가지 형태의 송수신 통신 공존하는데 이를 구현하는 적합한 송수신 구조는 어떤게 좋을까요?
: :
: : 현재, 아래와 같은 문제가 있습니다.
: :
: : [문제점]
: : 1. 열려 있는 시리얼포트에 동시에 Write하는 경우가 발생합니다.
: :   => 크리티컬 섹션 등의 방법을 사용해서 막으면 될까요? (메인프로세스 1개, 수신쓰레드 1개입니다.)
: :
: : 2. 만약에, 메세지 큐같은 메세지관리 방법이 필요하다면 어떤 구조로 설계를 해야 할까요?
: :
: : 3. 아니면, 현재 구조에서 동기화 등의 방법을 추가/보강하여 위의 3가지 형태의 송수신을 해결할 수 있을까요?
: :
: : 4. 별도의 질문으로, 하나의 프로세스 안에서(추가의 쓰레드는 없는 경우) 어떤 함수가 동시에 수행되는 경우가
: :    발생할 때, 이를 크리티컬섹션으로 막아서 한번에 한번씩(그 함수가 수행이 완료된 후에 호출되어 실행되게)만
: :    호출이 될 수 있게 할 있나요?
: :
: : 질문이 좀 많고 어려울 수 있는데, 조그만 도움일지라도 도움 부탁드립니다.
: : 감사합니다.

+ -

관련 글 리스트
67312 시리얼 통신에서 메세지 송수신 관리 및 구조를 어떻게 하면 좋을까요? 파라도사 1408 2012/05/24
67314     Re:시리얼 통신에서 메세지 송수신 관리 및 구조를 어떻게 하면 좋을까요? 송신영 1400 2012/05/25
67335         Re:Re:시리얼 통신에서 메세지 송수신 관리 및 구조를 어떻게 하면 좋을까요? 파라도사 1455 2012/05/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.