添加dump

Signed-off-by: chen0088 <chenmenghuan3@huawei.com>
This commit is contained in:
chen0088
2022-05-17 11:41:49 +08:00
parent e771e01cfb
commit 475edcb982
8 changed files with 30 additions and 15 deletions
@@ -36,7 +36,7 @@ enum class HidumpFlag {
struct CameraDumpInfo {
std::string version;
int32_t camNumber;
std::string dhOpened;
std::vector<std::string> camIds;
};
class DcameraSinkHidumper {
@@ -52,11 +52,13 @@ protected:
private:
bool Init();
void GetCamIds();
bool registerToService_ = false;
DCameraServiceState state_ = DCameraServiceState::DCAMERA_SRV_STATE_NOT_START;
std::string sinkVer_;
std::map<std::string, std::shared_ptr<DCameraSinkDev>> camerasMap_;
static DistributedCameraSinkService* dcSinkService;
};
} // namespace DistributedHardware
} // namespace OHOS
@@ -39,6 +39,7 @@ public:
int32_t GetCameraInfo(std::string& cameraInfo);
int32_t OpenChannel(std::string& openInfo);
int32_t CloseChannel();
std::string GetDhid();
private:
bool isInit_;
@@ -106,8 +106,12 @@ int32_t DcameraSinkHidumper::GetLocalCameraNumber(std::string& result)
int32_t DcameraSinkHidumper::GetOpenedCameraInfo(std::string& result)
{
DHLOGI("GetOpenedCameraInfo Dump.");
result.append("OpenedCamera\n")
.append(camDumpInfo_.dhOpened);
result.append("OpenedCamera\n");
std::vector<std::string> camIds = camDumpInfo_.camIds;
for (int i = 0; i < camIds.size(); i++) {
result.append(camIds[i]);
result.append("\n");
}
return DCAMERA_OK;
}
@@ -34,9 +34,11 @@ namespace DistributedHardware {
REGISTER_SYSTEM_ABILITY_BY_ID(DistributedCameraSinkService, DISTRIBUTED_HARDWARE_CAMERA_SINK_SA_ID, true);
static CameraDumpInfo g_camDump;
DistributedCameraSinkService* DistributedCameraSinkService::dcSinkService;
DistributedCameraSinkService::DistributedCameraSinkService(int32_t saId, bool runOnCreate)
: SystemAbility(saId, runOnCreate)
{
dcSinkService = this;
}
void DistributedCameraSinkService::OnStart()
@@ -191,7 +193,6 @@ int32_t DistributedCameraSinkService::ChannelNeg(const std::string& dhId, std::s
return DCAMERA_NOT_FOUND;
}
g_camDump.dhOpened = GetAnonyString(dhId);
std::shared_ptr<DCameraSinkDev> sinkDevice = iter->second;
int32_t ret = sinkDevice->ChannelNeg(channelInfo);
if (ret != DCAMERA_OK) {
@@ -282,8 +283,18 @@ int DistributedCameraSinkService::Dump(int32_t fd, const std::vector<std::u16str
return DCAMERA_OK;
}
void DistributedCameraSinkService::GetCamIds()
{
std::vector<std::string> camIds;
for (auto it = camerasMap_.begin(); it != camerasMap_.end(); it++) {
camIds.push_back(it->second->GetDhid());
}
g_camDump.camIds = camIds;
}
void DistributedCameraSinkService::GetCamDumpInfo(CameraDumpInfo& camDump)
{
dcSinkService->GetCamIds();
camDump = g_camDump;
}
} // namespace DistributedHardware
@@ -156,5 +156,10 @@ int32_t DCameraSinkDev::CloseChannel()
DHLOGI("DCameraSinkDev::CloseChannel dhId: %s", GetAnonyString(dhId_).c_str());
return controller_->CloseChannel();
}
std::string DCameraSinkDev::GetDhid()
{
return GetAnonyString(dhId_);
}
} // namespace DistributedHardware
} // namespace OHOS
@@ -15,8 +15,6 @@
#include "dcamera_source_hidumper.h"
#include <iterator>
#include "distributed_camera_errno.h"
#include "distributed_camera_source_service.h"
#include "distributed_hardware_log.h"
@@ -124,8 +122,7 @@ int32_t DcameraSourceHidumper::GetCurrentStateInfo(std::string& result)
std::map<std::string, int32_t> devState = camDumpInfo_.curState;
std::string deviceId;
int32_t camState;
std::map<std::string, int32_t>::iterator it;
for (it = devState.begin(); it != devState.end(); it++) {
for (auto it = devState.begin(); it != devState.end(); it++) {
deviceId = it->first;
camState = it->second;
}
@@ -160,7 +157,7 @@ void DcameraSourceHidumper::ShowHelp(std::string& result)
.append("dump camera version in the system\n")
.append("--registered ")
.append("dump number of registered cameras in the system\n")
.append("--currentState ")
.append("--curState ")
.append("dump current state of the camera in the system\n");
}
@@ -15,8 +15,6 @@
#include "distributed_camera_source_service.h"
#include <iterator>
#include "if_system_ability_manager.h"
#include "ipc_skeleton.h"
#include "ipc_types.h"
@@ -226,17 +224,14 @@ int DistributedCameraSourceService::Dump(int32_t fd, const std::vector<std::u16s
void DistributedCameraSourceService::GetDumpInfo(CameraDumpInfo& camDump)
{
camDump.regNumber = camerasMap_.size();
DHLOGI("camDump 111111");
std::map<std::string, int32_t> curState;
std::map<DCameraIndex, std::shared_ptr<DCameraSourceDev>>::iterator it;
for (it = camerasMap_.begin(); it != camerasMap_.end(); it++) {
for (auto it = camerasMap_.begin(); it != camerasMap_.end(); it++) {
DCameraIndex cam = it->first;
std::shared_ptr<DCameraSourceDev> camSourceDev = it->second;
camDump.version = camSourceDev->GetVersion();
std::string deviceId = GetAnonyString(cam.devId_);
deviceId.append(cam.dhId_);
int32_t devState = camSourceDev->GetStateInfo();
DHLOGI("camDump 111111 devState %d", devState);
curState[deviceId] = devState;
}
camDump.curState = curState;