当前位置:   article > 正文

Sensor-sensor日志_dumpsys sensorservice

dumpsys sensorservice

一.摘要

    在一些传感器异常的问题中我们常常需要看最近的sensor日志,那么我们可以通过dumpsys sensorservice来看最近sensor上报的数据。

二.日志的初始化已经记录

    我们在SensorService.cpp中有一个std::unordered_map<int, RecentEventLogger*> mRecentEvent;对象,这个对象是专门用来记录sensor日志的,每个sensor注册时会添加到这个mRecentEvent

  1. const Sensor& SensorService::registerSensor(SensorInterface* s, bool isDebug, bool isVirtual) {
  2. int handle = s->getSensor().getHandle();
  3. int type = s->getSensor().getType();
  4. if (mSensors.add(handle, s, isDebug, isVirtual)){
  5. mRecentEvent.emplace(handle, new RecentEventLogger(type));
  6. return s->getSensor();
  7. } else {
  8. return mSensors.getNonSensor();
  9. }
  10. }

RecentEventLogger的构造方法:

  1. RecentEventLogger::RecentEventLogger(int sensorType) :
  2. mSensorType(sensorType), mEventSize(eventSizeBySensorType(mSensorType)),
  3. mRecentEvents(logSizeBySensorType(sensorType)), mMaskData(false),
  4. mIsLastEventCurrent(false) {
  5. // blank
  6. }

这里会初始化mSensorType,mEventSize,mRecentEvents,mMaskData,mIsLastEventCurrent。

我们看到logSizeBySensorType(sensorType):

  1. constexpr size_t LOG_SIZE = 10;
  2. constexpr size_t LOG_SIZE_LARGE = 50; // larger samples for debugging
  3. size_t RecentEventLogger::logSizeBySensorType(int sensorType) {
  4. return (sensorType == SENSOR_TYPE_STEP_COUNTER ||
  5. sensorType == SENSOR_TYPE_SIGNIFICANT_MOTION ||
  6. sensorType == SENSOR_TYPE_ACCELEROMETER ||
  7. sensorType == SENSOR_TYPE_LIGHT) ? LOG_SIZE_LARGE : LOG_SIZE;
  8. }

这里会根据不同的sensor来初始化mRecentEvents的大

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/778968
推荐阅读
相关标签
  

闽ICP备14008679号