/*host creat connection*/ tBleStatus ble_host_connect(tBDAddr bdaddr) { tBleStatus ret; if(set_connectable == TRUE) { printf("Client Create Connection\n"); BSP_LED_On(LED0); /* Scan_Interval, Scan_Window, Peer_Address_Type, Peer_Address, Own_Address_Type, Conn_Interval_Min, Conn_Interval_Max, Conn_Latency, Supervision_Timeout, Conn_Len_Min, Conn_Len_Max */ ret = aci_gap_create_connection(SCAN_P, SCAN_L, PUBLIC_ADDR, bdaddr, PUBLIC_ADDR, CONN_P1, CONN_P2, 0, SUPERV_TIMEOUT, CONN_L1 , CONN_L2); if (ret != 0) { printf("Error while starting connection.\n"); Clock_Wait(100); } printf("connection init\n\r"); } set_connectable = FALSE; /*discover device*/ ble_host_discover_char(); return ret; }
/*connection complete callback*/ void GAP_ConnectionComplete_CB(uint8_t addr[6], uint16_t handle) { #if defined (CLIENT_ROLE) || defined (CLIENT_SERVER_ROLE) host_connected = TRUE; connection_handle = handle; printf("Connected to device:\n\r"); for(int i = 5; i > 0; i--) { printf("%02X-", addr[i]); } printf("%02X\n", addr[0]); /*discover device*/ ble_host_discover_char(NULL); #endif }