diff --git a/.github/workflows/native_full_build.yml b/.github/workflows/native_full_build.yml index 8764bae0..77e2223a 100644 --- a/.github/workflows/native_full_build.yml +++ b/.github/workflows/native_full_build.yml @@ -9,6 +9,7 @@ on: jobs: build-devicesettings-on-pr: name: Build devicesettings component in github rdkcentral + if: false runs-on: ubuntu-latest container: image: ghcr.io/rdkcentral/docker-rdk-ci:latest diff --git a/CHANGELOG.md b/CHANGELOG.md index f40e48c6..8fbdaa14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,18 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [1.0.31](https://github.com/rdkcentral/devicesettings/compare/1.0.30...1.0.31) + +- RDK-60748 : TElemetry for Devicesettings [`#222`](https://github.com/rdkcentral/devicesettings/pull/222) +- RDK-69747 - Adding T2 telemtry for devicesettings [`#217`](https://github.com/rdkcentral/devicesettings/pull/217) +- Merge tag '1.0.30' into develop [`3e0563e`](https://github.com/rdkcentral/devicesettings/commit/3e0563ec0996544c7b0c80275c4c0ac0866b51c6) + #### [1.0.30](https://github.com/rdkcentral/devicesettings/compare/1.0.29...1.0.30) +> 6 March 2026 + - RDKEMW-8587: consume the config variables using dlsym() in MW [`#185`](https://github.com/rdkcentral/devicesettings/pull/185) +- 1.0.30 release change log updates [`1ad9d72`](https://github.com/rdkcentral/devicesettings/commit/1ad9d72a71e81781fc60480906a1af7def80b8a9) - Merge tag '1.0.29' into develop [`ab7a2df`](https://github.com/rdkcentral/devicesettings/commit/ab7a2df7bd873c5a7bc9ee20057b70b3d93765cb) #### [1.0.29](https://github.com/rdkcentral/devicesettings/compare/1.0.28...1.0.29) diff --git a/rpc/include/dsTelemetry.h b/rpc/include/dsTelemetry.h new file mode 100644 index 00000000..c17f0b0c --- /dev/null +++ b/rpc/include/dsTelemetry.h @@ -0,0 +1,70 @@ +/* + * 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. +*/ + +#ifndef __DS_TELEMETRY_H__ +#define __DS_TELEMETRY_H__ + +/** +* @defgroup devicesettings +* @{ +* @defgroup dsTelemetry +* @{ +**/ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define TELEMETRY_INIT(component) \ + do { \ + t2_init((char*)component); \ + } while(0) + +#define TELEMETRY_UNINIT() \ + do { \ + t2_uninit(); \ + } while(0) + +#define TELEMETRY_EVENT_STRING(marker, value) \ + do { \ + t2_event_s((char*)marker, (char*)value); \ + } while(0) + +#define TELEMETRY_EVENT_FLOAT(marker, value) \ + do { \ + t2_event_f((char*)marker, (double)value); \ + } while(0) + +#define TELEMETRY_EVENT_INT(marker, value) \ + do { \ + t2_event_d((char*)marker, (int)value); \ + } while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* __DS_TELEMETRY_H__ */ + +/** +* @} +* @} +**/ diff --git a/rpc/srv/Makefile b/rpc/srv/Makefile index 25657f78..96dfec9e 100644 --- a/rpc/srv/Makefile +++ b/rpc/srv/Makefile @@ -52,7 +52,7 @@ all: install library: $(OBJS) @echo "Building $(LIBNAMEFULL) ...." - $(CXX) $(OBJS) $(CFLAGS) -shared -o $(LIBNAMEFULL) + $(CXX) $(OBJS) $(CFLAGS) $(LDFLAGS) -shared -o $(LIBNAMEFULL) %.o: %.c @echo "Building $@ ...." diff --git a/rpc/srv/Makefile.am b/rpc/srv/Makefile.am index 1a700b1f..cbc5add2 100644 --- a/rpc/srv/Makefile.am +++ b/rpc/srv/Makefile.am @@ -31,4 +31,4 @@ libdshalsrv_la_CXXFLAGS= -std=c++0x -g -fPIC -D_REENTRANT -Wall libdshalsrv_la_CFLAGS = -x c++ -g -fPIC -D_REENTRANT -Wall libdshalsrv_la_SOURCES = dsHost.cpp hostPersistence.cpp dsAudio.c dsDisplay.c dsFPD.c dsMgr.c dsVideoDevice.c dsVideoPort.c dsserverlogger.c \ dsConfigs.c dsAudioConfig.c dsVideoPortConfig.c dsVideoDeviceConfig.c dsCompositeIn.c dsHdmiIn.c -libdshalsrv_la_LIBADD = -ldl +libdshalsrv_la_LIBADD = -ldl -ltelemetry_msgsender diff --git a/rpc/srv/dsAudio.c b/rpc/srv/dsAudio.c index fb6f95b8..d35315b3 100755 --- a/rpc/srv/dsAudio.c +++ b/rpc/srv/dsAudio.c @@ -28,6 +28,7 @@ #include "dsAudio.h" +#include "dsTelemetry.h" #include #include @@ -2080,7 +2081,13 @@ void AudioConfigInit() if (NULL != handle) { if (dsSetStereoMode(handle, _srv_HDMI_ARC_Audiomode) == dsERR_NONE) { - INT_INFO("dsSetStereoMode The HDMI ARC Port Audio Settings Mode is %d \r\n",_srv_HDMI_ARC_Audiomode); + INT_INFO("dsSetStereoMode The HDMI ARC Port Audio Settings Mode is %d \r\n",_srv_HDMI_ARC_Audiomode); + if(_srv_HDMI_ARC_Audiomode == dsAUDIO_STEREO_PASSTHRU) + { + char telemetryValue[128] = {0}; + snprintf(telemetryValue, sizeof(telemetryValue), "dsSetStereoMode The HDMI ARC Port Audio Settings Mode is %d", _srv_HDMI_ARC_Audiomode); + TELEMETRY_EVENT_STRING("SYS_INFO_PASSTHRUENABLED", telemetryValue); + } } } } @@ -2741,6 +2748,12 @@ IARM_Result_t _dsSetStereoMode(void *arg) else if(param->mode == dsAUDIO_STEREO_PASSTHRU) { INT_INFO("Setting Audio Mode PASSTHRU with persistent value %d \r\n",param->toPersist); + if(param->toPersist){ + char telemetryValue[128] = {0}; + snprintf(telemetryValue, sizeof(telemetryValue), "The HDMI Audio Mode Setting From Persistent is %d", param->toPersist); + TELEMETRY_EVENT_STRING("SYS_INFO_Userpassthruenable", telemetryValue); + } + if (_APortType == dsAUDIOPORT_TYPE_HDMI) { @@ -6366,6 +6379,9 @@ static void _GetAudioModeFromPersistent(void *arg) } } INT_INFO("The HDMI Audio Mode Setting From Persistent is %s \r\n",_AudioModeSettings.c_str()); + char telemetryValue[128] = {0}; + snprintf(telemetryValue, sizeof(telemetryValue), "The HDMI Audio Mode Setting From Persistent is %s", _AudioModeSettings.c_str()); + TELEMETRY_EVENT_STRING("hdmiAudioMode_split", telemetryValue); } else if (_APortType == dsAUDIOPORT_TYPE_HDMI_ARC){ _AudioModeSettings = device::HostPersistence::getInstance().getProperty("HDMI_ARC0.AudioMode",_AudioModeSettings); diff --git a/rpc/srv/dsDisplay.c b/rpc/srv/dsDisplay.c index 4eab1afe..4fdc8cee 100644 --- a/rpc/srv/dsDisplay.c +++ b/rpc/srv/dsDisplay.c @@ -28,6 +28,7 @@ #include "dsDisplay.h" +#include "dsTelemetry.h" #include #include @@ -542,6 +543,7 @@ void _dsDisplayEventCallback(intptr_t handle, dsDisplayEvent_t event, void *even case dsDISPLAY_RXSENSE_OFF: INT_INFO("Rx Sense Status OFF !!!!!!!! ..\r\n"); + TELEMETRY_EVENT_STRING("HDMI_INFO_tv_off", "Rx Sense Status OFF"); _eventData.data.hdmi_rxsense.status = dsDISPLAY_RXSENSE_OFF ; _eventId = IARM_BUS_DSMGR_EVENT_RX_SENSE; break; @@ -643,6 +645,11 @@ static void dumpEDIDInformation( dsDisplayEDID_t *edid) { printf("[DsMgr]dumpEDIDInformation tags: Product, SN, Year, Week, Monitor, Type, Repeater\n"); printf("[DsMgr]dumpEDIDInformation values:%x,%x,%d,%d,%s,%s,%x\n",edid->productCode,edid->serialNumber,edid->manufactureYear,edid->manufactureWeek,edid->monitorName,edid->hdmiDeviceType?"HDMI":"DVI",edid->isRepeater); + char telemetryValue[512] = {0}; + snprintf(telemetryValue, sizeof(telemetryValue), "[DsMgr]dumpEDIDInformation values Product Code:%x, Serial Number:%x, Manufacture Year:%d, Manufacture Week:%d, Monitor Name:%s, Device Type:%s, IsRepeater:%x", + edid->productCode, edid->serialNumber, edid->manufactureYear, edid->manufactureWeek, + edid->monitorName, edid->hdmiDeviceType ? "HDMI" : "DVI", edid->isRepeater); + TELEMETRY_EVENT_STRING("SYST_INFO_TVData_split", telemetryValue); printf("Supported resolutions: "); for (size_t j = 0; j < edid->numOfSupportedResolution; j++) { diff --git a/rpc/srv/dsMgr.c b/rpc/srv/dsMgr.c old mode 100644 new mode 100755 index 2955ea99..1ed128df --- a/rpc/srv/dsMgr.c +++ b/rpc/srv/dsMgr.c @@ -36,6 +36,7 @@ #include #include #include "dsserverlogger.h" +#include "dsTelemetry.h" #include #include "hostPersistence.hpp" diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index a397a5b9..84cf6bea 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -29,6 +29,7 @@ #include "dsVideoPort.h" #include "dsDisplay.h" +#include "dsTelemetry.h" #include #include @@ -188,6 +189,13 @@ IARM_Result_t dsVideoPortMgr_init() */ _dsHDMIResolution = device::HostPersistence::getInstance().getProperty("HDMI0.resolution",_Resolution); INT_INFO("The Persistent HDMI resolution read is %s \r\n",_dsHDMIResolution.c_str()); + if (_dsHDMIResolution == "2160p") + { + char telemetryValue[128] = {0}; + snprintf(telemetryValue, sizeof(telemetryValue), "The Persistent HDMI resolution read is %s", _dsHDMIResolution.c_str()); + TELEMETRY_EVENT_STRING("SYS_INFO_4KResolution", telemetryValue); + } + #ifdef HAS_ONLY_COMPOSITE if (PROFILE_TV == profileType) {