|
저는 주로 산업제어 프로그램을 다루고 있구요
Intotheblue님의 답변에 전적으로 동의합니다. 제가 주로 쓰는 방법을 설명하자면
onrxchar 이벤트에서 수신처리를 하게 되는데 간혹 전류 메터에서 양식화된 데이타를 보낼때
블록 시작(시작코드)에서 부터 블록 끝(종료코드)까지 한번에 수신되지 않는 경우가 발생합니다.
이럴때는 sleep delay를 사용하는것이아니라 별도 전역변수어레이와 인덱스 변수를 만들어
시작과 종료코드를 분석하여 에레이에 적재하여 종료코드수신시에 해석하여 값을 얻으면 됩니다.
Intotheblue 님이 쓰신 글 :
: 윈도우에서는..
: 명령 -> 대기-> 읽기 식으로 처리하기 보다는..
:
: 이벤트 형태로 처리해서..
: 명령을 주고.. event 가 발생하면 그때 처리하는 형태를 주로 씁니다.
: 그래서 대부분의 경우 sleep등을 줄 필요가 없습니다.
:
: 사람들이 많이 쓰는 cport 같은 경우..
: onrxchar 이라는 이벤트 핸들러가 있어서..
: 수신 데이터의 처리는 이부분에서 하게됩니다.
:
: 즉 명령 -> 이벤트 발생 -> 데이터 처리 순이죠.
:
: 그리고 스레드를 사용해도..
: sleep 으로 지정한 시간 만큼은 대기하게 됩니다.
:
: 스레드에 구체적인 사용법은.. 책을 보시고 연구하셔야 할 내용이고요..
: 짦은 답글로 설명하긴 어려운 부분입니다..
:
:
: 지금 시작 님이 쓰신 글 :
: : 안녕하세요~
: :
: : 제가 전류 메타로부터 전류를 읽어 들이는 프로그램을 하고 잇습니다.
: :
: : 이때 전류 메타가 시리얼 통신으로 타이머를 돌리면서 계속 값을 읽어 뿌려주고 있는데요
: :
: : 헌데 전류메타가 전류를 읽는데 시간이 필요해서 딜레이를 주려고 합니다.
: :
: : 그래서 sleep()과 delay()함수중에 하나를 사용해서 딜레이를 주었는데
: :
: : 이 딜레이되는동안 타이머가 동작을 하지 않는군요....
: :
: : 즉 딜레이를 주긴하지만 타이머는 그대로 계속 동작을 시키고 싶습니다.
: :
: : 방법이 있을까요? 쓰레드로 타이머를 돌리면 가능할 것 같은대 쓰레드는 한번도 안써봐서...
: :
: : 혹시 더 간단한 방법을 알고 계시면 알려주시고 아니면 쓰레드를 사용하여 해당 타이머함수를 돌리는 방법이라도
: :
: : 알려주시면 감사하겠습니다 ㅠ.ㅠ
: :
: : 염치없지만 답변 부탁드릴께요...
|