개발/BLE

CC2540 Disconnect the Connection Immediately

FA1976 2016. 7. 1. 14:10

Central과 Peripheral간에 Connection을 해제 하기 위해서는 Terminate API를 사용하는데, 이것을 사용할경우엔 notify를 받아야지만 Connection이 해제 된다.


즉, 이제 더이상 너랑 붙어있기 싫다고 요청했으면 응답을 받은뒤에야 connection 상태를 해제 한다는 것이다.


그러나 사용하기에 따라서는 일방적으로 Connection을 해제 할고 싶을때가 있다.

이때 사용하는 API가 바로 요거다.


HCI_EXT_DisconnectImmedCmd( simpleBLEConnHandle );


이 API는 notify없이 곧바로 disconnect가 된다.


그렇게 되면 문제는 다른 한쪽에서는 계속 connect 상태가 된다.


가령 Connect 상태에서 Central이 일방적으로 Disconnect를 할경우 Peripheral은 계속 Connect 상태에 있게된다. 물론 Timeout이란것이 있기때문에 일정시간동안 뒤에는 timeout 처리가 된다.


Timeout처리의 기본값이 20s 이기 때문에 20s 이내에는 peripheral과 재접속이 안되는 문제점이 생기는데 이때에는 Supervision timeout을 설정 함으로써 해결이 된다.


Supervision timeout 설정에 관해서는 아래 링크를 참조한다.


http://akinokaze.tistory.com/50

'개발 > BLE' 카테고리의 다른 글

BLE 란?  (0) 2016.07.07
약어정리 - octets  (0) 2016.07.07
약어 정리 - MTU  (0) 2016.07.07
CC2540 Timeout Terminate  (0) 2016.07.06
CC2540 Supervision Timeout  (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