diff --git a/Kconfig.dependencies b/Kconfig.dependencies index 8f040f87a..6557c01ce 100644 --- a/Kconfig.dependencies +++ b/Kconfig.dependencies @@ -47,10 +47,6 @@ config BT_ID_MAX default 3 if SIDEWALK_DFU default 2 -config BT_APP_IFC - bool "Enable BT app wrapper" - default y if SIDEWALK_BLE - config SIDEWALK_ASSERT bool default SIDEWALK diff --git a/samples/sid_end_device/src/cli/app.c b/samples/sid_end_device/src/cli/app.c index 9d31f69de..5cf63ccd9 100644 --- a/samples/sid_end_device/src/cli/app.c +++ b/samples/sid_end_device/src/cli/app.c @@ -14,12 +14,7 @@ #include #include -#include #include -#include -#if defined(CONFIG_SIDEWALK_DFU) -#include -#endif //defined(CONFIG_SIDEWALK_DFU) LOG_MODULE_REGISTER(app, CONFIG_SIDEWALK_LOG_LEVEL); @@ -124,53 +119,16 @@ static bool gatt_authorize(struct bt_conn *conn, const struct bt_gatt_attr *attr LOG_ERR("Failed to get id of connection err %d", ret); return false; } - char uuid_s[50] = ""; - bt_uuid_to_str(attr->uuid, uuid_s, sizeof(uuid_s)); - LOG_DBG("GATT authorize : conn_id = %d, attr %s", cinfo.id, uuid_s); if (cinfo.id == BT_ID_SIDEWALK) { - if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(SMP_BT_CHR_UUID_VAL)) == 0) { - LOG_WRN("Block SMP_BT_CHR_UUID_VAL in Sidewalk connection"); + if (sid_ble_bt_attr_is_SMP(attr)) { return false; } } #if defined(CONFIG_SIDEWALK_DFU) if (cinfo.id == BT_ID_SMP_DFU) { - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); + if (sid_ble_bt_attr_is_SIDEWALK(attr)) { return false; } } diff --git a/samples/sid_end_device/src/hello/app.c b/samples/sid_end_device/src/hello/app.c index 846376f14..2f178fc5d 100644 --- a/samples/sid_end_device/src/hello/app.c +++ b/samples/sid_end_device/src/hello/app.c @@ -16,12 +16,7 @@ #include #endif -#include #include -#include -#if defined(CONFIG_SIDEWALK_DFU) -#include -#endif //defined(CONFIG_SIDEWALK_DFU) #if defined(CONFIG_GPIO) #include @@ -332,53 +327,16 @@ static bool gatt_authorize(struct bt_conn *conn, const struct bt_gatt_attr *attr LOG_ERR("Failed to get id of connection err %d", ret); return false; } - char uuid_s[50] = ""; - bt_uuid_to_str(attr->uuid, uuid_s, sizeof(uuid_s)); - LOG_DBG("GATT authorize : conn_id = %d, attr %s", cinfo.id, uuid_s); if (cinfo.id == BT_ID_SIDEWALK) { - if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(SMP_BT_CHR_UUID_VAL)) == 0) { - LOG_WRN("Block SMP_BT_CHR_UUID_VAL in Sidewalk connection"); + if (sid_ble_bt_attr_is_SMP(attr)) { return false; } } #if defined(CONFIG_SIDEWALK_DFU) if (cinfo.id == BT_ID_SMP_DFU) { - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); + if (sid_ble_bt_attr_is_SIDEWALK(attr)) { return false; } } diff --git a/samples/sid_end_device/src/sensor_monitoring/app.c b/samples/sid_end_device/src/sensor_monitoring/app.c index 69cef9fa1..0e658a704 100644 --- a/samples/sid_end_device/src/sensor_monitoring/app.c +++ b/samples/sid_end_device/src/sensor_monitoring/app.c @@ -24,12 +24,7 @@ #include #endif -#include #include -#include -#if defined(CONFIG_SIDEWALK_DFU) -#include -#endif //defined(CONFIG_SIDEWALK_DFU) LOG_MODULE_REGISTER(app, CONFIG_SIDEWALK_LOG_LEVEL); @@ -254,53 +249,16 @@ static bool gatt_authorize(struct bt_conn *conn, const struct bt_gatt_attr *attr LOG_ERR("Failed to get id of connection err %d", ret); return false; } - char uuid_s[50] = ""; - bt_uuid_to_str(attr->uuid, uuid_s, sizeof(uuid_s)); - LOG_DBG("GATT authorize : conn_id = %d, attr %s", cinfo.id, uuid_s); if (cinfo.id == BT_ID_SIDEWALK) { - if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(SMP_BT_CHR_UUID_VAL)) == 0) { - LOG_WRN("Block SMP_BT_CHR_UUID_VAL in Sidewalk connection"); + if (sid_ble_bt_attr_is_SMP(attr)) { return false; } } #if defined(CONFIG_SIDEWALK_DFU) if (cinfo.id == BT_ID_SMP_DFU) { - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { - LOG_WRN("block AMA_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); - return false; - } - - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE in DFU connection"); - return false; - } - if (bt_uuid_cmp(attr->uuid, - BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == - 0) { - LOG_WRN("block LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY in DFU connection"); + if (sid_ble_bt_attr_is_SIDEWALK(attr)) { return false; } } diff --git a/subsys/sal/sid_pal/include/bt_app_callbacks.h b/subsys/sal/sid_pal/include/bt_app_callbacks.h index ecceae1fc..219caea21 100644 --- a/subsys/sal/sid_pal/include/bt_app_callbacks.h +++ b/subsys/sal/sid_pal/include/bt_app_callbacks.h @@ -9,8 +9,25 @@ #include #include +#include -#if defined(CONFIG_BT_APP_IFC) +/** + * @brief check if attr is for SMP service + * + * @param attr + * @return true if attr is for SMP + * @return false in othre cases + */ +bool sid_ble_bt_attr_is_SMP(const struct bt_gatt_attr *attr); + +/** + * @brief check if attr is for one of Sidewlak services + * + * @param attr + * @return true if attr is + * @return false in othre cases + */ +bool sid_ble_bt_attr_is_SIDEWALK(const struct bt_gatt_attr *attr); /** * @brief Wrapper for @bt_enable, with reference tracking. @@ -43,6 +60,7 @@ enum sid_ble_id_values { _BT_ID_MAX }; +#if defined(CONFIG_BT_ID_MAX) BUILD_ASSERT(_BT_ID_MAX <= CONFIG_BT_ID_MAX, "Too many BT Ids! increase CONFIG_BT_ID_MAX, to match _BT_ID_MAX"); #endif diff --git a/subsys/sal/sid_pal/src/bt_app_callbacks.c b/subsys/sal/sid_pal/src/bt_app_callbacks.c index 8c08860f0..8061eb88e 100644 --- a/subsys/sal/sid_pal/src/bt_app_callbacks.c +++ b/subsys/sal/sid_pal/src/bt_app_callbacks.c @@ -7,6 +7,10 @@ #include #include #include +#include +#include +#include +#include static uint32_t bt_enable_count = 0; @@ -41,3 +45,40 @@ int sid_ble_bt_disable() return 0; } } + +bool sid_ble_bt_attr_is_SMP(const struct bt_gatt_attr *attr) +{ + if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(SMP_BT_CHR_UUID_VAL)) == 0) { + return true; + } + return false; +} + +bool sid_ble_bt_attr_is_SIDEWALK(const struct bt_gatt_attr *attr) +{ + if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { + return true; + } + if (bt_uuid_cmp(attr->uuid, BT_UUID_DECLARE_128(AMA_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { + return true; + } + + if (bt_uuid_cmp(attr->uuid, + BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { + return true; + } + if (bt_uuid_cmp(attr->uuid, + BT_UUID_DECLARE_128(VND_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { + return true; + } + + if (bt_uuid_cmp(attr->uuid, + BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_WRITE)) == 0) { + return true; + } + if (bt_uuid_cmp(attr->uuid, + BT_UUID_DECLARE_128(LOG_EXAMPLE_CHARACTERISTIC_UUID_VAL_NOTIFY)) == 0) { + return true; + } + return false; +} diff --git a/tests/unit_tests/pal_ble_adapter/Kconfig b/tests/unit_tests/pal_ble_adapter/Kconfig index e0f098324..27a8672fb 100644 --- a/tests/unit_tests/pal_ble_adapter/Kconfig +++ b/tests/unit_tests/pal_ble_adapter/Kconfig @@ -31,9 +31,6 @@ config SIDEWALK_LOG_LEVEL config SIDEWALK_BLE_ADAPTER_LOG_LEVEL default 0 -config BT_APP_IFC - default y - config BT_ID_MAX default 2 diff --git a/tests/unit_tests/sid_ble_advert/Kconfig b/tests/unit_tests/sid_ble_advert/Kconfig index d12d93b37..d2cf5d7e4 100644 --- a/tests/unit_tests/sid_ble_advert/Kconfig +++ b/tests/unit_tests/sid_ble_advert/Kconfig @@ -12,9 +12,6 @@ config SIDEWALK_LOG_LEVEL config BT_ID_MAX default 2 -config BT_APP_IFC - default y - module = SIDEWALK_BLE_ADAPTER module-str = Sidewalk BLE interface source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" diff --git a/tests/unit_tests/sid_ble_connection/Kconfig b/tests/unit_tests/sid_ble_connection/Kconfig index cb92a98f6..157cb191d 100644 --- a/tests/unit_tests/sid_ble_connection/Kconfig +++ b/tests/unit_tests/sid_ble_connection/Kconfig @@ -15,7 +15,4 @@ config SIDEWALK_BLE_ADAPTER_LOG_LEVEL config BT_ID_MAX default 2 -config BT_APP_IFC - default y - source "Kconfig.zephyr"