Supervision timeout 이란? 슬레이브와 마스터간의 Connection 상태에서 어느한쪽이 일방적으로 전원을 OFF 할경우 Connection 상태를 해제 하기 위한 타임 모니터링이다.
그런데.... 이걸 어떻게 활용해야 하나...
샘플 코드에는
// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_CONN_TIMEOUT 300
저렇게 define이 되어 있기때문에 저 값만 바꾸면 될것 같지만 사실 그렇지 않다..
저것의 용도는 DEFAULT_ENABLE_UPDATE_REQUEST is set to TRUE 로 되어 있어야 하며, function GAPCentralRole_UpdateLink 와 관련된 기능이다
따라서, Connection을 해제 하기 위해서는 아래와 같은 방법으로 해야 만한다.
설정은 마스터쪽의 Init 에 아래와 같이 API를 사용해 주면 되겠다.
GAP_SetParamValue(TGAP_CONN_EST_SUPERV_TIMEOUT, 100);
요렇게 써줘야 마스터쪽의 전원을 OFF시 슬레이브쪽에서 멍때리고 있지 않고 1초뒤에 connection을 해제 할수 있다.
시간의 최소 단위는 10ms 이므로 적절하게 설정 하면 되겠다.
그럼 슬레이브를 일방적으로 전원 OFF 할경우엔 어떻게 해야 하지?
아직 숙제다.... ㅠ
좀더 자세한 내용은 아래 링크를 확인
*참고 : Central = 마스터, Peripheral = 슬레이브
'개발 > BLE' 카테고리의 다른 글
약어정리 - octets (0) | 2016.07.07 |
---|---|
약어 정리 - MTU (0) | 2016.07.07 |
CC2540 Timeout Terminate (0) | 2016.07.06 |
CC2540 Disconnect the Connection Immediately (0) | 2016.07.01 |
CC2541 Peripheral Sample Code (0) | 2016.06.30 |
CC2540/CC2541 에 대해서 (0) | 2016.06.30 |
CC2540 TX Power Control (1) | 2016.06.30 |
CC2540 Direct Connect (0) | 2016.06.30 |