Implement interface to set advertise Tx power level 79/211079/1
authorinjun.yang <injun.yang@samsung.com>
Tue, 23 Oct 2018 00:55:48 +0000 (09:55 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Tue, 30 Jul 2019 00:22:58 +0000 (09:22 +0900)
[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 <dh79.pyun@samsung.com>
Signed-off-by: injun.yang <injun.yang@samsung.com>
bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c
bt-service-adaptation/services/bt-request-handler.c
bt-service/bt-request-handler.c
bt-service/bt-service-adapter-le.c
include/bluetooth-api.h

index 66ecf4a..2e47f46 100644 (file)
@@ -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;
index 5db542b..358bb26 100644 (file)
@@ -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) {
index 53de4ba..84d2370 100644 (file)
@@ -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;
index ff39a67..064894f 100644 (file)
@@ -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);
index 40ff4e9..af81b14 100644 (file)
@@ -584,6 +584,7 @@ typedef struct {
        float interval_max;
        guint8 filter_policy;
        guint8 type;
+       int tx_power_level;
 } bluetooth_advertising_params_t;
 
 /**