diff --git a/frameworks/native/sensor/src/sensor_agent_proxy.cpp b/frameworks/native/sensor/src/sensor_agent_proxy.cpp index 7b28161cdaf8042a64f53dd307d59d4e68446dbd..5db36d4658c87690f4dd0acb9dc7bfd3b45d93e4 100644 --- a/frameworks/native/sensor/src/sensor_agent_proxy.cpp +++ b/frameworks/native/sensor/src/sensor_agent_proxy.cpp @@ -301,25 +301,26 @@ int32_t SensorAgentProxy::ConvertSensorInfos() const sensorInfos_ = (SensorInfo *)malloc(sizeof(SensorInfo) * count); CHKPR(sensorInfos_, ERROR); for (size_t i = 0; i < count; ++i) { - errno_t ret = strcpy_s((sensorInfos_ + i)->sensorName, NAME_MAX_LEN, + SensorInfo *sensorInfo = sensorInfos_ + i; + errno_t ret = strcpy_s(sensorInfo->sensorName, NAME_MAX_LEN, sensorList[i].GetSensorName().c_str()); CHKCR(ret == EOK, ERROR); - ret = strcpy_s((sensorInfos_ + i)->vendorName, NAME_MAX_LEN, + ret = strcpy_s(sensorInfo->vendorName, NAME_MAX_LEN, sensorList[i].GetVendorName().c_str()); CHKCR(ret == EOK, ERROR); - ret = strcpy_s((sensorInfos_ + i)->hardwareVersion, VERSION_MAX_LEN, + ret = strcpy_s(sensorInfo->hardwareVersion, VERSION_MAX_LEN, sensorList[i].GetHardwareVersion().c_str()); CHKCR(ret == EOK, ERROR); - ret = strcpy_s((sensorInfos_ + i)->firmwareVersion, VERSION_MAX_LEN, + ret = strcpy_s(sensorInfo->firmwareVersion, VERSION_MAX_LEN, sensorList[i].GetFirmwareVersion().c_str()); CHKCR(ret == EOK, ERROR); - (sensorInfos_ + i)->sensorId = static_cast(sensorList[i].GetSensorId()); - (sensorInfos_ + i)->sensorTypeId = static_cast(sensorList[i].GetSensorTypeId()); - (sensorInfos_ + i)->maxRange = sensorList[i].GetMaxRange(); - (sensorInfos_ + i)->precision = sensorList[i].GetResolution(); - (sensorInfos_ + i)->power = sensorList[i].GetPower(); - (sensorInfos_ + i)->minSamplePeriod = sensorList[i].GetMinSamplePeriodNs(); - (sensorInfos_ + i)->maxSamplePeriod = sensorList[i].GetMaxSamplePeriodNs(); + sensorInfo->sensorId = static_cast(sensorList[i].GetSensorId()); + sensorInfo->sensorTypeId = static_cast(sensorList[i].GetSensorTypeId()); + sensorInfo->maxRange = sensorList[i].GetMaxRange(); + sensorInfo->precision = sensorList[i].GetResolution(); + sensorInfo->power = sensorList[i].GetPower(); + sensorInfo->minSamplePeriod = sensorList[i].GetMinSamplePeriodNs(); + sensorInfo->maxSamplePeriod = sensorList[i].GetMaxSamplePeriodNs(); } sensorInfoCount_ = static_cast(count); return SUCCESS; diff --git a/services/sensor/src/sensor_dump.cpp b/services/sensor/src/sensor_dump.cpp index d1d298b904f82bf1703aa9447056f37af4612768..89efec620fd32ae5dbe70184f3f24c2efd656caa 100644 --- a/services/sensor/src/sensor_dump.cpp +++ b/services/sensor/src/sensor_dump.cpp @@ -194,6 +194,9 @@ bool SensorDump::DumpSensorList(int32_t fd, const std::vector &sensors) dprintf(fd, "Total sensor:%d, Sensor list:\n", int32_t { sensors.size() }); for (const auto &sensor : sensors) { auto sensorId = sensor.GetSensorId(); + if (sensorMap_.find(sensorId) == sensorMap_.end()) { + continue; + } dprintf(fd, "sensorId:%8u | sensorType:%s | sensorName:%s | vendorName:%s | maxRange:%f" "| fifoMaxEventCount:%d | minSamplePeriodNs:%" PRId64 " | maxSamplePeriodNs:%" PRId64 "\n", @@ -212,6 +215,9 @@ bool SensorDump::DumpSensorChannel(int32_t fd, ClientInfo &clientInfo) clientInfo.GetSensorChannelInfo(channelInfo); for (const auto &channel : channelInfo) { auto sensorId = channel.GetSensorId(); + if (sensorMap_.find(sensorId) == sensorMap_.end()) { + continue; + } dprintf(fd, "uid:%d | packageName:%s | sensorId:%8u | sensorType:%s | samplingPeriodNs:%" PRId64 "" "| fifoCount:%u\n", @@ -227,6 +233,9 @@ bool SensorDump::DumpOpeningSensor(int32_t fd, const std::vector &sensor dprintf(fd, "Opening sensors:\n"); for (const auto &sensor : sensors) { uint32_t sensorId = sensor.GetSensorId(); + if (sensorMap_.find(sensorId) == sensorMap_.end()) { + continue; + } if (clientInfo.GetSensorState(sensorId)) { dprintf(fd, "sensorId: %8u | sensorType: %s | channelSize: %lu\n", sensorId, sensorMap_[sensorId].c_str(), clientInfo.GetSensorChannel(sensorId).size()); @@ -242,6 +251,9 @@ bool SensorDump::DumpSensorData(int32_t fd, ClientInfo &clientInfo) int32_t j = 0; for (auto &sensorData : dataMap) { uint32_t sensorId = sensorData.first; + if (sensorMap_.find(sensorId) == sensorMap_.end()) { + continue; + } dprintf(fd, "sensorId: %8u | sensorType: %s:\n", sensorId, sensorMap_[sensorId].c_str()); for (uint32_t i = 0; i < MAX_DUMP_DATA_SIZE && (!sensorData.second.empty()); i++) { auto data = sensorData.second.front();