Loading flags/metric.aconfig 0 → 100644 +9 −0 Original line number Diff line number Diff line package: "com.android.bluetooth.flags" container: "com.android.btservices" flag { name: "bluetooth_power_telemetry" namespace: "bluetooth" description: "Toggle the bluetooth power telemetry feature." bug: "301874865" } system/osi/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ cc_library_static { "libbluetooth_log", "libbt-platform-protos-lite", "libbt_shim_bridge", "server_configurable_flags", ], } Loading system/osi/src/stack_power_telemetry.cc +11 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include "osi/include/stack_power_telemetry.h" #include <android_bluetooth_flags.h> #include <base/logging.h> #include <bluetooth/log.h> #include <sys/stat.h> Loading Loading @@ -46,8 +47,9 @@ constexpr int64_t kTrafficLogTime = 120; // 120seconds constexpr uint8_t kLogEntriesSize{15}; constexpr std::string_view kLogPerChannelProperty = "bluetooth.powertelemetry.log_per_channel.enabled"; bool power_telemerty_enabled_ = bluetooth::common::init_flags::bluetooth_power_telemetry_is_enabled(); constexpr std::string_view kPowerTelemetryEnabledProperty = "bluetooth.powertelemetry.enabled"; bool power_telemerty_enabled_ = false; std::string GetTimeString(time_t tstamp) { char buffer[15]; Loading Loading @@ -154,6 +156,12 @@ struct power_telemetry::PowerTelemetryImpl { traffic_logged_ts_ = get_current_time(); log_per_channel_ = osi_property_get_bool( std::string(kLogPerChannelProperty).c_str(), false); power_telemetry_enabled_property_ = osi_property_get_bool( std::string(kPowerTelemetryEnabledProperty).c_str(), true); // Enable this feature when both feature flag and sysprops turn on. power_telemerty_enabled_ = IS_FLAG_ENABLED(bluetooth_power_telemetry) && power_telemetry_enabled_property_; } LogDataContainer& GetCurrentLogDataContainer() { Loading Loading @@ -192,6 +200,7 @@ struct power_telemetry::PowerTelemetryImpl { } cmd, event; bool scan_timer_started_ = false; bool log_per_channel_ = false; bool power_telemetry_enabled_property_ = false; }; void power_telemetry::PowerTelemetryImpl::LogDataTransfer() { Loading system/osi/test/stack_power_telemetry_test.cc +2 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ class PowerTelemetryTest : public ::testing::Test { } void SetUp() override { // Enable the feature flag power_telemerty_enabled_ = true; power_telemetry::GetInstance(); // Init the object. power_telemerty_enabled_ = true; // Enable the feature flag RawAddress::FromString("00:00:00:00:00:00", bdaddr); } }; Loading Loading
flags/metric.aconfig 0 → 100644 +9 −0 Original line number Diff line number Diff line package: "com.android.bluetooth.flags" container: "com.android.btservices" flag { name: "bluetooth_power_telemetry" namespace: "bluetooth" description: "Toggle the bluetooth power telemetry feature." bug: "301874865" }
system/osi/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ cc_library_static { "libbluetooth_log", "libbt-platform-protos-lite", "libbt_shim_bridge", "server_configurable_flags", ], } Loading
system/osi/src/stack_power_telemetry.cc +11 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include "osi/include/stack_power_telemetry.h" #include <android_bluetooth_flags.h> #include <base/logging.h> #include <bluetooth/log.h> #include <sys/stat.h> Loading Loading @@ -46,8 +47,9 @@ constexpr int64_t kTrafficLogTime = 120; // 120seconds constexpr uint8_t kLogEntriesSize{15}; constexpr std::string_view kLogPerChannelProperty = "bluetooth.powertelemetry.log_per_channel.enabled"; bool power_telemerty_enabled_ = bluetooth::common::init_flags::bluetooth_power_telemetry_is_enabled(); constexpr std::string_view kPowerTelemetryEnabledProperty = "bluetooth.powertelemetry.enabled"; bool power_telemerty_enabled_ = false; std::string GetTimeString(time_t tstamp) { char buffer[15]; Loading Loading @@ -154,6 +156,12 @@ struct power_telemetry::PowerTelemetryImpl { traffic_logged_ts_ = get_current_time(); log_per_channel_ = osi_property_get_bool( std::string(kLogPerChannelProperty).c_str(), false); power_telemetry_enabled_property_ = osi_property_get_bool( std::string(kPowerTelemetryEnabledProperty).c_str(), true); // Enable this feature when both feature flag and sysprops turn on. power_telemerty_enabled_ = IS_FLAG_ENABLED(bluetooth_power_telemetry) && power_telemetry_enabled_property_; } LogDataContainer& GetCurrentLogDataContainer() { Loading Loading @@ -192,6 +200,7 @@ struct power_telemetry::PowerTelemetryImpl { } cmd, event; bool scan_timer_started_ = false; bool log_per_channel_ = false; bool power_telemetry_enabled_property_ = false; }; void power_telemetry::PowerTelemetryImpl::LogDataTransfer() { Loading
system/osi/test/stack_power_telemetry_test.cc +2 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ class PowerTelemetryTest : public ::testing::Test { } void SetUp() override { // Enable the feature flag power_telemerty_enabled_ = true; power_telemetry::GetInstance(); // Init the object. power_telemerty_enabled_ = true; // Enable the feature flag RawAddress::FromString("00:00:00:00:00:00", bdaddr); } }; Loading