- CVI 정보나눔(www.cvi.kr)
- 스터디
- 강좌,팁,유용한것
강좌,팁
글 수 116
일정한 시간간격마다 이벤트를 처리할때 타이머를 주로 씁니다.
경우에 따라서 타이머 인터벌을 변경해가며 처리해야 할 때도 있습니다.
예로 시간에따른 온도설정값 변경 스케줄 등을 작성할때
첫 스텝부터 3번째 스텝까지는 1분간격, 4번째부터 6번째는 5분간격, 그이후는 3분간격.....
이런식으로 타이며 인터벌을 변경할시에 ATTR_INTERVAL 이라는 Control Attribute 를 사용하실겁니다.
주로 타이머 함수 내부에서 조건에 부합하면 ATTR_INTERVAL를 사용하여 인터벌을 변경하여 사용하실겁니다.
하지만 잘못 사용하시면 시간이 지남에 따라 해당 타이머는 딜레이가 누적되어 결국엔 원하는 인터벌 기능을 하지 못하게 됩니다.
첨부하는 예제를 실행해보시면 한번에 이해가능하실 겁니다.
첫번째 타이머와 두번째 타이머의 수행 내용은 같고 두번째 타이머만 내부에서 인터벌을 계속하여 1로 지정합니다.
갈수록 시간이 벌어지는것이 보일것입니다.
타이머의 인터벌을 변경해가며 진행해야 하는 코드에서는 주의해야할 점입니다.