diff options
Diffstat (limited to 'btif/src/btif_bqr.cc')
-rw-r--r-- | btif/src/btif_bqr.cc | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/btif/src/btif_bqr.cc b/btif/src/btif_bqr.cc index 848d8863f..c437b2c1b 100644 --- a/btif/src/btif_bqr.cc +++ b/btif/src/btif_bqr.cc @@ -17,15 +17,18 @@ #include <base/logging.h> #include <errno.h> #include <fcntl.h> +#ifdef OS_ANDROID #include <statslog.h> +#endif #include <stdio.h> #include <sys/stat.h> #include "btif_bqr.h" -#include "btif_dm.h" +#include "btif_common.h" +#include "btm_api.h" #include "common/leaky_bonded_queue.h" +#include "common/time_util.h" #include "osi/include/properties.h" -#include "stack/btm/btm_int.h" namespace bluetooth { namespace bqr { @@ -51,7 +54,7 @@ void BqrVseSubEvt::ParseBqrLinkQualityEvt(uint8_t length, STREAM_TO_UINT8(bqr_link_quality_event_.packet_types, p_param_buf); STREAM_TO_UINT16(bqr_link_quality_event_.connection_handle, p_param_buf); STREAM_TO_UINT8(bqr_link_quality_event_.connection_role, p_param_buf); - STREAM_TO_UINT8(bqr_link_quality_event_.tx_power_level, p_param_buf); + STREAM_TO_INT8(bqr_link_quality_event_.tx_power_level, p_param_buf); STREAM_TO_INT8(bqr_link_quality_event_.rssi, p_param_buf); STREAM_TO_UINT8(bqr_link_quality_event_.snr, p_param_buf); STREAM_TO_UINT8(bqr_link_quality_event_.unused_afh_channel_count, @@ -123,8 +126,9 @@ std::string BqrVseSubEvt::ToString() const { ss << QualityReportIdToString(bqr_link_quality_event_.quality_report_id) << ", Handle: " << loghex(bqr_link_quality_event_.connection_handle) << ", " << PacketTypeToString(bqr_link_quality_event_.packet_types) << ", " - << ((bqr_link_quality_event_.connection_role == 0) ? "Master" : "Slave ") - << ", PwLv: " << loghex(bqr_link_quality_event_.tx_power_level) + << ((bqr_link_quality_event_.connection_role == 0) ? "Central" + : "Peripheral ") + << ", PwLv: " << std::to_string(bqr_link_quality_event_.tx_power_level) << ", RSSI: " << std::to_string(bqr_link_quality_event_.rssi) << ", SNR: " << std::to_string(bqr_link_quality_event_.snr) << ", UnusedCh: " @@ -267,7 +271,8 @@ void ConfigureBqr(const BqrConfiguration& bqr_config) { return; } - LOG(INFO) << __func__ << ": Action: " << bqr_config.report_action + LOG(INFO) << __func__ << ": Action: " + << loghex(static_cast<uint8_t>(bqr_config.report_action)) << ", Mask: " << loghex(bqr_config.quality_event_mask) << ", Interval: " << bqr_config.minimum_report_interval_ms; @@ -383,6 +388,16 @@ void AddLinkQualityEventToQueue(uint8_t length, uint8_t* p_link_quality_event) { p_bqr_event->ParseBqrLinkQualityEvt(length, p_link_quality_event); LOG(WARNING) << *p_bqr_event; + invoke_link_quality_report_cb( + bluetooth::common::time_get_os_boottime_ms(), + p_bqr_event->bqr_link_quality_event_.quality_report_id, + p_bqr_event->bqr_link_quality_event_.rssi, + p_bqr_event->bqr_link_quality_event_.snr, + p_bqr_event->bqr_link_quality_event_.retransmission_count, + p_bqr_event->bqr_link_quality_event_.no_rx_count, + p_bqr_event->bqr_link_quality_event_.nak_count); + +#ifdef OS_ANDROID int ret = android::util::stats_write( android::util::BLUETOOTH_QUALITY_REPORT_REPORTED, p_bqr_event->bqr_link_quality_event_.quality_report_id, @@ -408,6 +423,9 @@ void AddLinkQualityEventToQueue(uint8_t length, uint8_t* p_link_quality_event) { LOG(WARNING) << __func__ << ": failed to log BQR event to statsd, error " << ret; } +#else + // TODO(abps) Metrics for non-Android build +#endif kpBqrEventQueue->Enqueue(p_bqr_event.release()); } |