타이머 이상 동작보다는
로직(소스코드) 상의 문제가 아닌가 합니다.
1번째 요청을 보내고
특정 작업을 한 후
2번째 요청을 보내실건데
작업을 하는 로직에서
Timer1->Enabled = true 로 하는 조건을 확인 해 보시기 바랍니다.
Rx처리가 정상적으로 안되었는데
Timer1->Enabled = true를 살리는 부분이 있는지 확인 해보시는 것이
어떠한지요.
newhuni 님이 쓰신 글 :
:
: 장비와 통신할 때 타이머를 사용해서 주기적으로 통신합니다.
:
: 타이머 이벤트 함수에서 TX패킷을 보내고 "Timer1->Enabeld = false"를 하여 타이머를 죽입니다.
:
: 그리고 다른 일을 수행하고 다시 "Timer1->Enabled = true"하여 TX패킷을 보내게 되어 있습니다.
:
: 그런데 가끔 Timer1이 중지않고 한번정도 살아있는 것 같습니다.
:
: 같은 프로그램을 오랫동안 사용하는데 이런적은 없었는데 작년에 중국쪽 현장에서 가끔 발생합니다.
:
: 통신 로그 기록을 보면 정상상태는 아래와 같이 TX,RX 반복입니다.
: TX(장비 1상태 요청) -> 정상
: RX(장비 1상태 응답) -> 정상
:
: 그런데 가끔 아래와 같이 TX, TX, RX가 되버리는 경우가 발생합니다.
: TX(장비 1상태 요청)
: TX(장비 2상태 요청)
: RX(장비 1상태 & 장비 2상태 값이 깨져서 수신됨)
:
: "Timer1->Enabled = false"를 해도 중단되지 않는 경우도 있나요?
: 혹시 유 경험자 계시면 조언 부탁드립니다.
:
:
:
|