コード例 #1
0
ファイル: btm_devctl.c プロジェクト: Emill/android_bluetooth
/*******************************************************************************
**
** Function         BTM_EnableTestMode
**
** Description      Send HCI the enable device under test command.
**
**                  Note: Controller can only be taken out of this mode by
**                      resetting the controller.
**
** Returns
**      BTM_SUCCESS         Command sent.
**      BTM_NO_RESOURCES    If out of resources to send the command.
**
**
*******************************************************************************/
tBTM_STATUS BTM_EnableTestMode(void)
{
    UINT8   cond;

    BTM_TRACE_EVENT ("BTM: BTM_EnableTestMode");

    /* set auto accept connection as this is needed during test mode */
    /* Allocate a buffer to hold HCI command */
    cond = HCI_DO_AUTO_ACCEPT_CONNECT;
    if (!btsnd_hcic_set_event_filter(HCI_FILTER_CONNECTION_SETUP,
                                     HCI_FILTER_COND_NEW_DEVICE,
                                     &cond, sizeof(cond)))
    {
        return (BTM_NO_RESOURCES);
    }

    /* put device to connectable mode */
    if (!BTM_SetConnectability(BTM_CONNECTABLE, BTM_DEFAULT_CONN_WINDOW,
                               BTM_DEFAULT_CONN_INTERVAL) == BTM_SUCCESS)
    {
        return BTM_NO_RESOURCES;
    }

    /* put device to discoverable mode */
    if (!BTM_SetDiscoverability(BTM_GENERAL_DISCOVERABLE, BTM_DEFAULT_DISC_WINDOW,
                                BTM_DEFAULT_DISC_INTERVAL) == BTM_SUCCESS)
    {
        return BTM_NO_RESOURCES;
    }

    /* mask off all of event from controller */
    hci_layer_get_interface()->transmit_command(
      hci_packet_factory_get_interface()->make_set_event_mask((const bt_event_mask_t *)("\x00\x00\x00\x00\x00\x00\x00\x00")),
      NULL,
      NULL,
      NULL);

    /* Send the HCI command */
    if (btsnd_hcic_enable_test_mode ())
        return (BTM_SUCCESS);
    else
        return (BTM_NO_RESOURCES);
}
コード例 #2
0
ファイル: btif_core.c プロジェクト: LeMaker/android-actions
UINT8 btif_enable_test_mode(void)
{
    UINT8   cond;

    BTIF_TRACE_DEBUG0 ("btif_enable_test_mode");
/*
 send = hci_cmd 0xc1a 1 0x3
 send = hci_cmd 0xc05 3 0x2 0x0 0x2
 send = hci_cmd 0x1803 0
 send = hci_cmd 0xc1c 4 0x0 0x2 0x12 0x0
 send = hci_cmd 0xc1e 4 0x0 0x2 0x12 0x0
*/

    if (!btsnd_hcic_write_scan_enable (HCI_PAGE_SCAN_ENABLED|HCI_INQUIRY_SCAN_ENABLED))
    return -1;

    /* set auto accept connection as this is needed during test mode */
    /* Allocate a buffer to hold HCI command */
    cond = HCI_DO_AUTO_ACCEPT_CONNECT;
    if (!btsnd_hcic_set_event_filter(HCI_FILTER_CONNECTION_SETUP,
                                     HCI_FILTER_COND_NEW_DEVICE,
                                     &cond, sizeof(cond)))
     return -1;


    if (!btsnd_hcic_enable_test_mode ())

        return (-1);


    if (!btsnd_hcic_write_pagescan_cfg (0x0200, BTM_DEFAULT_CONN_WINDOW))
    return  -1;

    if (!btsnd_hcic_write_inqscan_cfg(0x0200, BTM_DEFAULT_DISC_WINDOW))

    return  -1;

    return 0;
}