|
bk 님이 쓰신 글 :
: 초보의 질문입니다.
:
: 시리얼 포트를 통해 신호가 들어오면 한 이벤트가 발생하도록 해놓았습니다.
:
: 그런데 프로그램 수행중 루프안에서 그 이벤트가 발생하기를 기다리도록 하려면(이벤트가 발생하기까지 대기모드로 바꾸거나 루프를 도는 중에도 그 신호에 해당되는 이벤트를 수행하도록 하려면)
: 어떻게 해야하나요?
프로그램 수행중 루프안에서라는 말이. 프로그램에서 자동적으로 돌아가는 메세지 루프인지....
아니면 님이 직접 돌리는 루프인지...(예를 들어서 While인지....) 일단 그것이 중요한데...
보통 책이나 그런데에서도 프로그램을 동적으로 활동하게 하니깐 직접루프안은 아니겠졍 ^^
하여간에 빌더에서는 구체적으로 짜본적은 없지만 API 에서는 이렇게 함니다. 그게 그거지만 ^^
시리얼포트든 소캣통신이든 기본은 스트링의 송수신이거든여 시리얼포트를 통해서 신호가 들어오면
이벤트가 발생하도록 한거까지는 잘하신거구여 님이 말쓴하신 그 신호에 해당되는 이벤트를 수행하도록
하려면 그이벤트가 뭐인지 알아야하잖아여 그래서 어떤 이벤트인지 구분할수 있는 인자가 있어야 합니다.
그 인자값에 따라서 이벤트를 발생시키고 그 이벤트내에서 원하는 코딩을 하시면 됩니다.
음 제애기를 예를 들어서 설명하자면 포트에 신호가 들어오면서 스트링을 주고 받았다면
스트링 -> [1]이거는 이벤트원입니다.... 라든가
[2]이거는 이벤트투입니다^^ 라든가 식으로 스트링이 넘어오면
여기서 앞부분에서 어떤 이벤트인지 갈취해서 알아낸다음에
여기서 또예를 ^^ Event 라는 변수에 1 이라든가 2라는걸 짤라서 넣어주면
switch(Event)
{
case 1 :
이벤트원함수();
break;
case 2 :
이벤트투함수();
break;
}
뭐 이런식에 개념이정... 이것도 여러가지 방법중에 한가지뿐..... 제가 허접해서리...
도움이 되었으면 좋겠네여 그럼 즐프염
|