diff --git a/frameworks/native/src/sensor_agent_proxy.cpp b/frameworks/native/src/sensor_agent_proxy.cpp index fa02f821f2fa8b6002a2ef8f13814a5e87c777e2..092c164f8f8f6a92d0bb6a33e130bcae54f465e7 100644 --- a/frameworks/native/src/sensor_agent_proxy.cpp +++ b/frameworks/native/src/sensor_agent_proxy.cpp @@ -286,6 +286,7 @@ int32_t SensorAgentProxy::SubscribeSensor(int32_t sensorId, const SensorUser *us } if (PrintSensorData::GetInstance().IsContinuousType(sensorId)) { PrintSensorData::GetInstance().SavePrintUserInfo(user->callback); + PrintSensorData::GetInstance().ResetClientTimes(); } SEN_HILOGI("Done, sensorId:%{public}d", sensorId); return OHOS::Sensors::SUCCESS; @@ -332,6 +333,7 @@ int32_t SensorAgentProxy::UnsubscribeSensor(int32_t sensorId, const SensorUser * } if (PrintSensorData::GetInstance().IsContinuousType(sensorId)) { PrintSensorData::GetInstance().RemovePrintUserInfo(user->callback); + PrintSensorData::GetInstance().ResetClientTimes(); } SEN_HILOGI("Done, sensorId:%{public}d", sensorId); return OHOS::Sensors::SUCCESS; diff --git a/utils/common/include/print_sensor_data.h b/utils/common/include/print_sensor_data.h index 75550fc8ddec8f6348f628448917f3f5d9d3b106..e97d88b59e532f9f200f29d9116d99696ab21b2f 100644 --- a/utils/common/include/print_sensor_data.h +++ b/utils/common/include/print_sensor_data.h @@ -39,6 +39,7 @@ public: void RemovePrintUserInfo(const RecordSensorCallback callback); void PrintSensorDataLog(const std::string &name, const SensorData &data); void PrintSensorInfo(SensorInfo *sensorInfos, int32_t sensorInfoCount); + void ResetClientTimes(); private: void PrintClientData(const SensorEvent &event); @@ -49,6 +50,7 @@ private: struct LogPrintInfo { int32_t count { 0 }; int64_t lastTime { 0 }; + uint64_t hdiTimes { 0 }; }; std::mutex hdiLoginfoMutex_; std::mutex clientLoginfoMutex_; @@ -62,6 +64,7 @@ private: {SENSOR_TYPE_ID_MAGNETIC_FIELD, info_}, }; std::map clientLoginfo_; + uint64_t clientTimes_ = 0; }; } // namespace Sensors } // namespace OHOS diff --git a/utils/common/src/print_sensor_data.cpp b/utils/common/src/print_sensor_data.cpp index cde8690873286480643ca94e7006c7f398ffb189..0cf8ca6e3c8f1827a4bd02da4834e74444066de6 100644 --- a/utils/common/src/print_sensor_data.cpp +++ b/utils/common/src/print_sensor_data.cpp @@ -78,9 +78,13 @@ void PrintSensorData::ControlSensorHdiPrint(const SensorData &sensorData) } it->second.count++; } else { + it->second.hdiTimes++; if (sensorData.timestamp - it->second.lastTime >= LOG_INTERVAL) { PrintHdiData(sensorData); it->second.lastTime = sensorData.timestamp; + SEN_HILOGI("sensorId: %{public}d, hdiTimes:%{public}s", sensorData.sensorTypeId, + std::to_string(it->second.hdiTimes).c_str()); + it->second.hdiTimes = 0; } } } @@ -174,9 +178,13 @@ void PrintSensorData::ControlSensorClientPrint(const RecordSensorCallback callba } it->second.count++; } else { + clientTimes_++; if (event.timestamp - it->second.lastTime >= LOG_INTERVAL) { PrintClientData(event); it->second.lastTime = event.timestamp; + SEN_HILOGI("sensorId: %{public}d, clientTimes:%{public}s", event.sensorTypeId, + std::to_string(clientTimes_).c_str()); + clientTimes_ = 0; } } } @@ -259,6 +267,7 @@ void PrintSensorData::ResetHdiCounter(int32_t sensorId) } it->second.count = 0; it->second.lastTime = 0; + it->second.hdiTimes = 0; } void PrintSensorData::PrintSensorDataLog(const std::string &name, const SensorData &data) @@ -289,5 +298,10 @@ void PrintSensorData::PrintSensorInfo(SensorInfo *sensorInfos, int32_t sensorInf SEN_HILOGI("PrintSensorInfo success, sensorIds:%{public}s, sensorInfoCount:%{public}d", combineSensorIds.c_str(), sensorInfoCount); } + +void PrintSensorData::ResetClientTimes() +{ + clientTimes_ = 0; +} } // namespace Sensors } // namespace OHOS