페이지

글목록

2016년 2월 10일 수요일

[dialog] DSPS Profile 에서 Connect 신호 추가하기

보통 BLE to UART 모듈들이 BLE가 연결 됐는지를 알려주는 출력 신호를 제공하지요? (다른 모듈을 안써봐서 모르겠네요. ^^)

그런데 저는 이런 기능이 1개 있으면 좋겠다는 생각에 BLE가 연결되고 끊어지는 부분을 여기저기 찾아봐서 알아 냈습니다.

동작은 잘 되더군요.

먼저 연결되는 부분은 다음과 같습니다.

app_sps_device_project.c 의 
void app_connection_func(struct gapc_connection_req_ind const *param)
{
    /*--------------------------------------------------------------
    * ENABLE REQUIRED PROFILES
    *-------------------------------------------------------------*/
    //enable SPS device role or SPS host and set the proper values
    app_sps_enable();
    
    gattc_exc_mtu_cmd();
  GPIO_SetActive(BLE_CON_PORT,BLE_CON_PIN);     // LED ON
  GPIO_SetInactive(BLE_CON1_PORT,BLE_CON1_PIN);  // CON PORT LOW
   
}

그 담으로 끊어지는 부분은 다음과 같습니다.

app_sps_device_project.c 의 
void app_disconnect_func(ke_task_id_t task_id, struct gapc_disconnect_ind const *param)
{
    uint8_t state = ke_state_get(task_id);
  GPIO_SetInactive(BLE_CON_PORT,BLE_CON_PIN);   // LED OFF
  GPIO_SetActive(BLE_CON1_PORT,BLE_CON1_PIN);  // CON PORT HIGH
   if ((state == APP_SECURITY) || (state == APP_CONNECTED)  || (state == APP_PARAM_UPD))
    {
        // Restart Advertising
        app_adv_start();
    }
    else
    {
        // We are not in a Connected State
        ASSERT_ERR(0);
    }
}


이렇게 하면 연결되면 CON Port가 High가 되고, 끊어지면 Con Port가 LOW 가 되서 외부 MCU에서 확인을 하고 BLE로 송수신을 할 수 있습니다.

댓글 없음:

댓글 쓰기