From 6f37a2167335971e22ab28419139036f7684aed4 Mon Sep 17 00:00:00 2001 From: libo429 Date: Mon, 9 Oct 2023 19:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0DCamera=E9=9B=B7=E8=BE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: libo429 --- common/BUILD.gn | 11 ++ common/include/utils/dcamera_radar_helper.h | 110 ++++++++++++++++++ common/src/utils/dcamera_radar_helper.cpp | 59 ++++++++++ distributedcamera.gni | 1 + .../camera_sink/src/dcamera_sink_handler.cpp | 15 ++- .../src/dcamera_sink_load_callback.cpp | 28 ++++- .../src/dcamera_source_handler.cpp | 13 +++ .../src/dcamera_source_load_callback.cpp | 26 +++++ .../distributed_camera_source_service.cpp | 62 ++++++++++ .../dcamera_source_dev.cpp | 86 ++++++++++++++ .../dcamera_source_controller.cpp | 27 +++++ .../dcameradata/dcamera_source_input.cpp | 25 ++++ .../channel/src/dcamera_softbus_adapter.cpp | 14 +++ 13 files changed, 475 insertions(+), 2 deletions(-) create mode 100644 common/include/utils/dcamera_radar_helper.h create mode 100644 common/src/utils/dcamera_radar_helper.cpp diff --git a/common/BUILD.gn b/common/BUILD.gn index 76ba561a..23deabac 100644 --- a/common/BUILD.gn +++ b/common/BUILD.gn @@ -58,6 +58,17 @@ ohos_shared_library("distributed_camera_utils") { "hitrace:hitrace_meter", ] + if (distributed_camera_common_radar) { + defines += [ "DCAMERA_COMMON_RADAR" ] + sources += [ "src/utils/dcamera_radar_helper.cpp" ] + include_dirs += [ + "${av_transport_path}/common/include", + "${fwk_common_path}/utils/include", + "//third_party/cJSON", + ] + deps = [ "//third_party/cJSON:cjson" ] + } + cflags_cc = cflags relative_install_dir = "chipset-sdk" subsystem_name = "distributedhardware" diff --git a/common/include/utils/dcamera_radar_helper.h b/common/include/utils/dcamera_radar_helper.h new file mode 100644 index 00000000..e5985a67 --- /dev/null +++ b/common/include/utils/dcamera_radar_helper.h @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_DCAMERA_RADAR_HELPER_H +#define OHOS_DCAMERA_RADAR_HELPER_H + +#include +#include +#include +#include "single_instance.h" + +#define OHOS_DCAMERA_FORMID_BASE 2041000 + +namespace OHOS { +namespace DistributedHardware { +constexpr int32_t PROCESS_FAIL = -1; +constexpr int32_t PROCESS_SUCC = 0; +const std::string HOSTPKGNAME = "distributed.hardware.distributedcamera"; + +enum FormId { + SINK_SYSTEM_ABILITY_START = 0, + SINK_SYSTEM_ABILITY_START_SUCC = 3, + SINK_SYSTEM_ABILITY_START_FAIL = 4, + + SOURCE_SYSTEM_ABILITY_START = 5, + SOURCE_SYSTEM_ABILITY_START_SUCC = 8, + SOURCE_SYSTEM_ABILITY_START_FAIL = 9, + + REGISTER_DISTRIBUTED_HARDWARE = 10, + UNREGISTER_DISTRIBUTED_HARDWARE = 11, + + LOADED_HDF = 15, + UNLOADED_HDF = 16, + LOADED_HDF_SUCC = 18, + LOADED_HDF_FAIL = 19, + + SOURCE_DEVICE_REGISTER = 20, + SOURCE_DEVICE_UNREGISTER = 21, + + OPEN_DCAMERA = 25, + CLOSE_DCAMERA = 26, + + CONTROL_CHANNEL_OPEN_SUCC = 30, + CONTROL_CHANNEL_OPEN_FAIL = 31, + + CREATE_SOFTBUS_SERVICE_SUCC = 35, + CREATE_SOFTBUS_SERVICE_FAIL = 36, + + CONFIG_STREAMS = 40, + FREE_STREAMS = 41, + + OPEN_DATA_CHANNEL_SUCC = 45, + OPEN_DATA_CHANNEL_FAIL = 46, + + CAPTURE_START = 50, + CAPTURE_STOP = 51, + CAPTURE_START_SUCC = 53, + CAPTURE_START_FAIL = 54, +}; + +enum class DCameraStage : int32_t { + SYSTEM_ABILITY_START_STAGE = 0X0, + LOADED_HDF_STAGE = 0X1, + OPEN_CONTROL_CHANNEL_STAGE = 0X2, + CONFIG_STREAMS_STAGE = 0X3, + OPEN_DATA_CHANNEL_STAGE = 0X4, + START_CAPTURE_STAGE = 0X5, + STOP_CAPTURE_STAGE = 0X6, + FREE_STREAMS_STAGE = 0X7, + DCAMERA_SWITCH_STAGE = 0X8, + CREATE_SOFTBUS_SERVICE_STAGE = 0X9, +}; + +enum class Module : int32_t { + DCAMERA = 0x0, + SOFTBUS = 0x1, +}; + +struct RadarInfo { + int32_t formID; + int32_t stage; + int32_t result; + int32_t errCode; + int32_t module; +}; + +class DCameraRadarHelper { + DECLARE_SINGLE_INSTANCE(DCameraRadarHelper); +public: + bool ReportDCameraProcess(struct RadarInfo info); +private: + int32_t GetErrorCode(int32_t errCode, int32_t module); + int32_t GetCurrentTime(); +}; +} // namespace DistributedHardware +} // namespace OHOS + +#endif // OHOS_DCAMERA_RADAR_HELPER_H \ No newline at end of file diff --git a/common/src/utils/dcamera_radar_helper.cpp b/common/src/utils/dcamera_radar_helper.cpp new file mode 100644 index 00000000..6cdae829 --- /dev/null +++ b/common/src/utils/dcamera_radar_helper.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dcamera_radar_helper.h" + +#include +#include +#include +#include "distributed_hardware_log.h" +#include "CommunicationRadar.h" + +namespace OHOS { +namespace DistributedHardware { +IMPLEMENT_SINGLE_INSTANCE(DCameraRadarHelper); +bool DCameraRadarHelper::ReportDCameraProcess(struct RadarInfo info) +{ + cJSON* discover = cJSON_CreateObject(); + if (discover == nullptr) { + DHLOGE("cjson create object discover failed."); + return false; + } + cJSON_AddStringToObject(discover, "hostpkgname", HOSTPKGNAME.c_str()); + cJSON_AddNumberToObject(discover, "formID", info.formID + OHOS_DCAMERA_FORMID_BASE); + cJSON_AddNumberToObject(discover, "time", GetCurrentTime()); + cJSON_AddNumberToObject(discover, "stage", info.stage); + cJSON_AddNumberToObject(discover, "result", info.result); + if (info.result != PROCESS_SUCC) { + cJSON_AddNumberToObject(discover, "errCode", GetErrorCode(info.errCode, info.module)); + } + CommunicationRadar::getInstance().ReportProcessInfoToCommRadar(discover, nullptr); + cJSON_Delete(discover); + return true; +} + +int32_t DCameraRadarHelper::GetErrorCode(int32_t errCode, int32_t module) +{ + return ErrCodeOffset(SUBSYS_DISTRIBUTEDHARDWARE, module) + errCode; +} + +int32_t DCameraRadarHelper::GetCurrentTime() +{ + time_t curTime; + time(&curTime); + return curTime; +} +} // namespace DistributedHardware +} // namespace OHOS \ No newline at end of file diff --git a/distributedcamera.gni b/distributedcamera.gni index 64747ef1..588e63e6 100644 --- a/distributedcamera.gni +++ b/distributedcamera.gni @@ -44,4 +44,5 @@ build_flags = [ "-Werror" ] declare_args() { distributed_camera_common = true + distributed_camera_common_radar = false } diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler.cpp index 2e1a622d..ea2922c6 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler.cpp @@ -31,6 +31,7 @@ #include "idistributed_camera_sink.h" #include "isystem_ability_load_callback.h" #include "refbase.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -59,6 +60,18 @@ int32_t DCameraSinkHandler::InitSink(const std::string& params) ReportSaEvent(INIT_SA_EVENT, DISTRIBUTED_HARDWARE_CAMERA_SINK_SA_ID, "init sink sa event."); sptr loadCallback(new DCameraSinkLoadCallback(params)); int32_t ret = sm->LoadSystemAbility(DISTRIBUTED_HARDWARE_CAMERA_SINK_SA_ID, loadCallback); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SINK_SYSTEM_ABILITY_START, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("systemAbilityId: %d load filed, result code: %d.", DISTRIBUTED_HARDWARE_CAMERA_SINK_SA_ID, ret); return DCAMERA_INIT_ERR; @@ -151,4 +164,4 @@ IDistributedHardwareSink *GetSinkHardwareHandler() return &DCameraSinkHandler::GetInstance(); } } // namespace DistributedHardware -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_load_callback.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_load_callback.cpp index f7ea2632..4943021e 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_load_callback.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_load_callback.cpp @@ -19,6 +19,8 @@ #include "dcamera_sink_handler.h" #include "distributed_hardware_log.h" #include "distributed_camera_constants.h" +#include "dcamera_radar_helper.h" + namespace OHOS { class IRemoteObject; } namespace OHOS { @@ -37,6 +39,18 @@ void DCameraSinkLoadCallback::OnLoadSystemAbilitySuccess(int32_t systemAbilityId DHLOGE("remoteObject is null."); return; } +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SINK_SYSTEM_ABILITY_START_SUCC, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCameraSinkHandler::GetInstance().FinishStartSA(params_); } @@ -49,7 +63,19 @@ void DCameraSinkLoadCallback::OnLoadSystemAbilityFail(int32_t systemAbilityId) CreateMsg("dcamera sink OnLoadSystemAbilityFail, systemAbilityId: %d", systemAbilityId)); return; } +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SINK_SYSTEM_ABILITY_START_FAIL, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = PROCESS_FAIL, + .errCode = systemAbilityId, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCameraSinkHandler::GetInstance().FinishStartSAFailed(systemAbilityId); } } -} \ No newline at end of file +} diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp index 8559b002..a1554e50 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler.cpp @@ -25,6 +25,7 @@ #include "distributed_hardware_log.h" #include "if_system_ability_manager.h" #include "iservice_registry.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -58,6 +59,18 @@ int32_t DCameraSourceHandler::InitSource(const std::string& params) ReportSaEvent(INIT_SA_EVENT, DISTRIBUTED_HARDWARE_CAMERA_SOURCE_SA_ID, "init source sa event."); sptr loadCallback(new DCameraSourceLoadCallback(params)); int32_t ret = sm->LoadSystemAbility(DISTRIBUTED_HARDWARE_CAMERA_SOURCE_SA_ID, loadCallback); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SOURCE_SYSTEM_ABILITY_START, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = ret != ERR_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != ERR_OK) { DHLOGE("systemAbilityId: %d load failed, result code: %d.", DISTRIBUTED_HARDWARE_CAMERA_SOURCE_SA_ID, ret); return DCAMERA_INIT_ERR; diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_load_callback.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_load_callback.cpp index d6e52434..67140553 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_load_callback.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_load_callback.cpp @@ -19,6 +19,8 @@ #include "dcamera_source_handler.h" #include "distributed_hardware_log.h" #include "distributed_camera_constants.h" +#include "dcamera_radar_helper.h" + namespace OHOS { class IRemoteObject; } namespace OHOS { @@ -37,6 +39,18 @@ void DCameraSourceLoadCallback::OnLoadSystemAbilitySuccess(int32_t systemAbility DHLOGE("remoteObject is null."); return; } +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SOURCE_SYSTEM_ABILITY_START_SUCC, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCameraSourceHandler::GetInstance().FinishStartSA(params_); } @@ -49,6 +63,18 @@ void DCameraSourceLoadCallback::OnLoadSystemAbilityFail(int32_t systemAbilityId) CreateMsg("dcamera source OnLoadSystemAbilityFail, systemAbilityId: %d", systemAbilityId)); return; } +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SOURCE_SYSTEM_ABILITY_START_FAIL, + .stage = DCameraStage::SYSTEM_ABILITY_START_STAGE, + .result = PROCESS_FAIL, + .errCode = systemAbilityId, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCameraSourceHandler::GetInstance().FinishStartSAFailed(systemAbilityId); } } diff --git a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp index 596db9d1..848a1fba 100644 --- a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp +++ b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp @@ -30,6 +30,7 @@ #include "dcamera_source_service_ipc.h" #include "distributed_camera_errno.h" #include "distributed_hardware_log.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -88,6 +89,18 @@ void DistributedCameraSourceService::OnStop() int32_t DistributedCameraSourceService::InitSource(const std::string& params, const sptr& callback) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + LOADED_HDF, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DistributedCameraSourceService InitSource param: %s", params.c_str()); int32_t ret = LoadDCameraHDF(); if (ret != DCAMERA_OK) { @@ -127,6 +140,18 @@ int32_t DistributedCameraSourceService::ReleaseSource() int32_t DistributedCameraSourceService::RegisterDistributedHardware(const std::string& devId, const std::string& dhId, const std::string& reqId, const EnableParam& param) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + REGISTER_DISTRIBUTED_HARDWARE, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("RegisterDistributedHardware devId: %s, dhId: %s, version: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str(), param.version.c_str()); if (GetCamDevNum() > MAX_CAMERAS_NUMBER) { @@ -168,6 +193,18 @@ int32_t DistributedCameraSourceService::RegisterDistributedHardware(const std::s int32_t DistributedCameraSourceService::UnregisterDistributedHardware(const std::string& devId, const std::string& dhId, const std::string& reqId) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + UNREGISTER_DISTRIBUTED_HARDWARE, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("UnregisterDistributedHardware devId: %s, dhId: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str()); DCameraIndex camIndex(devId, dhId); @@ -208,6 +245,19 @@ int32_t DistributedCameraSourceService::LoadDCameraHDF() DCAMERA_SYNC_TRACE(DCAMERA_LOAD_HDF); DHLOGI("load hdf driver start"); int32_t ret = DCameraHdfOperate::GetInstance().LoadDcameraHDFImpl(); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = ret != DCAMERA_OK ? OHOS_DCAMERA_FORMID_BASE + LOADED_HDF_FAIL : + OHOS_DCAMERA_FORMID_BASE + LOADED_HDF_SUCC, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("load hdf driver failed, ret %d", ret); ReportDcamerInitFail(DCAMERA_INIT_FAIL, DCAMERA_HDF_ERROR, CreateMsg("dcamera load hdf driver fail.")); @@ -221,6 +271,18 @@ int32_t DistributedCameraSourceService::UnLoadCameraHDF() { DHLOGI("unload hdf driver start"); int32_t ret = DCameraHdfOperate::GetInstance().UnLoadDcameraHDFImpl(); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + UNLOADED_HDF, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("unload hdf driver failed, ret %d", ret); return ret; diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp index b8c16c89..fd031104 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp @@ -28,6 +28,7 @@ #include "dcamera_source_controller.h" #include "dcamera_source_input.h" #include "dcamera_utils_tools.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -215,6 +216,18 @@ void DCameraSourceDev::OnEvent(DCameraSourceEvent& event) int32_t DCameraSourceDev::Register(std::shared_ptr& param) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SOURCE_DEVICE_REGISTER, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCAMERA_SYNC_TRACE(DCAMERA_REGISTER_CAMERA); DHLOGI("DCameraSourceDev Execute Register devId: %s dhId: %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -261,6 +274,18 @@ int32_t DCameraSourceDev::Register(std::shared_ptr& param) int32_t DCameraSourceDev::UnRegister(std::shared_ptr& param) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + SOURCE_DEVICE_UNREGISTER, + .stage = DCameraStage::LOADED_HDF_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DCAMERA_SYNC_TRACE(DCAMERA_UNREGISTER_CAMERA); DHLOGI("DCameraSourceDev Execute UnRegister devId: %s dhId: %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -299,6 +324,18 @@ int32_t DCameraSourceDev::UnRegister(std::shared_ptr& param) int32_t DCameraSourceDev::OpenCamera() { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + OPEN_DCAMERA, + .stage = DCameraStage::DCAMERA_SWITCH_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DCameraSourceDev Execute OpenCamera devId %s dhId %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); ReportCameraOperaterEvent(OPEN_CAMERA_EVENT, GetAnonyString(devId_), dhId_, "execute open camera event."); @@ -323,6 +360,18 @@ int32_t DCameraSourceDev::OpenCamera() int32_t DCameraSourceDev::CloseCamera() { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + CLOSE_DCAMERA, + .stage = DCameraStage::DCAMERA_SWITCH_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DCameraSourceDev Execute CloseCamera devId %s dhId %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); ReportCameraOperaterEvent(CLOSE_CAMERA_EVENT, GetAnonyString(devId_), dhId_, "execute close camera event."); @@ -408,6 +457,18 @@ int32_t DCameraSourceDev::ReleaseAllStreams() int32_t DCameraSourceDev::StartCapture(std::vector>& captureInfos) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + CAPTURE_START, + .stage = DCameraStage::START_CAPTURE_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif HitraceAndHisyseventImpl(captureInfos); DHLOGI("DCameraSourceDev Execute StartCapture devId %s dhId %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -444,6 +505,19 @@ int32_t DCameraSourceDev::StartCapture(std::vectorStartCapture(captures); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = ret != DCAMERA_OK ? OHOS_DCAMERA_FORMID_BASE + CAPTURE_START_FAIL : + OHOS_DCAMERA_FORMID_BASE + CAPTURE_START_SUCC, + .stage = DCameraStage::START_CAPTURE_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceDev Execute StartCapture StartCapture failed, ret: %d, devId: %s dhId: %s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); @@ -476,6 +550,18 @@ void DCameraSourceDev::HitraceAndHisyseventImpl(std::vector& streamIds, bool& isAllStop) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + CAPTURE_STOP, + .stage = DCameraStage::STOP_CAPTURE_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DCameraSourceDev Execute StopCapture devId %s dhId %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); int32_t ret = input_->StopCapture(streamIds, isAllStop); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp index 432d8d33..978ec77c 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp @@ -33,6 +33,7 @@ #include "distributed_hardware_log.h" #include "idistributed_camera_sink.h" #include "dcamera_low_latency.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -156,6 +157,19 @@ int32_t DCameraSourceController::ChannelNeg(std::shared_ptr& DHLOGD("devId: %s, dhId: %s channelNegCommand: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str(), cmd.command_.c_str()); ret = camSinkSrv->ChannelNeg(dhId, jsonStr); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = ret != DCAMERA_OK ? OHOS_DCAMERA_FORMID_BASE + OPEN_DATA_CHANNEL_FAIL : + OHOS_DCAMERA_FORMID_BASE + OPEN_DATA_CHANNEL_SUCC, + .stage = DCameraStage::OPEN_DATA_CHANNEL_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("ChannelNeg rpc failed ret: %d, devId: %s, dhId: %s", ret, GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str()); @@ -296,6 +310,19 @@ int32_t DCameraSourceController::OpenChannel(std::shared_ptr& o return ret; } ret = camSinkSrv->OpenChannel(dhId, jsonStr); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = ret != DCAMERA_OK ? OHOS_DCAMERA_FORMID_BASE + CONTROL_CHANNEL_OPEN_FAIL : + OHOS_DCAMERA_FORMID_BASE + CONTROL_CHANNEL_OPEN_SUCC, + .stage = DCameraStage::OPEN_CONTROL_CHANNEL_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceController SA OpenChannel failed %d", ret); return ret; diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp index 948f7286..3a2dbf86 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp @@ -25,6 +25,7 @@ #include "distributed_camera_constants.h" #include "distributed_camera_errno.h" #include "distributed_hardware_log.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -46,6 +47,18 @@ DCameraSourceInput::~DCameraSourceInput() int32_t DCameraSourceInput::ConfigStreams(std::vector>& streamInfos) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + CONFIG_STREAMS, + .stage = DCameraStage::CONFIG_STREAMS_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DCameraSourceInput ConfigStreams devId %s dhId %s, size: %d", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str(), streamInfos.size()); int32_t ret = ReleaseAllStreams(); @@ -98,6 +111,18 @@ int32_t DCameraSourceInput::ConfigStreams(std::vector& streamIds, bool& isAllRelease) { +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = OHOS_DCAMERA_FORMID_BASE + FREE_STREAMS, + .stage = DCameraStage::FREE_STREAMS_STAGE, + .result = PROCESS_SUCC, + .errCode = 0, + .module = Module::DCAMERA, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif DHLOGI("DCameraSourceInput ReleaseStreams devId %s dhId %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); int32_t ret = dataProcess_[CONTINUOUS_FRAME]->ReleaseStreams(streamIds); diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 5108d4c0..b4d0b4e4 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -26,6 +26,7 @@ #include "softbus_errcode.h" #include "dcamera_utils_tools.h" #include "dcamera_frame_info.h" +#include "dcamera_radar_helper.h" namespace OHOS { namespace DistributedHardware { @@ -125,6 +126,19 @@ int32_t DCameraSoftbusAdapter::CreateSoftbusSessionServer(std::string sessionNam } int32_t ret = CreateSessionServer(PKG_NAME.c_str(), sessionName.c_str(), &sessListeners_[role]); +#ifdef DCAMERA_COMMON_RADAR + struct RadarInfo info = { + .formID = ret != DCAMERA_OK ? OHOS_DCAMERA_FORMID_BASE + CREATE_SOFTBUS_SERVICE_SUCC : + OHOS_DCAMERA_FORMID_BASE + CREATE_SOFTBUS_SERVICE_SUCC, + .stage = DCameraStage::CREATE_SOFTBUS_SERVICE_STAGE, + .result = ret != DCAMERA_OK ? PROCESS_FAIL : PROCESS_SUCC, + .errCode = ret, + .module = Module::SOFTBUS, + }; + if (!DCameraRadarHelper::GetInstance().ReportDCameraProcess(info)) { + DHLOGE("report DCameraProcess fail"); + } +#endif if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter CreateSessionServer failed, ret: %d", ret); ReportDcamerOptFail(DCAMERA_OPT_FAIL, DCAMERA_CREATE_SESSIONSVR_ERROR, -- Gitee