コード例 #1
0
ファイル: caedrclient.c プロジェクト: darcyg/iotivity-1
CAResult_t CAEDRClientSetCallbacks(void)
{
    OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN");

    // Register for discovery and rfcomm socket connection callbacks
    bt_adapter_set_device_discovery_state_changed_cb(CAEDRDeviceDiscoveryCallback, NULL);
    bt_device_set_service_searched_cb(CAEDRServiceSearchedCallback, NULL);
    bt_socket_set_connection_state_changed_cb(CAEDRSocketConnectionStateCallback, NULL);
    bt_socket_set_data_received_cb(CAEDRDataRecvCallback, NULL);

    // Start device discovery
    CAResult_t result = CAEDRStartDeviceDiscovery();
    if(CA_STATUS_OK != result)
    {
        OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "Failed to Start Device discovery");
        return CA_STATUS_FAILED;
    }

    OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT");
    return CA_STATUS_OK;
}
コード例 #2
0
int rhtf_initialize_bluetooth(const char *device_name) {
	// Initialize bluetooth and get adapter state
	__COMMON_FUNC_ENTER__;
	int ret;
	ret = bt_initialize();
	if(ret != BT_ERROR_NONE) {
		MIN_LOG("Unknown exception is occured in bt_initialize(): %x", ret);
		return -1;
	}

	ret = bt_adapter_get_state(&gBtState);
	if(ret != BT_ERROR_NONE) {
		MIN_LOG("Unknown exception is occured in bt_adapter_get_state(): %x", ret);
		return -2;
	}

	// Enable bluetooth device manually
	if(gBtState == BT_ADAPTER_DISABLED)
	{
		MIN_LOG("[%s] bluetooth is not enabled.", __FUNCTION__);
		return -3;
	}
	else
	{
		MIN_LOG("[%s] BT was already enabled.", __FUNCTION__);
	}

	// Set adapter's name
	if(gBtState == BT_ADAPTER_ENABLED) {
		char *name = NULL;
		ret = bt_adapter_get_name(&name);
		if(name == NULL) {
			MIN_LOG("NULL name exception is occured in bt_adapter_get_name(): %x", ret);
			return -5;
		}

		if(strncmp(name, device_name, strlen(name)) != 0) {
			if(bt_adapter_set_name(device_name) != BT_ERROR_NONE)
			{   
				if (NULL != name)
					free(name);
				MIN_LOG("Unknown exception is occured in bt_adapter_set_name : %x", ret);
				return -6;
			}   
		}
		free(name);
	} else {
		MIN_LOG("Bluetooth is not enabled");
		return -7;
	}

	/* No need to visualize the device when connecting as a client
	//  Set visibility as BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE
	if(bt_adapter_get_visibility(&gVisibilityMode, NULL) != BT_ERROR_NONE)
	{
		LOGE("[%s] bt_adapter_get_visibility() failed.", __FUNCTION__);
		return -11; 
	}

	if(gVisibilityMode != BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE)
	{
		if(bt_adapter_set_visibility(BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, 0) != BT_ERROR_NONE)
		{   
			LOGE("[%s] bt_adapter_set_visibility() failed.", __FUNCTION__);
			return -12; 
		}   
		gVisibilityMode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
	}
	else
	{
		LOGI("[%s] Visibility mode was already set as BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE.", __FUNCTION__);
	}
	*/

	// Connecting socket as a client

	ret = bt_socket_set_connection_state_changed_cb(rhtf_socket_connection_state_changed_cb, NULL);
	if(ret != BT_ERROR_NONE) {
		MIN_LOG("Unknown exception is occured in bt_socket_set_connection_state_changed_cb(): %x", ret);
		__COMMON_FUNC_EXIT__;
		return -9;
	}
	
	ret = bt_socket_set_data_received_cb(rhtf_received_data_cb, NULL);
	if(ret != BT_ERROR_NONE) {
		MIN_LOG("Unknown exception is occured in bt_socket_set_data_received_cb(): %x", ret);
		__COMMON_FUNC_EXIT__;
		return -10;
	}

	__COMMON_FUNC_EXIT__;
	return 0;
}