From: injun.yang Date: Tue, 23 Oct 2018 00:55:48 +0000 (+0900) Subject: Implement interface to set advertise Tx power level X-Git-Tag: accepted/tizen/unified/20190801.025406~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a901c7a2f47de3bd1cb0af9fc4ea0a1550db57e8;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git Implement interface to set advertise Tx power level [Model] All [BinType] AP [Customer] OPEN [Issue#] N/A [Request] Internal [Occurrence Version] N/A [Problem] n/a [Cause & Measure] Set advertise Tx power level that received from application [Checking Method] n/a [Team] Basic Connection [Developer] Injun Yang [Solution company] Samsung [Change Type] Specification change Change-Id: If8c17d1da8c7009886cd446d09cc361f48a70bc0 Signed-off-by: DoHyun Pyun Signed-off-by: injun.yang --- diff --git a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c index 66ecf4a..2e47f46 100644 --- a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c +++ b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c @@ -989,7 +989,7 @@ int _bt_set_custom_advertising(const char *sender, int adv_handle, if (enable) { /* Set Advertising parameters to Stack */ result = adapter_ble_multi_adv_update(server_instance, params->interval_min, params->interval_max, - params->type, BT_ADV_DEFAULT_CHANNEL_MAP, BT_ADV_DEFAULT_TX_POWER, BT_ADV_DEFAULT_TIMEOUT); + params->type, BT_ADV_DEFAULT_CHANNEL_MAP, params->tx_power_level, BT_ADV_DEFAULT_TIMEOUT); if (result != OAL_STATUS_SUCCESS) { BT_ERR("OAL API adapter_ble_multi_adv_update Fail %d", result); return BLUETOOTH_ERROR_INTERNAL; diff --git a/bt-service-adaptation/services/bt-request-handler.c b/bt-service-adaptation/services/bt-request-handler.c index 5db542b..358bb26 100644 --- a/bt-service-adaptation/services/bt-request-handler.c +++ b/bt-service-adaptation/services/bt-request-handler.c @@ -2022,9 +2022,9 @@ int __bt_bluez_request(int function_name, __bt_service_get_parameters(in_param4, &use_reserved_slot, sizeof(gboolean)); - BT_DBG("bluetooth_advertising_params_t [%f %f %d %d]", + BT_DBG("bluetooth_advertising_params_t [%f %f %d %d %d]", adv_params.interval_min, adv_params.interval_max, - adv_params.filter_policy, adv_params.type); + adv_params.filter_policy, adv_params.type, adv_params.tx_power_level); result = _bt_set_custom_advertising(app, *adv_handle, enable, &adv_params, use_reserved_slot); if (result != BLUETOOTH_ERROR_NONE) { diff --git a/bt-service/bt-request-handler.c b/bt-service/bt-request-handler.c index 53de4ba..84d2370 100644 --- a/bt-service/bt-request-handler.c +++ b/bt-service/bt-request-handler.c @@ -613,9 +613,9 @@ int __bt_bluez_request(int function_name, __bt_service_get_parameters(in_param4, &use_reserved_slot, sizeof(gboolean)); - BT_DBG("bluetooth_advertising_params_t [%f %f %d %d]", + BT_DBG("bluetooth_advertising_params_t [%f %f %d %d %d]", adv_params.interval_min, adv_params.interval_max, - adv_params.filter_policy, adv_params.type); + adv_params.filter_policy, adv_params.type, adv_params.tx_power_level); result = _bt_set_custom_advertising(sender, adv_handle, enable, &adv_params, use_reserved_slot); break; diff --git a/bt-service/bt-service-adapter-le.c b/bt-service/bt-service-adapter-le.c index ff39a67..064894f 100644 --- a/bt-service/bt-service-adapter-le.c +++ b/bt-service/bt-service-adapter-le.c @@ -488,14 +488,18 @@ int _bt_set_custom_advertising(const char *sender, int adv_handle, params->type == BLUETOOTH_ADV_NON_CONNECTABLE) return BLUETOOTH_ERROR_NOT_SUPPORT; + if (params->tx_power_level > 1 || + params->tx_power_level < -127) + return BLUETOOTH_ERROR_INVALID_PARAM; + min = params->interval_min / BT_ADV_INTERVAL_SPLIT; max = params->interval_max / BT_ADV_INTERVAL_SPLIT; ret = g_dbus_proxy_call_sync(proxy, "SetAdvertisingParameters", - g_variant_new("(uuuui)", min, max, + g_variant_new("(uuuuii)", min, max, params->filter_policy, params->type, - slot_id), G_DBUS_CALL_FLAGS_NONE, - -1, NULL, &error); + params->tx_power_level, slot_id), + G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); if (error) { BT_ERR("SetAdvertisingParameters Fail: %s", error->message); @@ -507,6 +511,7 @@ int _bt_set_custom_advertising(const char *sender, int adv_handle, adv_params.interval_max = params->interval_max; adv_params.filter_policy = params->filter_policy; adv_params.type = params->type; + adv_params.tx_power_level = params->tx_power_level; if (ret) g_variant_unref(ret); diff --git a/include/bluetooth-api.h b/include/bluetooth-api.h index 40ff4e9..af81b14 100644 --- a/include/bluetooth-api.h +++ b/include/bluetooth-api.h @@ -584,6 +584,7 @@ typedef struct { float interval_max; guint8 filter_policy; guint8 type; + int tx_power_level; } bluetooth_advertising_params_t; /**