From b7a875518da3b19d0dba8419f9e93fe1db97abc6 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:55:26 +0530 Subject: [PATCH 01/47] Update Makefile.am --- src/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Makefile.am b/src/Makefile.am index e710171..92667d0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,6 +27,8 @@ if IS_LIBSYSWRAPPER_ENABLED AM_LDFLAGS = -lsecure_wrapper endif +AM_LDFLAGS += -ltelemetry_msgsender + lib_LTLIBRARIES = libbtrCore.la if LE_ONLY From fa7d62c82449be9bc69c681f16a62f914d08b6ac Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:57:11 +0530 Subject: [PATCH 02/47] Update Makefile.am --- src/bt-ifce/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index 8c75456..19a9f0f 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -45,7 +45,8 @@ AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/inclu if IS_LIBSYSWRAPPER_ENABLED AM_LDFLAGS = -lsecure_wrapper endif - +AM_LDFLAGS += -ltelemetry_msgsender + lib_LTLIBRARIES = libbtrCoreIfce.la libbtrCoreIfce_la_SOURCES = $(BTRCORE_IFCE_SRCS) libbtrCoreIfce_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) From ac1ad6f02008263212fb4d02a92e99254ed7c5d1 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Tue, 3 Feb 2026 18:14:53 +0530 Subject: [PATCH 03/47] Update Makefile.am --- src/Makefile.am | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 92667d0..ef0206e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -24,11 +24,9 @@ BTRCORE_IFCE_INC = -I${top_srcdir}/include/bt-ifce AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec $(BTRCORE_IFCE_INC) if IS_LIBSYSWRAPPER_ENABLED -AM_LDFLAGS = -lsecure_wrapper +AM_LDFLAGS = -lsecure_wrapper -ltelemetry_msgsender endif -AM_LDFLAGS += -ltelemetry_msgsender - lib_LTLIBRARIES = libbtrCore.la if LE_ONLY From 094a1b5748046cef4743cd1c4ed22785fda35a81 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Tue, 3 Feb 2026 18:25:03 +0530 Subject: [PATCH 04/47] Update Makefile.am --- src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index ef0206e..3bf394d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -24,7 +24,7 @@ BTRCORE_IFCE_INC = -I${top_srcdir}/include/bt-ifce AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec $(BTRCORE_IFCE_INC) if IS_LIBSYSWRAPPER_ENABLED -AM_LDFLAGS = -lsecure_wrapper -ltelemetry_msgsender +AM_LDFLAGS = -lsecure_wrapper endif lib_LTLIBRARIES = libbtrCore.la @@ -36,7 +36,7 @@ libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c endif libbtrCore_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) -libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(top_builddir)/src/bt-ifce/libbtrCoreIfce.la +libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(top_builddir)/src/bt-ifce/libbtrCoreIfce.la -ltelemetry_msgsender # Explicitly declare the header file U want to expose out of libbtrCore.so here include_HEADERS = $(top_srcdir)/include/btrCoreTypes.h From c42bffd5b7ce10672a963de8547cf80429c913ac Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Tue, 3 Feb 2026 19:08:57 +0530 Subject: [PATCH 05/47] Update Makefile.am --- src/bt-ifce/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index 19a9f0f..4c95cc5 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -45,12 +45,11 @@ AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/inclu if IS_LIBSYSWRAPPER_ENABLED AM_LDFLAGS = -lsecure_wrapper endif -AM_LDFLAGS += -ltelemetry_msgsender lib_LTLIBRARIES = libbtrCoreIfce.la libbtrCoreIfce_la_SOURCES = $(BTRCORE_IFCE_SRCS) libbtrCoreIfce_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) -libbtrCoreIfce_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(BTRCORE_IFCE_BLUEZ_LIB) $(UDEV_LIB) $(SAFEC_LFLAGS) +libbtrCoreIfce_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(BTRCORE_IFCE_BLUEZ_LIB) $(UDEV_LIB) $(SAFEC_LFLAGS) -ltelemetry_msgsender if BTR_IFCE_GDBUS_BLUEZ5 libbtrCoreIfce_la_CFLAGS += $(GIO_CFLAGS) $(GIO_UNIX_CFLAGS) From da0416924e12f5e0e22720cfe2be48eb1a09eaf3 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Wed, 4 Feb 2026 16:46:47 +0530 Subject: [PATCH 06/47] Update btrCore.c --- src/btrCore.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/btrCore.c b/src/btrCore.c index c97a173..86e08ec 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -36,6 +36,7 @@ #include //for strcnp #include //for error numbers #include +#include /* Ext lib Headers */ #include @@ -3262,6 +3263,9 @@ BTRCore_Init ( stBTRCoreHdl* pstlhBTRCore = NULL; unBTOpIfceProp lunBtOpAdapProp; + char btmgr_name[] = "btmgr"; + t2_init(btmgr_name); + #ifdef RDK_LOGGER_ENABLED const char* pDebugConfig = NULL; const char* BTRCORE_DEBUG_ACTUAL_PATH = "/etc/debug.ini"; From 051a2574e7119a20541de107482cf5167f8b58b6 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Wed, 4 Feb 2026 17:21:39 +0530 Subject: [PATCH 07/47] Update btrCore.c --- src/btrCore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/btrCore.c b/src/btrCore.c index 86e08ec..386a438 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3264,7 +3264,7 @@ BTRCore_Init ( unBTOpIfceProp lunBtOpAdapProp; char btmgr_name[] = "btmgr"; - t2_init(btmgr_name); + t2_init_1(btmgr_name); #ifdef RDK_LOGGER_ENABLED const char* pDebugConfig = NULL; From 94c0bc525ddf5f5d5af90d821bdf84d554c34f87 Mon Sep 17 00:00:00 2001 From: ANANTHMARIMUTHU <49443026+ANANTHMARIMUTHU@users.noreply.github.com> Date: Fri, 6 Feb 2026 22:53:01 +0530 Subject: [PATCH 08/47] Update btrCore.c --- src/btrCore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/btrCore.c b/src/btrCore.c index 386a438..86e08ec 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3264,7 +3264,7 @@ BTRCore_Init ( unBTOpIfceProp lunBtOpAdapProp; char btmgr_name[] = "btmgr"; - t2_init_1(btmgr_name); + t2_init(btmgr_name); #ifdef RDK_LOGGER_ENABLED const char* pDebugConfig = NULL; From 657a1ae6029ca451b3ce8e4258d11d1785246272 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Wed, 11 Feb 2026 21:29:41 +0000 Subject: [PATCH 09/47] btmgr t2 event implementation --- include/logger/btrCore_telemetry.h | 60 +++++++++++++++++++++++++ src/Makefile.am | 5 ++- src/btrCore.c | 8 +++- src/btrCore_telemetry.c | 72 ++++++++++++++++++++++++++++++ 4 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 include/logger/btrCore_telemetry.h create mode 100644 src/btrCore_telemetry.c diff --git a/include/logger/btrCore_telemetry.h b/include/logger/btrCore_telemetry.h new file mode 100644 index 0000000..b522520 --- /dev/null +++ b/include/logger/btrCore_telemetry.h @@ -0,0 +1,60 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2016 RDK Management + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ +/* + * @file btrCore_telemetry.h + * Includes telemetry wrapper utilities for Bluetooth Core and Bluetooth Manager + */ + +#ifndef __BTRCORE_TELEMETRY_H__ +#define __BTRCORE_TELEMETRY_H__ + +/** + * @brief Initialize telemetry with component name + * + * @param name Component name for telemetry identification + */ +void telemetry_init(char* name); + +/** + * @brief Send marker with string value to T2 + * + * @param marker Telemetry marker/event name (use _split suffix for split markers) + * @param value String value to send + */ +void telemetry_event_s(char* marker, char* value); + +/** + * @brief Send marker with integer value to T2 or report count based markers + * + * @param marker Telemetry marker/event name + * @param value Integer value to send + */ +void telemetry_event_d(char* marker, int value); + +/** + * @brief Send marker with double value to T2 + * + * @param marker Telemetry marker/event name (use _split suffix for split markers) + * @param value Double value to send + * + * Usage: telemetry_event_f("HWREV_split", 2.2); + */ +void telemetry_event_f(char* marker, double value); + +#endif /* __BTRCORE_TELEMETRY_H__ */ diff --git a/src/Makefile.am b/src/Makefile.am index 3bf394d..fb47887 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,9 +30,9 @@ endif lib_LTLIBRARIES = libbtrCore.la if LE_ONLY -libbtrCore_la_SOURCES = btrCore.c btrCore_le.c +libbtrCore_la_SOURCES = btrCore.c btrCore_le.c btrCore_telemetry.c else -libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c +libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c btrCore_telemetry.c endif libbtrCore_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) @@ -42,3 +42,4 @@ libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(to include_HEADERS = $(top_srcdir)/include/btrCoreTypes.h include_HEADERS += $(top_srcdir)/include/btrCore.h include_HEADERS += $(top_srcdir)/include/btrCore_service.h +include_HEADERS += $(top_srcdir)/include/logger/btrCore_telemetry.h diff --git a/src/btrCore.c b/src/btrCore.c index 86e08ec..1a61daf 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -36,13 +36,13 @@ #include //for strcnp #include //for error numbers #include -#include /* Ext lib Headers */ #include /* Interface lib Headers */ #include "btrCore_logger.h" +#include "btrCore_telemetry.h" #include "safec_lib.h" /* Local Headers */ @@ -3139,6 +3139,12 @@ btrCore_OutTask ( } else { //This is telemetry log. If we change this print,need to change and configure the telemetry string in xconf server. + char buffer[128]; + snprintf(buffer, sizeof(buffer), "Unsupport BT device detected v%04Xp%04Xd%04X", + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasProductId, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasDeviceId); + telemetry_event_s("BT_INFO_NotSupp_split", buffer); BTRCORELOG_INFO ("Unsupport BT device detected v%04Xp%04Xd%04X\n", pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasProductId, diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c new file mode 100644 index 0000000..dc6cc95 --- /dev/null +++ b/src/btrCore_telemetry.c @@ -0,0 +1,72 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2016 RDK Management + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ +/* + * btrCore_telemetry.c + * Implementation of telemetry wrapper utilities for Bluetooth Core and Bluetooth Manager + */ + +#include +#include + +#include "btrCore_logger.h" +#include "btrCore_telemetry.h" + +/** + * @brief Initialize telemetry with component name + */ +void telemetry_init(char* name) +{ + t2_init(name); +} + +/** + * @brief Send marker with string value to T2 + */ +void telemetry_event_s(char* marker, char* value) +{ + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=\"%s\"\n", marker, value); + T2ERROR t2error = t2_event_s(marker, value); + if (t2error != T2ERROR_SUCCESS) { + BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); + } +} + +/** + * @brief Send marker with integer value to T2 or report count based markers + */ +void telemetry_event_d(char* marker, int value) +{ + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%d\n", marker, value); + T2ERROR t2error = t2_event_d(marker, value); + if (t2error != T2ERROR_SUCCESS) { + BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); + } +} + +/** + * @brief Send marker with double value to T2 + */ +void telemetry_event_f(char* marker, double value) +{ + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%f\n", marker, value); + T2ERROR t2error = t2_event_f(marker, value); + if (t2error != T2ERROR_SUCCESS) { + BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); + } +} From 0d24655cc32c0684e7a9f29907fc3f54d4794a6d Mon Sep 17 00:00:00 2001 From: amarim184 Date: Wed, 11 Feb 2026 22:13:30 +0000 Subject: [PATCH 10/47] btmgr t2 event implementation --- src/btrCore.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/btrCore.c b/src/btrCore.c index 1a61daf..1e8c378 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3112,6 +3112,14 @@ btrCore_OutTask ( BTRCORELOG_INFO ("Unsupported device detected: %s\n", lpstBTDeviceInfo->pcModalias); //This is telemetry log. If we change this print,need to change and configure the telemetry string in xconf server. + char buffer[256]; + snprintf(buffer, sizeof(buffer), "Failed to pair a device name,class,apperance,modalias: %s,%u,%u,v%04Xp%04Xd%04X", + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].pcDeviceName, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32DevClassBtSpec, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui16DevAppearanceBleSpec, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasProductId, + pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasDeviceId); + telemetry_event_s("BT_ERROR_PairFail_split", buffer); BTRCORELOG_ERROR ("Failed to pair a device name,class,apperance,modalias: %s,%u,%u,v%04Xp%04Xd%04X\n", pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].pcDeviceName, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32DevClassBtSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui16DevAppearanceBleSpec, @@ -3270,7 +3278,7 @@ BTRCore_Init ( unBTOpIfceProp lunBtOpAdapProp; char btmgr_name[] = "btmgr"; - t2_init(btmgr_name); + telemetry_init(btmgr_name); #ifdef RDK_LOGGER_ENABLED const char* pDebugConfig = NULL; From 9d54a3059c6c8004199ef54ac843ef8a1a49b856 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 12 Feb 2026 07:02:37 +0000 Subject: [PATCH 11/47] btmgr t2 event implementation --- src/bt-ifce/btrCore_gdbus_bluez5.c | 5 +++++ src/btrCore.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bt-ifce/btrCore_gdbus_bluez5.c b/src/bt-ifce/btrCore_gdbus_bluez5.c index 0b1a0f4..b9f698e 100644 --- a/src/bt-ifce/btrCore_gdbus_bluez5.c +++ b/src/bt-ifce/btrCore_gdbus_bluez5.c @@ -39,6 +39,7 @@ /* Interface lib Headers */ #include "btrCore_logger.h" +#include "btrCore_telemetry.h" /* Local Headers */ #include "btrCore_bt_ifce.h" @@ -5337,6 +5338,8 @@ btrCore_BTStartDiscoveryCb ( BTRCORELOG_INFO("Discovery started successfully\n"); } else { + //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. + telemetry_event_d("BT_ERR_DiscStartFail", 1); BTRCORELOG_INFO("Discovery start failed - %s\n",error->message); } } @@ -5358,6 +5361,8 @@ btrCore_BTStopDiscoveryCb ( BTRCORELOG_INFO("Discovery stopped successfully\n"); } else { + //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. + telemetry_event_d("BT_ERR_DiscStopFail", 1); BTRCORELOG_INFO("Discovery stop failed - %s\n",error->message); } } diff --git a/src/btrCore.c b/src/btrCore.c index 1e8c378..9df03aa 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3119,7 +3119,7 @@ btrCore_OutTask ( pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasProductId, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasDeviceId); - telemetry_event_s("BT_ERROR_PairFail_split", buffer); + telemetry_event_s("BTPairFail_split", buffer); BTRCORELOG_ERROR ("Failed to pair a device name,class,apperance,modalias: %s,%u,%u,v%04Xp%04Xd%04X\n", pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].pcDeviceName, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32DevClassBtSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui16DevAppearanceBleSpec, @@ -3767,6 +3767,8 @@ BTRCore_GetAdapter ( if (!pstlhBTRCore->curAdapterPath) { if ((pstlhBTRCore->curAdapterPath = BtrCore_BTGetAdapterPath(pstlhBTRCore->connHdl, NULL)) == NULL) { //mikek hard code to default adapter for now + //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. + telemetry_event_d("BT_ERR_GetBTAdapterFail", 1); BTRCORELOG_ERROR ("Failed to get BT Adapter"); return enBTRCoreInvalidAdapter; } @@ -5275,6 +5277,8 @@ enBTRCoreRet BTRCore_newBatteryLevelDevice (tBTRCoreHandle hBTRCore) } else { + //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. + telemetry_event_d("BT_ERR_BatteryThreadFail", 1); BTRCORELOG_ERROR("Battery thread creation failed\n"); } return enBTRCoreSuccess; From bdc8eb3eca8bff3f87334bba71899c4bc1abadf1 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 12 Feb 2026 12:30:29 +0000 Subject: [PATCH 12/47] btmgr t2 event implementation --- src/bt-ifce/btrCore_gdbus_bluez5.c | 9 +++++++++ src/btrCore.c | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/bt-ifce/btrCore_gdbus_bluez5.c b/src/bt-ifce/btrCore_gdbus_bluez5.c index b9f698e..b736155 100644 --- a/src/bt-ifce/btrCore_gdbus_bluez5.c +++ b/src/bt-ifce/btrCore_gdbus_bluez5.c @@ -897,6 +897,15 @@ btrCore_BTParseDevice ( apstBTDeviceInfo->bConnected = bluez_device1_get_connected(dev_proxy); BTRCORELOG_INFO ("bConnected = %d\n", apstBTDeviceInfo->bConnected); + { + //This is telemetry log. If we change this print,need to change and configure the telemetry string in xconf server. + char buffer[64]; + snprintf(buffer, sizeof(buffer), "bPaired = %d", apstBTDeviceInfo->bPaired); + telemetry_event_s("BTpair_split", buffer); + snprintf(buffer, sizeof(buffer), "bConnected = %d", apstBTDeviceInfo->bConnected); + telemetry_event_s("BTconn_split", buffer); + } + apstBTDeviceInfo->ui16Appearance = bluez_device1_get_appearance(dev_proxy); BTRCORELOG_INFO ("ui16Appearance = %d\n", apstBTDeviceInfo->ui16Appearance); diff --git a/src/btrCore.c b/src/btrCore.c index 9df03aa..14c4835 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -4478,6 +4478,8 @@ BTRCore_PairDevice ( pDeviceAddress, pairingOp) < 0) { BTRCORELOG_ERROR ("Failed to pair a device\n"); + //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. + telemetry_event_d("BT_ERR_FailToPair", 1); return enBTRCorePairingFailed; } From feb3ab0d257409c2d16b2884cdf5683c3989fe96 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 12 Feb 2026 14:09:17 +0000 Subject: [PATCH 13/47] btmgr t2 event implementation --- src/btrCore.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/btrCore.c b/src/btrCore.c index 14c4835..551903f 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3277,9 +3277,6 @@ BTRCore_Init ( stBTRCoreHdl* pstlhBTRCore = NULL; unBTOpIfceProp lunBtOpAdapProp; - char btmgr_name[] = "btmgr"; - telemetry_init(btmgr_name); - #ifdef RDK_LOGGER_ENABLED const char* pDebugConfig = NULL; const char* BTRCORE_DEBUG_ACTUAL_PATH = "/etc/debug.ini"; From 29a00f694ab4b3dba5d5dc0996efcb1ec5aedb14 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Fri, 13 Feb 2026 09:42:35 +0000 Subject: [PATCH 14/47] btmgr t2 event implementation --- src/btrCore_telemetry.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c index dc6cc95..47a4158 100644 --- a/src/btrCore_telemetry.c +++ b/src/btrCore_telemetry.c @@ -32,6 +32,7 @@ */ void telemetry_init(char* name) { + BTRCORELOG_INFO("T2: Initializing telemetry with component name=\"%s\"\n", name); t2_init(name); } @@ -40,7 +41,7 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=\"%s\"\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -52,7 +53,7 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%d\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -64,7 +65,7 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%f\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From 075eb565235edd9391a4208d424d544ad70190ba Mon Sep 17 00:00:00 2001 From: amarim184 Date: Wed, 18 Feb 2026 07:42:40 +0000 Subject: [PATCH 15/47] btmgr t2 event implementation --- src/btrCore_telemetry.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c index 47a4158..2e9253f 100644 --- a/src/btrCore_telemetry.c +++ b/src/btrCore_telemetry.c @@ -41,7 +41,8 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_INFO("T2: marker=\"%s\", value=\"%s\"\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -53,7 +54,8 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_INFO("T2: marker=\"%s\", value=%d\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -65,7 +67,8 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_INFO("T2: marker=\"%s\", value=%f\n", marker, value); + BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); + BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From f39996784dbbae700c693a74b2116cd010ba8419 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Wed, 18 Feb 2026 11:42:21 +0000 Subject: [PATCH 16/47] btmgr t2 event implementation --- src/btrCore_telemetry.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c index 2e9253f..88df457 100644 --- a/src/btrCore_telemetry.c +++ b/src/btrCore_telemetry.c @@ -41,8 +41,7 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=\"%s\"\n", marker, value); + BTRCORELOG_TRACE("T2: marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -54,8 +53,7 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%d\n", marker, value); + BTRCORELOG_TRACE("T2: marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -67,8 +65,7 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_INFO("T2: marker=\"%s\"\n", marker); - BTRCORELOG_DEBUG("T2: marker=\"%s\", value=%f\n", marker, value); + BTRCORELOG_TRACE("T2: marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From ee2cafe09c622a5769eb8b9fb508edb570232cdc Mon Sep 17 00:00:00 2001 From: amarim184 Date: Wed, 18 Feb 2026 16:54:11 +0000 Subject: [PATCH 17/47] btmgr t2 event implementation --- src/btrCore_telemetry.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c index 88df457..a80efc3 100644 --- a/src/btrCore_telemetry.c +++ b/src/btrCore_telemetry.c @@ -41,7 +41,7 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_TRACE("T2: marker=\"%s\", value=\"%s\"\n", marker, value); + // TRACE log removed as per request T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -53,7 +53,7 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_TRACE("T2: marker=\"%s\", value=%d\n", marker, value); + // TRACE log removed as per request T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -65,7 +65,7 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_TRACE("T2: marker=\"%s\", value=%f\n", marker, value); + // TRACE log removed as per request T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From 87da2c1b1156d29be60f4021b2832b2064b316fb Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 19 Feb 2026 13:07:46 +0000 Subject: [PATCH 18/47] btmgr t2 event implementation --- src/btrCore_telemetry.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/btrCore_telemetry.c b/src/btrCore_telemetry.c index a80efc3..87806e7 100644 --- a/src/btrCore_telemetry.c +++ b/src/btrCore_telemetry.c @@ -41,7 +41,7 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - // TRACE log removed as per request + BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -53,7 +53,7 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - // TRACE log removed as per request + BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -65,7 +65,7 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - // TRACE log removed as per request + BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From 0b349e5c4972b8654a34cda15faed77141c11643 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 19 Feb 2026 17:42:28 +0000 Subject: [PATCH 19/47] btmgr t2 event implementation --- .../btrCore_telemetry.h => telemetry/bt-telemetry.h} | 8 ++++---- src/Makefile.am | 8 ++++---- src/bt-ifce/btrCore_gdbus_bluez5.c | 2 +- src/{btrCore_telemetry.c => bt-telemetry.c} | 8 ++++---- src/btrCore.c | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) rename include/{logger/btrCore_telemetry.h => telemetry/bt-telemetry.h} (92%) rename src/{btrCore_telemetry.c => bt-telemetry.c} (88%) diff --git a/include/logger/btrCore_telemetry.h b/include/telemetry/bt-telemetry.h similarity index 92% rename from include/logger/btrCore_telemetry.h rename to include/telemetry/bt-telemetry.h index b522520..08460f5 100644 --- a/include/logger/btrCore_telemetry.h +++ b/include/telemetry/bt-telemetry.h @@ -17,12 +17,12 @@ * limitations under the License. */ /* - * @file btrCore_telemetry.h + * @file bt-telemetry.h * Includes telemetry wrapper utilities for Bluetooth Core and Bluetooth Manager */ -#ifndef __BTRCORE_TELEMETRY_H__ -#define __BTRCORE_TELEMETRY_H__ + #ifndef __BT_TELEMETRY_H__ + #define __BT_TELEMETRY_H__ /** * @brief Initialize telemetry with component name @@ -57,4 +57,4 @@ void telemetry_event_d(char* marker, int value); */ void telemetry_event_f(char* marker, double value); -#endif /* __BTRCORE_TELEMETRY_H__ */ +#endif /* __BT_TELEMETRY_H__ */ diff --git a/src/Makefile.am b/src/Makefile.am index fb47887..df3c766 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,7 @@ SUBDIRS = bt-ifce INCLUDE_FILES = BTRCORE_IFCE_INC = -I${top_srcdir}/include/bt-ifce -AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec $(BTRCORE_IFCE_INC) +AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include -I${top_srcdir}/include/telemetry -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec $(BTRCORE_IFCE_INC) if IS_LIBSYSWRAPPER_ENABLED AM_LDFLAGS = -lsecure_wrapper @@ -30,9 +30,9 @@ endif lib_LTLIBRARIES = libbtrCore.la if LE_ONLY -libbtrCore_la_SOURCES = btrCore.c btrCore_le.c btrCore_telemetry.c +libbtrCore_la_SOURCES = btrCore.c btrCore_le.c bt-telemetry.c else -libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c btrCore_telemetry.c +libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c bt-telemetry.c endif libbtrCore_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) @@ -42,4 +42,4 @@ libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(to include_HEADERS = $(top_srcdir)/include/btrCoreTypes.h include_HEADERS += $(top_srcdir)/include/btrCore.h include_HEADERS += $(top_srcdir)/include/btrCore_service.h -include_HEADERS += $(top_srcdir)/include/logger/btrCore_telemetry.h +include_HEADERS += $(top_srcdir)/include/telemetry/bt-telemetry.h diff --git a/src/bt-ifce/btrCore_gdbus_bluez5.c b/src/bt-ifce/btrCore_gdbus_bluez5.c index b736155..89a0f81 100644 --- a/src/bt-ifce/btrCore_gdbus_bluez5.c +++ b/src/bt-ifce/btrCore_gdbus_bluez5.c @@ -39,7 +39,7 @@ /* Interface lib Headers */ #include "btrCore_logger.h" -#include "btrCore_telemetry.h" +#include /* Local Headers */ #include "btrCore_bt_ifce.h" diff --git a/src/btrCore_telemetry.c b/src/bt-telemetry.c similarity index 88% rename from src/btrCore_telemetry.c rename to src/bt-telemetry.c index 87806e7..bfb4a77 100644 --- a/src/btrCore_telemetry.c +++ b/src/bt-telemetry.c @@ -25,7 +25,7 @@ #include #include "btrCore_logger.h" -#include "btrCore_telemetry.h" +#include /** * @brief Initialize telemetry with component name @@ -41,7 +41,7 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=\"%s\"\n", marker, value); + BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -53,7 +53,7 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=%d\n", marker, value); + BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -65,7 +65,7 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_INFO("T2: Sending marker=\"%s\", value=%f\n", marker, value); + BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); diff --git a/src/btrCore.c b/src/btrCore.c index 551903f..5df4f5f 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -42,7 +42,7 @@ /* Interface lib Headers */ #include "btrCore_logger.h" -#include "btrCore_telemetry.h" +#include #include "safec_lib.h" /* Local Headers */ From fe5a0e5814fa1860699dd100417e37b81df77756 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 19 Feb 2026 17:57:46 +0000 Subject: [PATCH 20/47] btmgr t2 event implementation --- src/bt-ifce/btrCore_gdbus_bluez5.c | 2 +- src/bt-telemetry.c | 4 ++-- src/btrCore.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bt-ifce/btrCore_gdbus_bluez5.c b/src/bt-ifce/btrCore_gdbus_bluez5.c index 89a0f81..5153099 100644 --- a/src/bt-ifce/btrCore_gdbus_bluez5.c +++ b/src/bt-ifce/btrCore_gdbus_bluez5.c @@ -39,7 +39,7 @@ /* Interface lib Headers */ #include "btrCore_logger.h" -#include +#include "bt-telemetry.h" /* Local Headers */ #include "btrCore_bt_ifce.h" diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index bfb4a77..50a9a6a 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -17,7 +17,7 @@ * limitations under the License. */ /* - * btrCore_telemetry.c + * bt-telemetry.c * Implementation of telemetry wrapper utilities for Bluetooth Core and Bluetooth Manager */ @@ -25,7 +25,7 @@ #include #include "btrCore_logger.h" -#include +#include "bt-telemetry.h" /** * @brief Initialize telemetry with component name diff --git a/src/btrCore.c b/src/btrCore.c index 5df4f5f..c4c6a86 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -42,7 +42,7 @@ /* Interface lib Headers */ #include "btrCore_logger.h" -#include +#include "bt-telemetry.h" #include "safec_lib.h" /* Local Headers */ From f7241c58109d4e1f2646a08f2b6e37493404c97a Mon Sep 17 00:00:00 2001 From: amarim184 Date: Fri, 20 Feb 2026 10:36:47 +0000 Subject: [PATCH 21/47] btmgr t2 event implementation --- src/btrCore.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/btrCore.c b/src/btrCore.c index c4c6a86..bd2e4a3 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3297,6 +3297,9 @@ BTRCore_Init ( BTRCORELOG_INFO ("BTRCore_Init\n"); + char btmgr_name[] = "btmgr"; + telemetry_init(btmgr_name); + if (!phBTRCore) { BTRCORELOG_ERROR ("enBTRCoreInvalidArg\n"); return enBTRCoreInvalidArg; From d63dbe52cf18736b6d6ff359c508b4cba388fc2d Mon Sep 17 00:00:00 2001 From: amarim184 Date: Fri, 20 Feb 2026 13:26:12 +0000 Subject: [PATCH 22/47] btmgr t2 event implementation --- src/btrCore.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/btrCore.c b/src/btrCore.c index bd2e4a3..c4c6a86 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3297,9 +3297,6 @@ BTRCore_Init ( BTRCORELOG_INFO ("BTRCore_Init\n"); - char btmgr_name[] = "btmgr"; - telemetry_init(btmgr_name); - if (!phBTRCore) { BTRCORELOG_ERROR ("enBTRCoreInvalidArg\n"); return enBTRCoreInvalidArg; From bb9a45c25c4e65f19624e05f6cd91de66849cbd2 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Fri, 20 Feb 2026 13:27:54 +0000 Subject: [PATCH 23/47] btmgr t2 event implementation --- src/bt-telemetry.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index 50a9a6a..a2b8e96 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -41,7 +41,6 @@ void telemetry_init(char* name) */ void telemetry_event_s(char* marker, char* value) { - BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=\"%s\"\n", marker, value); T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -53,7 +52,6 @@ void telemetry_event_s(char* marker, char* value) */ void telemetry_event_d(char* marker, int value) { - BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=%d\n", marker, value); T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -65,7 +63,6 @@ void telemetry_event_d(char* marker, int value) */ void telemetry_event_f(char* marker, double value) { - BTRCORELOG_DEBUG("T2: Sending marker=\"%s\", value=%f\n", marker, value); T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From 44f2bbe534436dba887f542c6b1becb350936c70 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Mon, 23 Feb 2026 16:09:22 +0000 Subject: [PATCH 24/47] btmgr t2 event implementation --- unitTest/mock_bt-telemetry.h | 46 ++++++++++++++++++++++++++++++++++++ unitTest/test_btrCore.c | 2 ++ 2 files changed, 48 insertions(+) create mode 100644 unitTest/mock_bt-telemetry.h diff --git a/unitTest/mock_bt-telemetry.h b/unitTest/mock_bt-telemetry.h new file mode 100644 index 0000000..68287b5 --- /dev/null +++ b/unitTest/mock_bt-telemetry.h @@ -0,0 +1,46 @@ + +/* + * mock_bt-telemetry.h + * Mock implementations for telemetry wrapper utilities used in Bluetooth Core and Bluetooth Manager unit tests. + * + * Copyright 2026 RDK Management + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MOCK_BT_TELEMETRY_H +#define MOCK_BT_TELEMETRY_H + +#include + +// Mock implementations for telemetry_event_s and telemetry_event_d + +static inline void telemetry_event_s(char* marker, char* value) { + printf("[MOCK] telemetry_event_s called with marker: %s, value: %s\n", marker, value); +} + +static inline void telemetry_event_d(char* marker, int value) { + printf("[MOCK] telemetry_event_d called with marker: %s, value: %d\n", marker, value); +} + +static inline void telemetry_event_f(char* marker, double value) { + printf("[MOCK] telemetry_event_f called with marker: %s, value: %f\n", marker, value); +} + +#include + +static inline void telemetry_init(char* name) { + printf("[MOCK] telemetry_init called with name: %s\n", name); +} + +#endif // MOCK_BT_TELEMETRY_H diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index a382f36..351182b 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -28,6 +28,8 @@ #include "mock_btrCore_bt_ifce.h" +#include "mock_bt-telemetry.h" + typedef enum _enBTRCoreTaskOp { enBTRCoreTaskOpStart, enBTRCoreTaskOpStop, From 3cd3608b3eaeddfb895cb4b795711f886382863b Mon Sep 17 00:00:00 2001 From: amarim184 Date: Mon, 23 Feb 2026 16:21:01 +0000 Subject: [PATCH 25/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 351182b..4ff5ad8 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -469,8 +469,11 @@ void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapt printf("Before calling BTRCore_GetAdapter, adapter.adapter_number: %d, adapter.pcAdapterPath: %p, adapter.pcAdapterDevName: %p\n", adapter.adapter_number, adapter.pcAdapterPath, adapter.pcAdapterDevName); + BtrCore_BTGetAdapterPath_ExpectAndReturn((void*)hBTRCore->connHdl,NULL,NULL); - + // Expect telemetry_event_d to be called with the error marker and value 1 + telemetry_event_d_ExpectAndReturn("BT_ERR_GetBTAdapterFail", 1); + actual_result = BTRCore_GetAdapter(hBTRCore, &adapter); TEST_ASSERT_EQUAL(expected_result, actual_result); From 645479bbe648234aa45c32d3989e9d4baa575b74 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Mon, 23 Feb 2026 18:17:13 +0000 Subject: [PATCH 26/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 4ff5ad8..97e7c98 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -471,8 +471,6 @@ void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapt BtrCore_BTGetAdapterPath_ExpectAndReturn((void*)hBTRCore->connHdl,NULL,NULL); - // Expect telemetry_event_d to be called with the error marker and value 1 - telemetry_event_d_ExpectAndReturn("BT_ERR_GetBTAdapterFail", 1); actual_result = BTRCore_GetAdapter(hBTRCore, &adapter); TEST_ASSERT_EQUAL(expected_result, actual_result); From 00a7f3b2e657179266befea284d8eea0f3fa9e1d Mon Sep 17 00:00:00 2001 From: amarim184 Date: Mon, 23 Feb 2026 18:28:55 +0000 Subject: [PATCH 27/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 1 + 1 file changed, 1 insertion(+) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 97e7c98..6a8cb89 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -458,6 +458,7 @@ void test_BTRCore_GetAdapter_should_ReturnNotInitialized_when_HandleIsNULL(void) } void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapterPathFails(void) { + telemetry_event_d_Ignore(); stBTRCoreHdl* hBTRCore = malloc(sizeof(stBTRCoreHdl)); stBTRCoreAdapter adapter; enBTRCoreRet expected_result = enBTRCoreInvalidAdapter; From 3b60fc4500b2ba1f353d57d3ff692aa0499a87ea Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 04:37:10 +0000 Subject: [PATCH 28/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 6a8cb89..ea0f981 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -458,7 +458,6 @@ void test_BTRCore_GetAdapter_should_ReturnNotInitialized_when_HandleIsNULL(void) } void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapterPathFails(void) { - telemetry_event_d_Ignore(); stBTRCoreHdl* hBTRCore = malloc(sizeof(stBTRCoreHdl)); stBTRCoreAdapter adapter; enBTRCoreRet expected_result = enBTRCoreInvalidAdapter; @@ -472,6 +471,8 @@ void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapt BtrCore_BTGetAdapterPath_ExpectAndReturn((void*)hBTRCore->connHdl,NULL,NULL); + // Assign telemetry_event_d stub for this test + telemetry_event_d_StubWithCallback(mock_telemetry_event_d); actual_result = BTRCore_GetAdapter(hBTRCore, &adapter); TEST_ASSERT_EQUAL(expected_result, actual_result); @@ -3501,6 +3502,13 @@ _mock_BTGetPairedDeviceInfo3 ( return 0; } + +void mock_telemetry_event_d(char* marker, int value) { + // Example stub: record call, check marker, etc. + // For demonstration, just print or set a flag + // e.g., telemetry_event_d_called = 1; + // No return value for void function +} void test_BTRCore_GetListOfPairedDevices_should_GetPairedDevicesSuccessfully(void) { From b335f9b55dec580d1d965adb42358f4cad63f216 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 05:32:56 +0000 Subject: [PATCH 29/47] btmgr t2 event implementation --- unitTest/mock_bt-telemetry.h | 46 --------------------------------- unitTest/test_btrCore_avMedia.c | 3 +-- 2 files changed, 1 insertion(+), 48 deletions(-) delete mode 100644 unitTest/mock_bt-telemetry.h diff --git a/unitTest/mock_bt-telemetry.h b/unitTest/mock_bt-telemetry.h deleted file mode 100644 index 68287b5..0000000 --- a/unitTest/mock_bt-telemetry.h +++ /dev/null @@ -1,46 +0,0 @@ - -/* - * mock_bt-telemetry.h - * Mock implementations for telemetry wrapper utilities used in Bluetooth Core and Bluetooth Manager unit tests. - * - * Copyright 2026 RDK Management - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MOCK_BT_TELEMETRY_H -#define MOCK_BT_TELEMETRY_H - -#include - -// Mock implementations for telemetry_event_s and telemetry_event_d - -static inline void telemetry_event_s(char* marker, char* value) { - printf("[MOCK] telemetry_event_s called with marker: %s, value: %s\n", marker, value); -} - -static inline void telemetry_event_d(char* marker, int value) { - printf("[MOCK] telemetry_event_d called with marker: %s, value: %d\n", marker, value); -} - -static inline void telemetry_event_f(char* marker, double value) { - printf("[MOCK] telemetry_event_f called with marker: %s, value: %f\n", marker, value); -} - -#include - -static inline void telemetry_init(char* name) { - printf("[MOCK] telemetry_init called with name: %s\n", name); -} - -#endif // MOCK_BT_TELEMETRY_H diff --git a/unitTest/test_btrCore_avMedia.c b/unitTest/test_btrCore_avMedia.c index dc2d5de..494188d 100644 --- a/unitTest/test_btrCore_avMedia.c +++ b/unitTest/test_btrCore_avMedia.c @@ -23,8 +23,7 @@ #include "btrCore_avMedia.h" - -#include "mock_btrCore_bt_ifce.h" +#include "bt-telemetry.h" TEST_FILE("btrCore_avMedia.c") From fbbb5f5b9a2524f76e8892f445a06f72667b8bdb Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 05:40:55 +0000 Subject: [PATCH 30/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index ea0f981..9e8ed38 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -28,8 +28,6 @@ #include "mock_btrCore_bt_ifce.h" -#include "mock_bt-telemetry.h" - typedef enum _enBTRCoreTaskOp { enBTRCoreTaskOpStart, enBTRCoreTaskOpStop, @@ -471,9 +469,7 @@ void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapt BtrCore_BTGetAdapterPath_ExpectAndReturn((void*)hBTRCore->connHdl,NULL,NULL); - // Assign telemetry_event_d stub for this test - telemetry_event_d_StubWithCallback(mock_telemetry_event_d); - + actual_result = BTRCore_GetAdapter(hBTRCore, &adapter); TEST_ASSERT_EQUAL(expected_result, actual_result); @@ -3503,13 +3499,6 @@ _mock_BTGetPairedDeviceInfo3 ( } -void mock_telemetry_event_d(char* marker, int value) { - // Example stub: record call, check marker, etc. - // For demonstration, just print or set a flag - // e.g., telemetry_event_d_called = 1; - // No return value for void function -} - void test_BTRCore_GetListOfPairedDevices_should_GetPairedDevicesSuccessfully(void) { stBTRCoreHdl* hBTRCore = malloc(sizeof(stBTRCoreHdl)); From f2dfe1054ab6357d5a76045021011a46ebc1a8e9 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 05:54:34 +0000 Subject: [PATCH 31/47] btmgr t2 event implementation --- unitTest/test_btrCore_avMedia.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unitTest/test_btrCore_avMedia.c b/unitTest/test_btrCore_avMedia.c index 494188d..dc2d5de 100644 --- a/unitTest/test_btrCore_avMedia.c +++ b/unitTest/test_btrCore_avMedia.c @@ -23,7 +23,8 @@ #include "btrCore_avMedia.h" -#include "bt-telemetry.h" + +#include "mock_btrCore_bt_ifce.h" TEST_FILE("btrCore_avMedia.c") From 99e4f7e0cf5bb84244f5755333bcdf47cc3c4706 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 06:00:56 +0000 Subject: [PATCH 32/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 1 + 1 file changed, 1 insertion(+) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 9e8ed38..1d261c8 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -20,6 +20,7 @@ /* Local Headers */ #include "btrCore.h" #include "btrCore_service.h" +#include "bt-telemetry.h" #include "mock_btrCore_avMedia.h" From 3fddcc1b179e830eb11de98ac491a9a7100371f8 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 07:06:45 +0000 Subject: [PATCH 33/47] btmgr t2 event implementation --- .../support/telemetry_busmessage_sender.h | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 unitTest/support/telemetry_busmessage_sender.h diff --git a/unitTest/support/telemetry_busmessage_sender.h b/unitTest/support/telemetry_busmessage_sender.h new file mode 100644 index 0000000..a20ba4b --- /dev/null +++ b/unitTest/support/telemetry_busmessage_sender.h @@ -0,0 +1,53 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2016 RDK Management + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * Mock header for unit test simulation of telemetry_busmessage_sender.h + */ +#ifndef TELEMETRY_BUSMESSAGE_SENDER_H +#define TELEMETRY_BUSMESSAGE_SENDER_H + +// Minimal type definitions for unit test +#include +#include + +typedef enum { + T2ERROR_SUCCESS = 0, + T2ERROR_FAILURE = 1 +} T2ERROR; + +static inline void t2_init(char* name) { + // Stub: do nothing +} + +static inline T2ERROR t2_event_s(char* marker, char* value) { + // Stub: always return success + return T2ERROR_SUCCESS; +} + +static inline T2ERROR t2_event_d(char* marker, int value) { + // Stub: always return success + return T2ERROR_SUCCESS; +} + +static inline T2ERROR t2_event_f(char* marker, double value) { + // Stub: always return success + return T2ERROR_SUCCESS; +} + +#endif // TELEMETRY_BUSMESSAGE_SENDER_H From 4a838223276195f5dab58ba10ac0cd9c0400bd23 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 08:08:54 +0000 Subject: [PATCH 34/47] btmgr t2 event implementation --- unitTest/support/{ => Untitled}/telemetry_busmessage_sender.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename unitTest/support/{ => Untitled}/telemetry_busmessage_sender.h (100%) diff --git a/unitTest/support/telemetry_busmessage_sender.h b/unitTest/support/Untitled/telemetry_busmessage_sender.h similarity index 100% rename from unitTest/support/telemetry_busmessage_sender.h rename to unitTest/support/Untitled/telemetry_busmessage_sender.h From 5aa2a840f9d02f6e98078867e1525e899caa7189 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 08:29:51 +0000 Subject: [PATCH 35/47] btmgr t2 event implementation --- unitTest/support/Untitled/telemetry_busmessage_sender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unitTest/support/Untitled/telemetry_busmessage_sender.h b/unitTest/support/Untitled/telemetry_busmessage_sender.h index a20ba4b..4faf136 100644 --- a/unitTest/support/Untitled/telemetry_busmessage_sender.h +++ b/unitTest/support/Untitled/telemetry_busmessage_sender.h @@ -15,7 +15,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ +*/ /* * Mock header for unit test simulation of telemetry_busmessage_sender.h */ From f7f90bc45b70895ecbb848ff12fe4f71792226de Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 09:43:30 +0000 Subject: [PATCH 36/47] btmgr t2 event implementation --- include/telemetry/bt-telemetry.h | 10 +++++----- src/bt-ifce/Makefile.am | 2 +- src/bt-telemetry.c | 12 ++++++++---- src/btrCore.c | 4 ++-- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/include/telemetry/bt-telemetry.h b/include/telemetry/bt-telemetry.h index 08460f5..20f3cbf 100644 --- a/include/telemetry/bt-telemetry.h +++ b/include/telemetry/bt-telemetry.h @@ -21,15 +21,15 @@ * Includes telemetry wrapper utilities for Bluetooth Core and Bluetooth Manager */ - #ifndef __BT_TELEMETRY_H__ - #define __BT_TELEMETRY_H__ +#ifndef __BT_TELEMETRY_H__ +#define __BT_TELEMETRY_H__ /** * @brief Initialize telemetry with component name * * @param name Component name for telemetry identification */ -void telemetry_init(char* name); +void telemetry_init(const char* name); /** * @brief Send marker with string value to T2 @@ -37,7 +37,7 @@ void telemetry_init(char* name); * @param marker Telemetry marker/event name (use _split suffix for split markers) * @param value String value to send */ -void telemetry_event_s(char* marker, char* value); +void telemetry_event_s(const char* marker, char* value); /** * @brief Send marker with integer value to T2 or report count based markers @@ -45,7 +45,7 @@ void telemetry_event_s(char* marker, char* value); * @param marker Telemetry marker/event name * @param value Integer value to send */ -void telemetry_event_d(char* marker, int value); +void telemetry_event_d(const char* marker, int value); /** * @brief Send marker with double value to T2 diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index 4c95cc5..661d61e 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -40,7 +40,7 @@ endif endif endif -AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec -I${top_srcdir}/include/bt-ifce $(BTRCORE_IFCE_BLUEZ_INC) +AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec -I${top_srcdir}/include/bt-ifce $(BTRCORE_IFCE_BLUEZ_INC) -I${top_srcdir}/include/telemetry if IS_LIBSYSWRAPPER_ENABLED AM_LDFLAGS = -lsecure_wrapper diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index a2b8e96..5bd2e4e 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -30,8 +30,12 @@ /** * @brief Initialize telemetry with component name */ -void telemetry_init(char* name) +void telemetry_init(const char* name) { + if (name == NULL) { + BTRCORELOG_ERROR("T2: Failed to initialize telemetry - component name is NULL\n"); + return; + } BTRCORELOG_INFO("T2: Initializing telemetry with component name=\"%s\"\n", name); t2_init(name); } @@ -39,7 +43,7 @@ void telemetry_init(char* name) /** * @brief Send marker with string value to T2 */ -void telemetry_event_s(char* marker, char* value) +void telemetry_event_s(const char* marker, char* value) { T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { @@ -50,7 +54,7 @@ void telemetry_event_s(char* marker, char* value) /** * @brief Send marker with integer value to T2 or report count based markers */ -void telemetry_event_d(char* marker, int value) +void telemetry_event_d(const char* marker, int value) { T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { @@ -61,7 +65,7 @@ void telemetry_event_d(char* marker, int value) /** * @brief Send marker with double value to T2 */ -void telemetry_event_f(char* marker, double value) +void telemetry_event_f(const char* marker, double value) { T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { diff --git a/src/btrCore.c b/src/btrCore.c index c4c6a86..9216eb9 100644 --- a/src/btrCore.c +++ b/src/btrCore.c @@ -3113,14 +3113,14 @@ btrCore_OutTask ( //This is telemetry log. If we change this print,need to change and configure the telemetry string in xconf server. char buffer[256]; - snprintf(buffer, sizeof(buffer), "Failed to pair a device name,class,apperance,modalias: %s,%u,%u,v%04Xp%04Xd%04X", + snprintf(buffer, sizeof(buffer), "Failed to pair a device name,class,apperance,modalias: %s,%u,%hu,v%04Xp%04Xd%04X", pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].pcDeviceName, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32DevClassBtSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui16DevAppearanceBleSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasProductId, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasDeviceId); telemetry_event_s("BTPairFail_split", buffer); - BTRCORELOG_ERROR ("Failed to pair a device name,class,apperance,modalias: %s,%u,%u,v%04Xp%04Xd%04X\n", + BTRCORELOG_ERROR ("Failed to pair a device name,class,apperance,modalias: %s,%u,%hu,v%04Xp%04Xd%04X\n", pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].pcDeviceName, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32DevClassBtSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui16DevAppearanceBleSpec, pstlhBTRCore->stScannedDevicesArr[i32LoopIdx].ui32ModaliasVendorId, From d80657b0f701bdd1199b2779671951c0a1289c5d Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:09:44 +0000 Subject: [PATCH 37/47] btmgr t2 event implementation --- src/bt-ifce/Makefile.am | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index 661d61e..ec33940 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -20,6 +20,7 @@ SUBDIRS = INCLUDE_FILES = + if BTR_IFCE_DBUS_BLUEZ4 BTRCORE_IFCE_SRCS = btrCore_dbus_bluez4.c BTRCORE_IFCE_BLUEZ_INC = $(DBUS_CFLAGS) @@ -40,6 +41,9 @@ endif endif endif +# Always add telemetry source +BTRCORE_IFCE_SRCS += ../bt-telemetry.c + AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec -I${top_srcdir}/include/bt-ifce $(BTRCORE_IFCE_BLUEZ_INC) -I${top_srcdir}/include/telemetry if IS_LIBSYSWRAPPER_ENABLED From 4d0f5205143218254c0fe430cc820a7eb2363d92 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:16:13 +0000 Subject: [PATCH 38/47] btmgr t2 event implementation --- unitTest/support/Untitled/telemetry_busmessage_sender.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unitTest/support/Untitled/telemetry_busmessage_sender.h b/unitTest/support/Untitled/telemetry_busmessage_sender.h index 4faf136..4264212 100644 --- a/unitTest/support/Untitled/telemetry_busmessage_sender.h +++ b/unitTest/support/Untitled/telemetry_busmessage_sender.h @@ -31,21 +31,21 @@ typedef enum { T2ERROR_FAILURE = 1 } T2ERROR; -static inline void t2_init(char* name) { +static inline void t2_init(const char* name) { // Stub: do nothing } -static inline T2ERROR t2_event_s(char* marker, char* value) { +static inline T2ERROR t2_event_s(const char* marker, char* value) { // Stub: always return success return T2ERROR_SUCCESS; } -static inline T2ERROR t2_event_d(char* marker, int value) { +static inline T2ERROR t2_event_d(const char* marker, int value) { // Stub: always return success return T2ERROR_SUCCESS; } -static inline T2ERROR t2_event_f(char* marker, double value) { +static inline T2ERROR t2_event_f(const char* marker, double value) { // Stub: always return success return T2ERROR_SUCCESS; } From ebe7c81549dd1ddaa20537bbe8d98df6c436528c Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:24:36 +0000 Subject: [PATCH 39/47] btmgr t2 event implementation --- unitTest/test_btrCore.c | 1 - 1 file changed, 1 deletion(-) diff --git a/unitTest/test_btrCore.c b/unitTest/test_btrCore.c index 1d261c8..be1cd55 100644 --- a/unitTest/test_btrCore.c +++ b/unitTest/test_btrCore.c @@ -468,7 +468,6 @@ void test_BTRCore_GetAdapter_should_ReturnInvalidAdapter_when_BtrCore_BTGetAdapt printf("Before calling BTRCore_GetAdapter, adapter.adapter_number: %d, adapter.pcAdapterPath: %p, adapter.pcAdapterDevName: %p\n", adapter.adapter_number, adapter.pcAdapterPath, adapter.pcAdapterDevName); - BtrCore_BTGetAdapterPath_ExpectAndReturn((void*)hBTRCore->connHdl,NULL,NULL); actual_result = BTRCore_GetAdapter(hBTRCore, &adapter); From 66d57110c385565b1b8656df9f09fb784783cffd Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:41:49 +0000 Subject: [PATCH 40/47] btmgr t2 event implementation --- src/bt-telemetry.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index 5bd2e4e..92cce78 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -45,6 +45,10 @@ void telemetry_init(const char* name) */ void telemetry_event_s(const char* marker, char* value) { + if (marker == NULL) { + BTRCORELOG_ERROR("T2: telemetry_event_s - marker is NULL\n"); + return; + } T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); @@ -56,6 +60,10 @@ void telemetry_event_s(const char* marker, char* value) */ void telemetry_event_d(const char* marker, int value) { + if (marker == NULL) { + BTRCORELOG_ERROR("T2: telemetry_event_d - marker is NULL\n"); + return; + } T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); @@ -67,6 +75,10 @@ void telemetry_event_d(const char* marker, int value) */ void telemetry_event_f(const char* marker, double value) { + if (marker == NULL) { + BTRCORELOG_ERROR("T2: telemetry_event_f - marker is NULL\n"); + return; + } T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); From 8f359001e3fe2695630dea4b9dc24698b30abc94 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:47:22 +0000 Subject: [PATCH 41/47] btmgr t2 event implementation --- include/telemetry/bt-telemetry.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/telemetry/bt-telemetry.h b/include/telemetry/bt-telemetry.h index 20f3cbf..e5cbb40 100644 --- a/include/telemetry/bt-telemetry.h +++ b/include/telemetry/bt-telemetry.h @@ -55,6 +55,6 @@ void telemetry_event_d(const char* marker, int value); * * Usage: telemetry_event_f("HWREV_split", 2.2); */ -void telemetry_event_f(char* marker, double value); +void telemetry_event_f(const char* marker, double value); #endif /* __BT_TELEMETRY_H__ */ From fbcedebcf5032bd38fe88db4f5971e6e5e49053c Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 10:57:03 +0000 Subject: [PATCH 42/47] btmgr t2 event implementation --- src/bt-ifce/Makefile.am | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index ec33940..7d1ba49 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -41,9 +41,6 @@ endif endif endif -# Always add telemetry source -BTRCORE_IFCE_SRCS += ../bt-telemetry.c - AM_CPPFLAGS = -Wall -Werror -I${top_srcdir}/include/logger -I${top_srcdir}/include/safec -I${top_srcdir}/include/bt-ifce $(BTRCORE_IFCE_BLUEZ_INC) -I${top_srcdir}/include/telemetry if IS_LIBSYSWRAPPER_ENABLED From 24b18ef6e06f8c584ca18d1325f91600605248e2 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Tue, 24 Feb 2026 12:58:57 +0000 Subject: [PATCH 43/47] btmgr t2 event implementation --- src/bt-telemetry.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index 92cce78..51309b1 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -49,6 +49,10 @@ void telemetry_event_s(const char* marker, char* value) BTRCORELOG_ERROR("T2: telemetry_event_s - marker is NULL\n"); return; } + if (value == NULL) { + BTRCORELOG_ERROR("T2: telemetry_event_s - value is NULL\n"); + return; + } T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); From 3ba43e07dc300c7598a639ccc2610ccc4ceaad27 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 26 Feb 2026 08:11:44 +0000 Subject: [PATCH 44/47] btmgr t2 event implementation --- README | 2 ++ configure.ac | 30 ++++++++++++++++++++++++++++++ src/Makefile.am | 4 ++-- src/bt-telemetry.c | 23 +++++++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/README b/README index 4b3a58d..a3ae3d4 100644 --- a/README +++ b/README @@ -35,6 +35,8 @@ $$ CPPFLAGS=-I/xyz/abc/local/include ./configure --prefix=/xyz/abc/local/ --enab $$ make V=1 $$ make install +Telemetry: use `--enable-telemetry=no` for standalone CI/L2 builds without telemetry sender libs. + 2.3 To configure and use GDBus with Bluez5 ------------------------------------------- $$ PATH=/xyz/abc/local/bin:$PATH PKG_CONFIG_PATH=/xyz/abc/local/lib/x86_64-linux-gnu/pkgconfig CPPFLAGS=-I/xyz/abc/local/include ./configure --prefix=/xyz/abc/local/ --enable-btr-ifce=gdbus_bluez5 diff --git a/configure.ac b/configure.ac index 0461c38..7b8fc37 100644 --- a/configure.ac +++ b/configure.ac @@ -53,6 +53,8 @@ PKG_CHECK_MODULES([DBUS], [dbus-1]) BTR_CORE_SRC="src" BTR_CORE_TEST="tests" BTR_CORE_LOGGER_LIBS=" " +TELEMETRY_MSGLIBS=" " +TELEMETRY_CFLAGS=" " BTR_IFCE_DBUS_BLUEZ4=" " BTR_IFCE_DBUS_BLUEZ5=" " BTR_IFCE_GDBUS_BLUEZ5=" " @@ -176,6 +178,32 @@ AS_IF([test "x$rdk_logger_ok" = "xyes"], [ fi ], []) +# Check for telemetry sender library +AC_ARG_ENABLE([telemetry], + AS_HELP_STRING([--enable-telemetry],[enable telemetry sender integration (default is yes)]), + [ + case "${enableval}" in + yes) enable_telemetry=yes;; + no) enable_telemetry=no;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-telemetry]) ;; + esac + ], + [enable_telemetry=yes]) + +AS_IF([test "x$enable_telemetry" = "xyes"], [ + AC_CHECK_HEADERS([telemetry_busmessage_sender.h], [], + AC_MSG_ERROR([telemetry header (telemetry_busmessage_sender.h) not found])) + AC_CHECK_LIB(telemetry_msgsender, t2_init, + telemetry_msgsender_ok=yes, telemetry_msgsender_ok=no + AC_MSG_ERROR([telemetry library (libtelemetry_msgsender) not found])) + if test "x$telemetry_msgsender_ok" = "xyes"; then + TELEMETRY_MSGLIBS="-ltelemetry_msgsender" + TELEMETRY_CFLAGS="-DHAVE_TELEMETRY_MSGSENDER" + fi +], [ + AC_MSG_WARN([telemetry sender integration disabled]) +]) + AC_ARG_ENABLE([streaming-in], AS_HELP_STRING([--enable-streaming-in],[enable streaming in (a2dp sink) (default is yes)]), [ @@ -250,6 +278,8 @@ AM_CONDITIONAL([GATT_CLIENT], [test x$GATT_CLIENT = xtrue]) AC_SUBST(BTR_CORE_SRC) AC_SUBST(BTR_CORE_TEST) AC_SUBST(BTR_CORE_LOGGER_LIBS) +AC_SUBST(TELEMETRY_MSGLIBS) +AC_SUBST(TELEMETRY_CFLAGS) # Checks for library functions. diff --git a/src/Makefile.am b/src/Makefile.am index df3c766..ce08cce 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,8 +35,8 @@ else libbtrCore_la_SOURCES = btrCore.c btrCore_avMedia.c btrCore_le.c bt-telemetry.c endif -libbtrCore_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) -libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(top_builddir)/src/bt-ifce/libbtrCoreIfce.la -ltelemetry_msgsender +libbtrCore_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) $(TELEMETRY_CFLAGS) +libbtrCore_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(SAFEC_LFLAGS) $(top_builddir)/src/bt-ifce/libbtrCoreIfce.la $(TELEMETRY_MSGLIBS) # Explicitly declare the header file U want to expose out of libbtrCore.so here include_HEADERS = $(top_srcdir)/include/btrCoreTypes.h diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index 51309b1..4195cca 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -22,7 +22,10 @@ */ #include + +#ifdef HAVE_TELEMETRY_MSGSENDER #include +#endif #include "btrCore_logger.h" #include "bt-telemetry.h" @@ -36,8 +39,13 @@ void telemetry_init(const char* name) BTRCORELOG_ERROR("T2: Failed to initialize telemetry - component name is NULL\n"); return; } + +#ifdef HAVE_TELEMETRY_MSGSENDER BTRCORELOG_INFO("T2: Initializing telemetry with component name=\"%s\"\n", name); t2_init(name); +#else + BTRCORELOG_INFO("T2: telemetry sender disabled - telemetry_init skipped for \"%s\"\n", name); +#endif } /** @@ -53,10 +61,15 @@ void telemetry_event_s(const char* marker, char* value) BTRCORELOG_ERROR("T2: telemetry_event_s - value is NULL\n"); return; } + +#ifdef HAVE_TELEMETRY_MSGSENDER T2ERROR t2error = t2_event_s(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_s(\"%s\", \"%s\") returned error code %d\n", marker, value, t2error); } +#else + BTRCORELOG_INFO("T2: telemetry sender disabled - telemetry_event_s skipped for %s\n", marker); +#endif } /** @@ -68,10 +81,15 @@ void telemetry_event_d(const char* marker, int value) BTRCORELOG_ERROR("T2: telemetry_event_d - marker is NULL\n"); return; } + +#ifdef HAVE_TELEMETRY_MSGSENDER T2ERROR t2error = t2_event_d(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_d(\"%s\", %d) returned error code %d\n", marker, value, t2error); } +#else + BTRCORELOG_INFO("T2: telemetry sender disabled - telemetry_event_d skipped for %s\n", marker); +#endif } /** @@ -83,8 +101,13 @@ void telemetry_event_f(const char* marker, double value) BTRCORELOG_ERROR("T2: telemetry_event_f - marker is NULL\n"); return; } + +#ifdef HAVE_TELEMETRY_MSGSENDER T2ERROR t2error = t2_event_f(marker, value); if (t2error != T2ERROR_SUCCESS) { BTRCORELOG_ERROR("t2_event_f(\"%s\", %f) returned error code %d\n", marker, value, t2error); } +#else + BTRCORELOG_INFO("T2: telemetry sender disabled - telemetry_event_f skipped for %s\n", marker); +#endif } From 8b971919ae6681605572129e2a3f4850a30f845f Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 26 Feb 2026 10:28:46 +0000 Subject: [PATCH 45/47] btmgr t2 event implementation --- src/bt-ifce/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bt-ifce/Makefile.am b/src/bt-ifce/Makefile.am index 7d1ba49..71321ba 100644 --- a/src/bt-ifce/Makefile.am +++ b/src/bt-ifce/Makefile.am @@ -49,8 +49,8 @@ endif lib_LTLIBRARIES = libbtrCoreIfce.la libbtrCoreIfce_la_SOURCES = $(BTRCORE_IFCE_SRCS) -libbtrCoreIfce_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) -libbtrCoreIfce_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(BTRCORE_IFCE_BLUEZ_LIB) $(UDEV_LIB) $(SAFEC_LFLAGS) -ltelemetry_msgsender +libbtrCoreIfce_la_CFLAGS = $(INCLUDE_FILES) $(GLIB_CFLAGS) $(LIBSYSWRAPPER_FLAG) $(SAFEC_CFLAGS) $(TELEMETRY_CFLAGS) +libbtrCoreIfce_la_LIBADD = $(GLIB_LIBS) $(BTR_CORE_LOGGER_LIBS) $(BTRCORE_IFCE_BLUEZ_LIB) $(UDEV_LIB) $(SAFEC_LFLAGS) $(TELEMETRY_MSGLIBS) if BTR_IFCE_GDBUS_BLUEZ5 libbtrCoreIfce_la_CFLAGS += $(GIO_CFLAGS) $(GIO_UNIX_CFLAGS) From 29f9d9ed7555c25d8231d724f6404b81c3f9f382 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Thu, 26 Feb 2026 12:19:49 +0000 Subject: [PATCH 46/47] btmgr t2 event implementation --- include/telemetry/bt-telemetry.h | 2 +- src/bt-telemetry.c | 2 +- unitTest/support/Untitled/telemetry_busmessage_sender.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/telemetry/bt-telemetry.h b/include/telemetry/bt-telemetry.h index e5cbb40..cd169f8 100644 --- a/include/telemetry/bt-telemetry.h +++ b/include/telemetry/bt-telemetry.h @@ -29,7 +29,7 @@ * * @param name Component name for telemetry identification */ -void telemetry_init(const char* name); +void telemetry_init(char* name); /** * @brief Send marker with string value to T2 diff --git a/src/bt-telemetry.c b/src/bt-telemetry.c index 4195cca..0c8642f 100644 --- a/src/bt-telemetry.c +++ b/src/bt-telemetry.c @@ -33,7 +33,7 @@ /** * @brief Initialize telemetry with component name */ -void telemetry_init(const char* name) +void telemetry_init(char* name) { if (name == NULL) { BTRCORELOG_ERROR("T2: Failed to initialize telemetry - component name is NULL\n"); diff --git a/unitTest/support/Untitled/telemetry_busmessage_sender.h b/unitTest/support/Untitled/telemetry_busmessage_sender.h index 4264212..e3819a6 100644 --- a/unitTest/support/Untitled/telemetry_busmessage_sender.h +++ b/unitTest/support/Untitled/telemetry_busmessage_sender.h @@ -31,7 +31,7 @@ typedef enum { T2ERROR_FAILURE = 1 } T2ERROR; -static inline void t2_init(const char* name) { +static inline void t2_init(char* name) { // Stub: do nothing } From f6ff607176adcede2b0b63aa5546d1de773c9c48 Mon Sep 17 00:00:00 2001 From: amarim184 Date: Fri, 27 Feb 2026 08:32:39 +0000 Subject: [PATCH 47/47] btmgr t2 event implementation --- src/bt-ifce/btrCore_gdbus_bluez5.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bt-ifce/btrCore_gdbus_bluez5.c b/src/bt-ifce/btrCore_gdbus_bluez5.c index 5153099..f967ff2 100644 --- a/src/bt-ifce/btrCore_gdbus_bluez5.c +++ b/src/bt-ifce/btrCore_gdbus_bluez5.c @@ -5349,7 +5349,7 @@ btrCore_BTStartDiscoveryCb ( else { //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. telemetry_event_d("BT_ERR_DiscStartFail", 1); - BTRCORELOG_INFO("Discovery start failed - %s\n",error->message); + BTRCORELOG_INFO("Discovery start failed - %s\n", error ? error->message : "Unknown error"); } } @@ -5372,7 +5372,7 @@ btrCore_BTStopDiscoveryCb ( else { //This is telemetry log. If we change this marker name, need to change and configure the telemetry marker in xconf server. telemetry_event_d("BT_ERR_DiscStopFail", 1); - BTRCORELOG_INFO("Discovery stop failed - %s\n",error->message); + BTRCORELOG_INFO("Discovery stop failed - %s\n", error ? error->message : "Unknown error"); } }