|
일단 타이머 이상 동작은 가능성이 낮다는 거네요.
저도 첨에 같은 부분을 확인해 봤는데 특이사항은 없었습니다.
코드에서는 RX타임아웃이 걸리거나, RX패킷이 수신되고 정상패킷 판정이 나면 "Timer1->Enabled = true" 코드가 실행됩니다.
다른 방법으로는 Timer1을 Enable시킬수가 없거든요.
그런데 통신 로그를 보면 TX가 2번 실행되는게 보여서 혹시 타이머 문제일까 해서 물어본 것입니다.
간단하게 프로그램을 만들어서 어제부터 돌려봤는데 Enable이 false가 안되는 경우는 없었습니다.
음... 좀더 생각해 봐야 겠네요....
조언 감사드립니다. (--)(__)(--)
정성훈.해미 님이 쓰신 글 :
: 타이머 이상 동작보다는
: 로직(소스코드) 상의 문제가 아닌가 합니다.
:
: 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"를 해도 중단되지 않는 경우도 있나요?
: : 혹시 유 경험자 계시면 조언 부탁드립니다.
: :
: :
: :
|