BLE 연결 해제 후 재광고 타임아웃
- 수동으로 연결을 해제한 경우 10분간 광고 후 연결되지 않는 경우 전원 OFF - 비정상 연결 해제 시(거리가 멀어져서 연결이 끊어진 경우 등) 무제한 광고하며 재연결 대기
This commit is contained in:
@@ -385,18 +385,20 @@ static void adv_restart_handler(struct k_work *work)
|
||||
led_set_state(LED_STATE_ADVERTISING);
|
||||
}
|
||||
|
||||
/*
|
||||
* 연결 해제 후 재광고 정책
|
||||
* - 앱이 연결을 정상 종료(0x13)한 경우만 10분 타임아웃 후 자동 전원 OFF
|
||||
* - 그 외(거리 이탈, 링크 타임아웃, 폰 전원 OFF, 페어링/보안 실패 등)는 재연결 대기를 위해 무제한 광고
|
||||
*/
|
||||
static bool ble_disconnect_reason_uses_unlimited_adv(uint8_t reason)
|
||||
{
|
||||
switch (reason)
|
||||
{
|
||||
case BT_HCI_ERR_CONN_TIMEOUT:
|
||||
case BT_HCI_ERR_LL_RESP_TIMEOUT:
|
||||
case BT_HCI_ERR_TERM_DUE_TO_MIC_FAIL:
|
||||
case BT_HCI_ERR_CONN_FAIL_TO_ESTAB:
|
||||
return true;
|
||||
case BT_HCI_ERR_REMOTE_USER_TERM_CONN: // 0x13 앱이 연결을 정상 종료
|
||||
return false; // → 10분 타임아웃 후 전원 OFF
|
||||
|
||||
default:
|
||||
return false;
|
||||
return true; // 그 외 전부 → 무제한 광고
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user