diff --git a/common/BUILD.gn b/common/BUILD.gn index c5be259d6cb040b33af86501fa7d96d9e35efe2f..c09d06867f96fd2228c512b5b38350c400115339 100644 --- a/common/BUILD.gn +++ b/common/BUILD.gn @@ -20,6 +20,7 @@ ohos_shared_library("distributed_screen_utils") { include_dirs = [ "//utils/native/base/include", "include", + "//base/hiviewdfx/hisysevent/interfaces/native/innerkits/hisysevent/include", "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter", ] diff --git a/common/include/dscreen_errcode.h b/common/include/dscreen_errcode.h index 95fd5c3f811b694438d87cee46ed5a2b86a415e5..0ffc29c2362446abe63f91a027fe7a6c36f8b8d5 100644 --- a/common/include/dscreen_errcode.h +++ b/common/include/dscreen_errcode.h @@ -55,6 +55,7 @@ enum DScreenErrorCode { ERR_DH_SCREEN_SA_DSCREEN_NEGOTIATE_CODEC_FAIL = -500031, ERR_DH_SCREEN_SA_LOAD_TIMEOUT = -500032, ERR_DH_SCREEN_SA_HIDUMPER_ERROR = -500033, + ERR_DH_SCREEN_SA_ENABLE_JSON_ERROR = -500034, // Transport component error code ERR_DH_SCREEN_TRANS_ERROR = -51000, ERR_DH_SCREEN_TRANS_TIMEOUT = -51001, diff --git a/common/include/dscreen_hisysevent.h b/common/include/dscreen_hisysevent.h index 7fe740fc666e11481a47e293e685f96e74024b58..b16b102ae54ce566872692b672f0a4f7a3155610 100644 --- a/common/include/dscreen_hisysevent.h +++ b/common/include/dscreen_hisysevent.h @@ -22,15 +22,32 @@ namespace OHOS { namespace DistributedHardware { -const std::string SA_ERROR = "DSCREEN_SA_START_ERROR"; -const std::string WINDOW_ERROR = "DSCREEN_WINDOW_ERROR"; -const std::string VIRTUALSCREEN_ERROR = "DSCREEN_VIRTUALSCREEN_ERROR"; -const std::string VIDEO_DECODER_ERROR = "DSCREEN_VIDEO_DECODER_ERROR"; -const std::string VIDEO_ENCODER_ERROR = "DSCREEN_VIDEO_ENCODER_ERROR"; -const std::string SOFTBUS_SESSIONSERVER_ERROR = "DSCREEN_SOFTBUS_SESSIONSERVER_ERROR"; -const std::string SOFTBUS_SESSION_ERROR = "DSCREEN_SOFTBUS_SESSION_ERROR"; +const std::string DSCREEN_INIT_FAIL = "DSCREEN_INIT_FAIL"; +const std::string DSCREEN_REGISTER_FAIL = "DSCREEN_REGISTER_FAIL"; +const std::string DSCREEN_UNREGISTER_FAIL = "DSCREEN_UNREGISTER_FAIL"; +const std::string DSCREEN_OPT_FAIL = "DSCREEN_OPT_FAIL"; -void ReportScreenEvent(const std::string &eventName, const std::string &errMsg); +const std::string DSCREEN_INIT = "DSCREEN_INIT"; +const std::string DSCREEN_REGISTER = "DSCREEN_REGISTER"; +const std::string DSCREEN_UNREGISTER = "DSCREEN_UNREGISTER"; +const std::string DSCREEN_PROJECT_START = "DSCREEN_PROJECT_START"; +const std::string DSCREEN_PROJECT_END = "DSCREEN_PROJECT_END"; +const std::string DSCREEN_EXIT = "DSCREEN_EXIT"; + +void ReportSaFail(const std::string &eventName, int32_t errCode, int32_t saId, const std::string &errMsg); +void ReportRegisterFail(const std::string &eventName, int32_t errCode, const std::string &devId, + const std::string &dhId, const std::string &errMsg); +void ReportUnRegisterFail(const std::string &eventName, int32_t errCode, const std::string &devId, + const std::string &dhId, const std::string &errMsg); +void ReportOptFail(const std::string &eventName, int32_t errCode, const std::string &errMsg); + +void ReportSaEvent(const std::string &eventName, int32_t saId, const std::string &errMsg); +void ReportRegisterScreenEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg); +void ReportUnRegisterScreenEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg); +void ReportScreenMirrorEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg); } // namespace DistributedHardware } // namespace OHOS #endif \ No newline at end of file diff --git a/common/src/dscreen_hisysevent.cpp b/common/src/dscreen_hisysevent.cpp index 245f7fc80be9dfd806bd4a8e32d0d5560625c28d..102ab480f8e39ae794d0324babf0aef55c153b62 100644 --- a/common/src/dscreen_hisysevent.cpp +++ b/common/src/dscreen_hisysevent.cpp @@ -12,23 +12,126 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include "dscreen_hisysevent.h" #include #include "dscreen_errcode.h" #include "dscreen_log.h" -#include "dscreen_hisysevent.h" namespace OHOS { namespace DistributedHardware { -void ReportScreenEvent(const std::string &eventName, const std::string &errMsg) +void ReportSaFail(const std::string &eventName, int32_t errCode, int32_t saId, const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, + "ERRCODE", errCode, + "SAID", saId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportRegisterFail(const std::string &eventName, int32_t errCode, const std::string &devId, + const std::string &dhId, const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, + "ERRCODE", errCode, + "DEVID", devId, + "DHID", dhId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportUnRegisterFail(const std::string &eventName, int32_t errCode, const std::string &devId, + const std::string &dhId, const std::string &errMsg) { int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, eventName, OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, - "PID", getpid(), - "UID", getuid(), + "ERRCODE", errCode, + "DEVID", devId, + "DHID", dhId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportOptFail(const std::string &eventName, int32_t errCode, const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, + "ERRCODE", errCode, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportSaEvent(const std::string &eventName, int32_t saId, const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, + "SAID", saId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportRegisterScreenEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, + "DEVID", devId, + "DHID", dhId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportUnRegisterScreenEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, + "DEVID", devId, + "DHID", dhId, + "MSG", errMsg); + if (res != DH_SUCCESS) { + DHLOGE("Write HiSysEvent error, res:%d", res); + } +} + +void ReportScreenMirrorEvent(const std::string &eventName, const std::string &devId, const std::string &dhId, + const std::string &errMsg) +{ + int32_t res = OHOS::HiviewDFX::HiSysEvent::Write( + OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_SCREEN, + eventName, + OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, + "DEVID", devId, + "DHID", dhId, "MSG", errMsg); if (res != DH_SUCCESS) { DHLOGE("Write HiSysEvent error, res:%d", res); diff --git a/hisysevent.yaml b/hisysevent.yaml index bf0bf5d2b219891a44d3e5d25583b92f464639fd..25733e2623095b72b073a4cf36a135750f522fe1 100644 --- a/hisysevent.yaml +++ b/hisysevent.yaml @@ -39,49 +39,61 @@ domain: DISTSCREEN -SA_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: dscreen sa error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MSG: {type: STRING, desc: dscreen sa error info} +DSCREEN_INIT_FAIL: + __BASE: {type: FAULT, level: CRITICAL, desc: dscreen init sa event} + ERRCODE: {type: INT32, desc: dscreen init fail error code} + SAID: {type: INT32, desc: dscreen SAID} + MSG: {type: STRING, desc: dscreen init sa event} -VIRTUALSCREEN_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: virtual screen error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MSG: {type: STRING, desc: dscreen virtual screen error info} +DSCREEN_REGISTER_FAIL: + __BASE: {type: FAULT, level: CRITICAL, desc: dscreen register event} + ERRCODE: {type: INT32, desc: dscreen register fail error code} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen register event} -SOFTBUS_SESSIONSERVER_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: softbus sessionserver error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - PKGNAME: {type: STRING, desc: softbus package name} - SESSIONNAME: {type: STRING, desc: softbus session name} - MSG: {type: STRING, desc: dscreen softbus sessionserver error info} +DSCREEN_UNREGISTER_FAIL: + __BASE: {type: FAULT, level: CRITICAL, desc: dscreen unregister event} + ERRCODE: {type: INT32, desc: dscreen unregister fail error code} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen unregister event} -SOFTBUS_SESSION_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: softbus session error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MYSESSIONNAME: {type: STRING, desc: softbus my session name} - PEERSESSIONNAME: {type: STRING, desc: softbus peer session name} - PEERDEVID: {type: STRING, desc: peer network id} - MSG: {type: STRING, desc: dscreen softbus session error info} +DSCREEN_OPT_FAIL: + __BASE: {type: FAULT, level: CRITICAL, desc: dscreen opt event} + ERRCODE: {type: INT32, desc: dscreen opt fail error code} + MSG: {type: STRING, desc: dscreen opt event} -VIDEO_ENCODER_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: video encoder error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MSG: {type: STRING, desc: dscreen video encoder error info} +DSCREEN_INIT: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen init sa event} + SAID: {type: INT32, desc: dscreen SAID} + MSG: {type: STRING, desc: dscreen init sa event} -VIDEO_DECODER_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: video decoder error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MSG: {type: STRING, desc: dscreen video decoder error info} +DSCREEN_EXIT: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen release sa event} + SAID: {type: INT32, desc: dscreen SAID} + MSG: {type: STRING, desc: dscreen release sa event} -WINDOW_ERROR: - __BASE: {type: FAULT, level: CRITICAL, desc: screenregion window error occured} - PID: {type: INT32, desc: dscreen pid} - UID: {type: INT32, desc: dscreen uid} - MSG: {type: STRING, desc: dscreen virtual window error info} \ No newline at end of file +DSCREEN_REGISTER: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen register event} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen register event} + +DSCREEN_UNREGISTER: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen unregister event} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen unregister event} + +DSCREEN_PROJECT_START: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen open event} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen open event} + +DSCREEN_PROJECT_END: + __BASE: {type: BEHAVIOR, level: MINOR, desc: dscreen close event} + DEVID: {type: STRING, desc: dscreen devId} + DHID: {type: STRING, desc: dscreen dhId} + MSG: {type: STRING, desc: dscreen close event} \ No newline at end of file diff --git a/interfaces/innerkits/native_cpp/screen_sink/src/callback/dscreen_sink_load_callback.cpp b/interfaces/innerkits/native_cpp/screen_sink/src/callback/dscreen_sink_load_callback.cpp index dec2afe0cfa1f5e447a5ad5b3140ae654d57a26c..caec8439cc4bf42b15c8da1428ac867f980e3242 100644 --- a/interfaces/innerkits/native_cpp/screen_sink/src/callback/dscreen_sink_load_callback.cpp +++ b/interfaces/innerkits/native_cpp/screen_sink/src/callback/dscreen_sink_load_callback.cpp @@ -16,6 +16,7 @@ #include +#include "dscreen_constants.h" #include "dscreen_errcode.h" #include "dscreen_hisysevent.h" #include "dscreen_log.h" @@ -42,7 +43,8 @@ void DScreenSinkLoadCallback::OnLoadSystemAbilitySuccess( void DScreenSinkLoadCallback::OnLoadSystemAbilityFail(int32_t systemAbilityId) { DHLOGE("load screen SA failed, systemAbilityId:%d", systemAbilityId); - ReportScreenEvent(SA_ERROR, "dscreen sink OnLoadSystemAbilityFail."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink OnLoadSystemAbilityFail."); } } } \ No newline at end of file diff --git a/interfaces/innerkits/native_cpp/screen_sink/src/dscreen_sink_handler.cpp b/interfaces/innerkits/native_cpp/screen_sink/src/dscreen_sink_handler.cpp index 6938403e7995255956e9d71085949b027a8cc60e..c6bc4f3b062c9db0162f770eefaf92b1a950880c 100644 --- a/interfaces/innerkits/native_cpp/screen_sink/src/dscreen_sink_handler.cpp +++ b/interfaces/innerkits/native_cpp/screen_sink/src/dscreen_sink_handler.cpp @@ -51,6 +51,8 @@ int32_t DScreenSinkHandler::InitSink(const std::string ¶ms) sptr samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (!samgr) { DHLOGE("Failed to get system ability mgr."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_GET_SAMGR_FAIL, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink get samgr failed."); return ERR_DH_SCREEN_SA_GET_SAMGR_FAIL; } sptr loadCallback = new DScreenSinkLoadCallback(params); @@ -59,7 +61,8 @@ int32_t DScreenSinkHandler::InitSink(const std::string ¶ms) if (ret != ERR_OK) { DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d", DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, ret); - ReportScreenEvent(SA_ERROR, "dscreen sink LoadSystemAbility call failed."); + ReportSaFail(DSCREEN_INIT_FAIL, ret, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink LoadSystemAbility call failed."); return ERR_DH_SCREEN_SA_GET_SINKPROXY_FAIL; } } @@ -68,7 +71,8 @@ int32_t DScreenSinkHandler::InitSink(const std::string ¶ms) [this]() { return dScreenSinkProxy_ != nullptr; }); if (!waitStatus) { DHLOGE("screen load sa timeout"); - ReportScreenEvent(SA_ERROR, "dscreen sink sa load timeout."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_LOAD_TIMEOUT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink sa load timeout."); return ERR_DH_SCREEN_SA_LOAD_TIMEOUT; } @@ -85,10 +89,13 @@ void DScreenSinkHandler::FinishStartSA(const std::string ¶ms, dScreenSinkProxy_ = iface_cast(remoteObject); if ((!dScreenSinkProxy_) || (!dScreenSinkProxy_->AsObject())) { DHLOGE("Failed to get dscreen sink proxy."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink get proxy failed."); return; } dScreenSinkProxy_->InitSink(params); proxyConVar_.notify_one(); + ReportSaEvent(DSCREEN_INIT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, "dscreen sink sa load success."); } int32_t DScreenSinkHandler::ReleaseSink() @@ -97,6 +104,8 @@ int32_t DScreenSinkHandler::ReleaseSink() std::lock_guard lock(proxyMutex_); if (!dScreenSinkProxy_) { DHLOGE("screen sink proxy not init."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, + "dscreen sink proxy not init."); return ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT; } diff --git a/interfaces/innerkits/native_cpp/screen_source/src/callback/dscreen_source_load_callback.cpp b/interfaces/innerkits/native_cpp/screen_source/src/callback/dscreen_source_load_callback.cpp index 49ec00c6882b8fc3a4bbea2d4d3381e738258699..28bac922bddeab30c2fca94e4a1842eaa174f334 100644 --- a/interfaces/innerkits/native_cpp/screen_source/src/callback/dscreen_source_load_callback.cpp +++ b/interfaces/innerkits/native_cpp/screen_source/src/callback/dscreen_source_load_callback.cpp @@ -16,6 +16,7 @@ #include +#include "dscreen_constants.h" #include "dscreen_errcode.h" #include "dscreen_hisysevent.h" #include "dscreen_log.h" @@ -41,7 +42,8 @@ void DScreenSourceLoadCallback::OnLoadSystemAbilitySuccess( void DScreenSourceLoadCallback::OnLoadSystemAbilityFail(int32_t systemAbilityId) { DHLOGE("load screen SA failed, systemAbilityId:%d", systemAbilityId); - ReportScreenEvent(SA_ERROR, "dscreen source OnLoadSystemAbilityFail."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source OnLoadSystemAbilityFail."); } } } diff --git a/interfaces/innerkits/native_cpp/screen_source/src/dscreen_source_handler.cpp b/interfaces/innerkits/native_cpp/screen_source/src/dscreen_source_handler.cpp index fec82f9f1dab039f5772e47354ea331545ee9ca3..06894f941cd051bc3b5064eaf6287394410a0e88 100644 --- a/interfaces/innerkits/native_cpp/screen_source/src/dscreen_source_handler.cpp +++ b/interfaces/innerkits/native_cpp/screen_source/src/dscreen_source_handler.cpp @@ -56,6 +56,8 @@ int32_t DScreenSourceHandler::InitSource(const std::string ¶ms) sptr samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (!samgr) { DHLOGE("Failed to get system ability mgr."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_GET_SAMGR_FAIL, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source get samgr failed."); return ERR_DH_SCREEN_SA_GET_SAMGR_FAIL; } sptr loadCallback = new DScreenSourceLoadCallback(params); @@ -64,7 +66,8 @@ int32_t DScreenSourceHandler::InitSource(const std::string ¶ms) if (ret != ERR_OK) { DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d", DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, ret); - ReportScreenEvent(SA_ERROR, "dscreen source LoadSystemAbility call failed."); + ReportSaFail(DSCREEN_INIT_FAIL, ret, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source LoadSystemAbility call failed."); return ERR_DH_SCREEN_SA_GET_SOURCEPROXY_FAIL; } } @@ -73,7 +76,8 @@ int32_t DScreenSourceHandler::InitSource(const std::string ¶ms) [this]() { return (dScreenSourceProxy_ != nullptr); }); if (!waitStatus) { DHLOGE("screen load sa timeout."); - ReportScreenEvent(SA_ERROR, "dscreen source sa load timeout."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_LOAD_TIMEOUT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source sa load timeout."); return ERR_DH_SCREEN_SA_LOAD_TIMEOUT; } @@ -90,10 +94,13 @@ void DScreenSourceHandler::FinishStartSA(const std::string ¶ms, dScreenSourceProxy_ = iface_cast(remoteObject); if ((!dScreenSourceProxy_) || (!dScreenSourceProxy_->AsObject())) { DHLOGE("Failed to get dscreen source proxy."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SOURCEPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source get proxy failed."); return; } dScreenSourceProxy_->InitSource(params, dScreenSourceCallback_); proxyConVar_.notify_one(); + ReportSaEvent(DSCREEN_INIT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, "dscreen source sa load success."); } int32_t DScreenSourceHandler::ReleaseSource() @@ -102,6 +109,8 @@ int32_t DScreenSourceHandler::ReleaseSource() std::lock_guard lock(proxyMutex_); if (!dScreenSourceProxy_) { DHLOGE("screen source proxy not init."); + ReportSaFail(DSCREEN_INIT_FAIL, ERR_DH_SCREEN_SA_SOURCEPROXY_NOT_INIT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, + "dscreen source proxy not init."); return ERR_DH_SCREEN_SA_SOURCEPROXY_NOT_INIT; } int32_t ret = dScreenSourceProxy_->ReleaseSource(); diff --git a/services/screenclient/src/screen_client_window_adapter.cpp b/services/screenclient/src/screen_client_window_adapter.cpp index 30c09c5052921bbb3cd87f11178f2e27f6859fe9..8b61b2f69bb033e113e98fc530de945eccf9ba98 100644 --- a/services/screenclient/src/screen_client_window_adapter.cpp +++ b/services/screenclient/src/screen_client_window_adapter.cpp @@ -64,7 +64,6 @@ sptr ScreenClientWindowAdapter::CreateWindow(std::shared_ptr window = Rosen::Window::Create(windowName, option); if (window == nullptr || window->GetSurfaceNode() == nullptr) { DHLOGE("Create screen client window failed."); - ReportScreenEvent(WINDOW_ERROR, "create window failed."); return nullptr; } auto surface = window->GetSurfaceNode()->GetSurface(); @@ -113,7 +112,6 @@ int32_t ScreenClientWindowAdapter::ShowWindow(int32_t windowId) } if (OHOS::Rosen::WMError::WM_OK != window->Show()) { DHLOGE("Show window failed."); - ReportScreenEvent(WINDOW_ERROR, "show window failed."); return ERR_DH_SCREEN_SCREENCLIENT_SHOW_WINDOW_ERROR; } DHLOGD("Show window (windowId = %d) success.", windowId); diff --git a/services/screendemo/decoder_demo.cpp b/services/screendemo/decoder_demo.cpp index 90242d37f86a9d474ba889557e8c8bd99dbc0dc7..e39e930cb95b4e78aeb723644f28ee39af40b0aa 100644 --- a/services/screendemo/decoder_demo.cpp +++ b/services/screendemo/decoder_demo.cpp @@ -140,19 +140,21 @@ int32_t VDecDemo::Stop() isRunning_.store(false); if (inputLoop_ != nullptr && inputLoop_->joinable()) { - unique_lock lock(signal_->inMutex_); - signal_->inQueue_.push(INDEX_CONSTANT); - signal_->inCond_.notify_all(); - lock.unlock(); + { + unique_lock inLock(signal_->inMutex_); + signal_->inQueue_.push(INDEX_CONSTANT); + signal_->inCond_.notify_all(); + } inputLoop_->join(); inputLoop_.reset(); } if (outputLoop_ != nullptr && outputLoop_->joinable()) { - unique_lock lock(signal_->outMutex_); - signal_->outQueue_.push(INDEX_CONSTANT); - signal_->outCond_.notify_all(); - lock.unlock(); + { + unique_lock outLock(signal_->outMutex_); + signal_->outQueue_.push(INDEX_CONSTANT); + signal_->outCond_.notify_all(); + } outputLoop_->join(); outputLoop_.reset(); } diff --git a/services/screenservice/sinkservice/BUILD.gn b/services/screenservice/sinkservice/BUILD.gn index 6849e2e5fa80effcc6e4c78b43ed2ec71b84180d..6055803428fadf1a6eebab1ff1a0ce60cbc4eaea 100644 --- a/services/screenservice/sinkservice/BUILD.gn +++ b/services/screenservice/sinkservice/BUILD.gn @@ -18,6 +18,7 @@ import( ohos_shared_library("distributed_screen_sink") { include_dirs = [ + "//base/hiviewdfx/hisysevent/interfaces/native/innerkits/hisysevent/include", "//third_party/json/include", "//utils/native/base/include", "//utils/system/safwk/native/include", diff --git a/services/screenservice/sinkservice/dscreenservice/src/dscreen_sink_service.cpp b/services/screenservice/sinkservice/dscreenservice/src/dscreen_sink_service.cpp index 94aabb65ba6e093e31fe10d1a4c997e7699a59f4..8da0e912eb6d6524415a09a4461edaf7eabf383d 100644 --- a/services/screenservice/sinkservice/dscreenservice/src/dscreen_sink_service.cpp +++ b/services/screenservice/sinkservice/dscreenservice/src/dscreen_sink_service.cpp @@ -24,6 +24,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_log.h" #include "dscreen_util.h" @@ -78,6 +79,7 @@ int32_t DScreenSinkService::ReleaseSink() DHLOGI("ReleaseSink"); ScreenRegionManager::GetInstance().ReleaseAllRegions(); DHLOGI("exit sink sa process"); + ReportSaEvent(DSCREEN_EXIT, DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID, "dscreen sink sa exit success."); exit(0); return DH_SUCCESS; } diff --git a/services/screenservice/sinkservice/screenregionmgr/src/screenregion.cpp b/services/screenservice/sinkservice/screenregionmgr/src/screenregion.cpp index cc3b4e28ff45f18b7ab372ad6021010b84b2b9a8..ee5c18d708baab73b33150158396e136dfa420a4 100644 --- a/services/screenservice/sinkservice/screenregionmgr/src/screenregion.cpp +++ b/services/screenservice/sinkservice/screenregionmgr/src/screenregion.cpp @@ -17,6 +17,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_log.h" #include "dscreen_util.h" #include "screen_client.h" @@ -99,17 +100,20 @@ int32_t ScreenRegion::SetUp() windowId_ = ScreenClient::GetInstance().AddWindow(windowProperty); if (windowId_ < 0) { DHLOGE("AddWindow failed."); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_SA_DSCREEN_SCREENGION_SETUP_FAILED, "AddWindow failed."); return ERR_DH_SCREEN_SA_DSCREEN_SCREENGION_SETUP_FAILED; } int32_t ret = ScreenClient::GetInstance().ShowWindow(windowId_); if (ret != DH_SUCCESS) { DHLOGE("show window failed."); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "show window failed."); return ERR_DH_SCREEN_SA_DSCREEN_SCREENGION_SETUP_FAILED; } sptr surface = ScreenClient::GetInstance().GetSurface(windowId_); if (!surface) { DHLOGE("get window surface failed."); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_SA_DSCREEN_SCREENGION_SETUP_FAILED, "get window surface failed."); return ERR_DH_SCREEN_SA_DSCREEN_SCREENGION_SETUP_FAILED; } diff --git a/services/screenservice/sourceservice/BUILD.gn b/services/screenservice/sourceservice/BUILD.gn index 7421c70638ee0ccebc0fd2caa8e34a3842c36194..dc742b915c125bea7dcabd052d5b64dc2e6611c3 100644 --- a/services/screenservice/sourceservice/BUILD.gn +++ b/services/screenservice/sourceservice/BUILD.gn @@ -18,6 +18,7 @@ import( ohos_shared_library("distributed_screen_source") { include_dirs = [ + "//base/hiviewdfx/hisysevent/interfaces/native/innerkits/hisysevent/include", "//third_party/json/include", "${windowmanager_path}/interfaces/innerkits/dm", "//utils/native/base/include", diff --git a/services/screenservice/sourceservice/dscreenmgr/include/dscreen.h b/services/screenservice/sourceservice/dscreenmgr/include/dscreen.h index f00fdf05b789f45c55f9e7a7f33dbd1e41e5b97e..3729dd6fba59ad44f5b89a04e5e03bb02a2965b2 100644 --- a/services/screenservice/sourceservice/dscreenmgr/include/dscreen.h +++ b/services/screenservice/sourceservice/dscreenmgr/include/dscreen.h @@ -97,6 +97,7 @@ private: void HandleDisable(const std::string &taskId); void HandleConnect(); void HandleDisconnect(); + int32_t CheckJsonData(json &attrJson); int32_t NegotiateCodecType(const std::string &remoteCodecInfoStr); int32_t SetUp(); int32_t Start(); diff --git a/services/screenservice/sourceservice/dscreenmgr/src/dscreen.cpp b/services/screenservice/sourceservice/dscreenmgr/src/dscreen.cpp index ca5839b5dc3df4b4e3c93db83da18d347d1824ed..f41ed6fe8e3a62e9827f3d6688e4edbe3fdad2db 100644 --- a/services/screenservice/sourceservice/dscreenmgr/src/dscreen.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/src/dscreen.cpp @@ -20,6 +20,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_log.h" #include "dscreen_util.h" #include "screen_manager_adapter.h" @@ -182,8 +183,7 @@ void DScreen::HandleTask(const std::shared_ptr &task) void DScreen::HandleEnable(const std::string ¶m, const std::string &taskId) { DHLOGI("HandleEnable, devId: %s, dhId: %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); - if (curState_ == ENABLED || curState_ == ENABLING || - curState_ == CONNECTING || curState_ == CONNECTED) { + if (curState_ == ENABLED || curState_ == ENABLING || curState_ == CONNECTING || curState_ == CONNECTED) { dscreenCallback_->OnRegResult(shared_from_this(), taskId, DH_SUCCESS, ""); return; } @@ -194,19 +194,13 @@ void DScreen::HandleEnable(const std::string ¶m, const std::string &taskId) } json attrJson = json::parse(param, nullptr, false); - if (attrJson.is_discarded()) { - DHLOGE("enable param json is invalid."); + int32_t ret = CheckJsonData(attrJson); + if (ret != DH_SUCCESS) { + DHLOGE("check json data failed."); dscreenCallback_->OnRegResult(shared_from_this(), taskId, ERR_DH_SCREEN_SA_ENABLE_FAILED, "enable param json is invalid."); - return; - } - - if (!attrJson.contains(KEY_SCREEN_WIDTH) || - !attrJson.contains(KEY_SCREEN_HEIGHT) || - !attrJson.contains(KEY_CODECTYPE)) { - DHLOGE("enable param is invalid."); - dscreenCallback_->OnRegResult(shared_from_this(), taskId, ERR_DH_SCREEN_SA_ENABLE_FAILED, - "enable param is invalid."); + ReportRegisterFail(DSCREEN_REGISTER_FAIL, ERR_DH_SCREEN_SA_ENABLE_FAILED, GetAnonyString(devId_).c_str(), + GetAnonyString(dhId_).c_str(), "check json data failed."); return; } @@ -214,11 +208,13 @@ void DScreen::HandleEnable(const std::string ¶m, const std::string &taskId) videoParam_->SetScreenHeight(attrJson[KEY_SCREEN_HEIGHT]); // negotiate codecType - int32_t ret = NegotiateCodecType(attrJson[KEY_CODECTYPE]); + ret = NegotiateCodecType(attrJson[KEY_CODECTYPE]); if (ret != DH_SUCCESS) { DHLOGE("negotiate codec type failed."); dscreenCallback_->OnRegResult(shared_from_this(), taskId, ERR_DH_SCREEN_SA_ENABLE_FAILED, "negotiate codec type failed."); + ReportRegisterFail(DSCREEN_REGISTER_FAIL, ERR_DH_SCREEN_SA_ENABLE_FAILED, GetAnonyString(devId_).c_str(), + GetAnonyString(dhId_).c_str(), "negotiate codec type failed."); return; } @@ -227,11 +223,30 @@ void DScreen::HandleEnable(const std::string ¶m, const std::string &taskId) DHLOGE("create virtual screen failed."); dscreenCallback_->OnRegResult(shared_from_this(), taskId, ERR_DH_SCREEN_SA_ENABLE_FAILED, "create virtual screen failed."); + ReportRegisterFail(DSCREEN_REGISTER_FAIL, ERR_DH_SCREEN_SA_ENABLE_FAILED, GetAnonyString(devId_).c_str(), + GetAnonyString(dhId_).c_str(), "create virtual screen failed."); return; } screenId_ = screenId; SetState(ENABLED); dscreenCallback_->OnRegResult(shared_from_this(), taskId, DH_SUCCESS, ""); + ReportRegisterScreenEvent(DSCREEN_REGISTER, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str(), + "dscreen enable success."); +} + +int32_t DScreen::CheckJsonData(json &attrJson) +{ + if (attrJson.is_discarded()) { + DHLOGE("enable param json is invalid."); + return ERR_DH_SCREEN_SA_ENABLE_JSON_ERROR; + } + + if (!attrJson.contains(KEY_SCREEN_WIDTH) || !attrJson.contains(KEY_SCREEN_HEIGHT) || + !attrJson.contains(KEY_CODECTYPE)) { + DHLOGE("enable param is invalid."); + return ERR_DH_SCREEN_SA_ENABLE_JSON_ERROR; + } + return DH_SUCCESS; } int32_t DScreen::NegotiateCodecType(const std::string &remoteCodecInfoStr) @@ -284,10 +299,14 @@ void DScreen::HandleDisable(const std::string &taskId) DHLOGE("remove virtual screen failed."); dscreenCallback_->OnUnregResult(shared_from_this(), taskId, ERR_DH_SCREEN_SA_DISABLE_FAILED, "remove virtual screen failed."); + ReportUnRegisterFail(DSCREEN_UNREGISTER_FAIL, ERR_DH_SCREEN_SA_DISABLE_FAILED, GetAnonyString(devId_).c_str(), + GetAnonyString(dhId_).c_str(), "remove virtual screen failed."); return; } SetState(DISABLED); dscreenCallback_->OnUnregResult(shared_from_this(), taskId, DH_SUCCESS, ""); + ReportUnRegisterScreenEvent(DSCREEN_UNREGISTER, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str(), + "dscreen disable success."); } void DScreen::HandleConnect() @@ -311,6 +330,8 @@ void DScreen::HandleConnect() return; } SetState(CONNECTED); + ReportScreenMirrorEvent(DSCREEN_PROJECT_START, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str(), + "dscreen connect success"); } void DScreen::HandleDisconnect() @@ -329,6 +350,8 @@ void DScreen::HandleDisconnect() return; } SetState(ENABLED); + ReportScreenMirrorEvent(DSCREEN_PROJECT_END, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str(), + "dscreen disconnect success"); } int32_t DScreen::SetUp() diff --git a/services/screenservice/sourceservice/dscreenmgr/src/screen_manager_adapter.cpp b/services/screenservice/sourceservice/dscreenmgr/src/screen_manager_adapter.cpp index edbe1baf8f270be46336df44cf4e19ed18c50c4c..07e6e513cd2c3679c90d3720ef32f3a3e61fae6a 100644 --- a/services/screenservice/sourceservice/dscreenmgr/src/screen_manager_adapter.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/src/screen_manager_adapter.cpp @@ -47,7 +47,6 @@ uint64_t ScreenMgrAdapter::CreateVirtualScreen(const std::string &devId, const s Rosen::DMError err = Rosen::ScreenManager::GetInstance().DestroyVirtualScreen(iter->second); if (err != Rosen::DMError::DM_OK) { DHLOGE("remove virtual screen failed, screenId:%ulld", iter->second); - ReportScreenEvent(VIRTUALSCREEN_ERROR, "destroy virtual screen failed."); return SCREEN_ID_INVALID; } screenIdMap_.erase(screenName); @@ -64,9 +63,6 @@ uint64_t ScreenMgrAdapter::CreateVirtualScreen(const std::string &devId, const s }; uint64_t screenId = Rosen::ScreenManager::GetInstance().CreateVirtualScreen(option); - if (screenId == SCREEN_ID_INVALID) { - ReportScreenEvent(VIRTUALSCREEN_ERROR, "create virtual screen failed."); - } screenIdMap_.emplace(screenName, screenId); return screenId; } @@ -117,7 +113,6 @@ int32_t ScreenMgrAdapter::RemoveVirtualScreen(uint64_t screenId) Rosen::DMError err = Rosen::ScreenManager::GetInstance().DestroyVirtualScreen(screenId); if (err != Rosen::DMError::DM_OK) { DHLOGE("remove virtual screen failed, screenId:%ulld", screenId); - ReportScreenEvent(VIRTUALSCREEN_ERROR, "destroy virtual screen failed."); return ERR_DH_SCREEN_SA_REMOVE_VIRTUALSCREEN_FAIL; } return DH_SUCCESS; diff --git a/services/screenservice/sourceservice/dscreenservice/src/dscreen_source_service.cpp b/services/screenservice/sourceservice/dscreenservice/src/dscreen_source_service.cpp index 5d7182376bc582c10f3998081631f3bd37c69048..bae8b5ac4238e449ecac9c8203ae21ed32e1bab2 100644 --- a/services/screenservice/sourceservice/dscreenservice/src/dscreen_source_service.cpp +++ b/services/screenservice/sourceservice/dscreenservice/src/dscreen_source_service.cpp @@ -24,6 +24,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_log.h" #include "dscreen_util.h" @@ -94,6 +95,7 @@ int32_t DScreenSourceService::ReleaseSource() return ret; } DHLOGI("exit source sa process"); + ReportSaEvent(DSCREEN_EXIT, DISTRIBUTED_HARDWARE_SCREEN_SOURCE_SA_ID, "dscreen source sa exit success."); exit(0); return DH_SUCCESS; } @@ -110,6 +112,8 @@ int32_t DScreenSourceService::RegisterDistributedHardware(const std::string &dev if (ret != DH_SUCCESS) { DHLOGE("enable distributedScreen failed. devId: %s, dhId: %s, reqId: %s, attrs: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str(), reqId.c_str(), attrs.c_str()); + ReportRegisterFail(DSCREEN_REGISTER_FAIL, ret, GetAnonyString(devId).c_str(), + GetAnonyString(dhId).c_str(), "enable distributedScreen failed."); return ERR_DH_SCREEN_SA_ENABLE_FAILED; } return DH_SUCCESS; @@ -123,6 +127,8 @@ int32_t DScreenSourceService::UnregisterDistributedHardware(const std::string &d if (ret != DH_SUCCESS) { DHLOGE("disable distributedScreen failed. devId: %s, dhId: %s, reqId: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str(), reqId.c_str()); + ReportUnRegisterFail(DSCREEN_REGISTER_FAIL, ret, GetAnonyString(devId).c_str(), + GetAnonyString(dhId).c_str(), "disable distributedScreen failed."); return ERR_DH_SCREEN_SA_DISABLE_FAILED; } return DH_SUCCESS; diff --git a/services/screentransport/screendatachannel/src/screen_data_channel_impl.cpp b/services/screentransport/screendatachannel/src/screen_data_channel_impl.cpp index 6097c4a5c64a91659f96305bb884e29a6632358e..8a1c390a041d25817a7a5e2ba53dae741cc2d801 100644 --- a/services/screentransport/screendatachannel/src/screen_data_channel_impl.cpp +++ b/services/screentransport/screendatachannel/src/screen_data_channel_impl.cpp @@ -19,6 +19,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_log.h" #include "dscreen_util.h" @@ -77,6 +78,7 @@ int32_t ScreenDataChannelImpl::OpenSession() SoftbusAdapter::GetInstance().OpenSoftbusSession(DATA_SESSION_NAME, DATA_SESSION_NAME, peerDevId_); if (sessionId < 0) { DHLOGE("%s: Open screen session failed, ret: %d", LOG_TAG, sessionId); + ReportOptFail(DSCREEN_OPT_FAIL, sessionId, "Open screen session failed"); return ERR_DH_SCREEN_TRANS_ERROR; } sessionId_ = sessionId; diff --git a/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp b/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp index 05e0502442c45de27f3c6318def1ca879293b12b..7c6309ec5c0469a421dbbc12246d4c327fe6aa75 100644 --- a/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp +++ b/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp @@ -79,7 +79,6 @@ int32_t ImageSinkDecoder::StartDecoder() ret = videoDecoder_->Start(); if (ret != Media::MSERR_OK) { DHLOGE("%s: Start decoder failed.", LOG_TAG); - ReportScreenEvent(VIDEO_DECODER_ERROR, "video decoder start failed."); return ERR_DH_SCREEN_CODEC_START_FAILED; } StartInputThread(); @@ -104,7 +103,6 @@ int32_t ImageSinkDecoder::StopDecoder() ret = videoDecoder_->Stop(); if (ret != Media::MSERR_OK) { DHLOGE("%s: Stop decoder failed.", LOG_TAG); - ReportScreenEvent(VIDEO_DECODER_ERROR, "video decoder stop failed."); return ERR_DH_SCREEN_CODEC_STOP_FAILED; } StopInputThread(); diff --git a/services/screentransport/screensinkprocessor/src/image_sink_processor.cpp b/services/screentransport/screensinkprocessor/src/image_sink_processor.cpp index 4e8ec8a45fa3e459befd5734bd8b88d29daf440e..e692bff818b970e0014678e0cd226fb2c0972193 100644 --- a/services/screentransport/screensinkprocessor/src/image_sink_processor.cpp +++ b/services/screentransport/screensinkprocessor/src/image_sink_processor.cpp @@ -16,6 +16,7 @@ #include "image_sink_processor.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_hitrace.h" #include "dscreen_log.h" @@ -49,6 +50,7 @@ int32_t ImageSinkProcessor::ReleaseImageProcessor() DHLOGI("%s: ReleaseImageProcessor.", LOG_TAG); if (imageDecoder_ == nullptr) { DHLOGE("%s: Decoder is null.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "ReleaseImageProcessor Decoder is null."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -57,6 +59,7 @@ int32_t ImageSinkProcessor::ReleaseImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: ReleaseDecoder failed.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "ReleaseDecoder failed."); return ret; } @@ -68,6 +71,7 @@ int32_t ImageSinkProcessor::StartImageProcessor() DHLOGI("%s: StartImageProcessor.", LOG_TAG); if (imageDecoder_ == nullptr) { DHLOGE("%s: Decoder is null.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "StartImageProcessor Decoder is null."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -76,6 +80,7 @@ int32_t ImageSinkProcessor::StartImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: StartDecoder failed ret:%d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "StartDecoder failed."); return ret; } @@ -87,6 +92,7 @@ int32_t ImageSinkProcessor::StopImageProcessor() DHLOGI("%s: StopImageProcessor.", LOG_TAG); if (imageDecoder_ == nullptr) { DHLOGE("%s: Decoder is null.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "StopImageProcessor Decoder is null."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -95,6 +101,7 @@ int32_t ImageSinkProcessor::StopImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: StopDecoder failed ret:%d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "StopDecoder failed."); return ret; } @@ -106,12 +113,14 @@ int32_t ImageSinkProcessor::SetImageSurface(sptr &surface) DHLOGI("%s: SetImageSurface.", LOG_TAG); if (imageDecoder_ == nullptr) { DHLOGE("%s: Decoder is null.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "SetImageSurface Decoder is null."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } int32_t ret = imageDecoder_->SetOutputSurface(surface); if (ret != DH_SUCCESS) { DHLOGE("%s: SetOutputSurface failed ret:%d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "SetOutputSurface failed."); return ret; } @@ -123,12 +132,14 @@ int32_t ImageSinkProcessor::ProcessImage(const std::shared_ptr &data DHLOGI("%s: ProcessImage.", LOG_TAG); if (imageDecoder_ == nullptr) { DHLOGE("%s: Decoder is null.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "processImage Decoder is null."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } int32_t ret = imageDecoder_->InputScreenData(data); if (ret != DH_SUCCESS) { DHLOGE("%s: InputScreenData failed ret:%d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "InputScreenData failed."); return ret; } diff --git a/services/screentransport/screensinktrans/BUILD.gn b/services/screentransport/screensinktrans/BUILD.gn index 34f70156cd045454cf3c3f70704c9d6ca348c96a..e3ff3072d39ace3fb9784d3dd9d78ba1e579ede5 100644 --- a/services/screentransport/screensinktrans/BUILD.gn +++ b/services/screentransport/screensinktrans/BUILD.gn @@ -18,6 +18,7 @@ import( ohos_shared_library("distributed_screen_sinktrans") { include_dirs = [ + "//base/hiviewdfx/hisysevent/interfaces/native/innerkits/hisysevent/include", "//third_party/json/include", "//foundation/graphic/graphic_2d/interfaces/innerkits/surface", "${fwk_common_path}/utils/include", diff --git a/services/screentransport/screensinktrans/src/screen_sink_trans.cpp b/services/screentransport/screensinktrans/src/screen_sink_trans.cpp index b5ffe1a6d0faf48f0c9ad6f52dbf3f4f58a90677..8a7395f5ea96001b96d5c26ec8923fb4517c8a76 100644 --- a/services/screentransport/screensinktrans/src/screen_sink_trans.cpp +++ b/services/screentransport/screensinktrans/src/screen_sink_trans.cpp @@ -16,6 +16,7 @@ #include "screen_sink_trans.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_hitrace.h" #include "dscreen_log.h" #include "image_sink_processor.h" @@ -247,6 +248,7 @@ int32_t ScreenSinkTrans::RegisterChannelListener() int32_t ret = screenChannel_->CreateSession(listener); if (ret != DH_SUCCESS) { DHLOGE("%s: Register channel listenner failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "dscreen sink Create session failed."); return ret; } @@ -266,6 +268,7 @@ int32_t ScreenSinkTrans::RegisterProcessorListener(const VideoParam &localParam, int32_t ret = imageProcessor_->ConfigureImageProcessor(localParam, remoteParam, listener); if (ret != DH_SUCCESS) { DHLOGE("%s: Config image processor failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "Config image processor failed."); return ret; } diff --git a/services/screentransport/screensourceprocessor/encoder/src/image_source_encoder.cpp b/services/screentransport/screensourceprocessor/encoder/src/image_source_encoder.cpp index 5c1f83896d4ea3dc10056769eefa775a9a7f33e8..a8872f4dacf66c28941657c2c4aaf075a70dd5b8 100644 --- a/services/screentransport/screensourceprocessor/encoder/src/image_source_encoder.cpp +++ b/services/screentransport/screensourceprocessor/encoder/src/image_source_encoder.cpp @@ -85,7 +85,6 @@ int32_t ImageSourceEncoder::StartEncoder() ret = videoEncoder_->Start(); if (ret != Media::MSERR_OK) { DHLOGE("%s: Start encoder failed.", LOG_TAG); - ReportScreenEvent(VIDEO_ENCODER_ERROR, "video encoder start failed."); return ERR_DH_SCREEN_CODEC_START_FAILED; } @@ -108,7 +107,6 @@ int32_t ImageSourceEncoder::StopEncoder() ret = videoEncoder_->Stop(); if (ret != Media::MSERR_OK) { DHLOGE("%s: Stop encoder failed.", LOG_TAG); - ReportScreenEvent(VIDEO_ENCODER_ERROR, "video encoder stop failed."); return ERR_DH_SCREEN_CODEC_STOP_FAILED; } diff --git a/services/screentransport/screensourceprocessor/src/image_source_processor.cpp b/services/screentransport/screensourceprocessor/src/image_source_processor.cpp index 7fe8301047dd7c5780679ddb06f8e077595d1e5f..4181d895c450aaf5c2fcd865cc757530d5a1c578 100644 --- a/services/screentransport/screensourceprocessor/src/image_source_processor.cpp +++ b/services/screentransport/screensourceprocessor/src/image_source_processor.cpp @@ -16,6 +16,7 @@ #include "image_source_processor.h" #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_hitrace.h" #include "dscreen_log.h" @@ -47,6 +48,7 @@ int32_t ImageSourceProcessor::ReleaseImageProcessor() DHLOGI("%s: ReleaseImageProcessor.", LOG_TAG); if (!imageEncoder_) { DHLOGE("%s: Create screen encoder failed.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "ReleaseImageProcessor encoder is nullptr."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -55,6 +57,7 @@ int32_t ImageSourceProcessor::ReleaseImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: Release screen encoder failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "Release screen encoder failed."); return ret; } @@ -66,6 +69,7 @@ int32_t ImageSourceProcessor::StartImageProcessor() DHLOGI("%s: StartImageProcessor.", LOG_TAG); if (!imageEncoder_) { DHLOGE("%s: Create screen encoder failed.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "StartImageProcessor encoder is nullptr."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -74,6 +78,7 @@ int32_t ImageSourceProcessor::StartImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: Start screen encoder failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "Start screen encoder failed."); return ret; } @@ -85,6 +90,7 @@ int32_t ImageSourceProcessor::StopImageProcessor() DHLOGI("%s: StopImageProcessor.", LOG_TAG); if (!imageEncoder_) { DHLOGE("%s: Create screen encoder failed.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ERR_DH_SCREEN_TRANS_NULL_VALUE, "StopImageProcessor encoder is nullptr."); return ERR_DH_SCREEN_TRANS_NULL_VALUE; } @@ -93,6 +99,7 @@ int32_t ImageSourceProcessor::StopImageProcessor() FinishTrace(DSCREEN_HITRACE_LABEL); if (ret != DH_SUCCESS) { DHLOGE("%s: Stop screen encoder failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "Stop screen encoder failed."); return ret; } diff --git a/services/screentransport/screensourcetrans/BUILD.gn b/services/screentransport/screensourcetrans/BUILD.gn index 9f77fd7497c4f5132b144bfae366b451acc2419b..10909d8673cb797670c044882e5e0717654e7d8f 100644 --- a/services/screentransport/screensourcetrans/BUILD.gn +++ b/services/screentransport/screensourcetrans/BUILD.gn @@ -18,6 +18,7 @@ import( ohos_shared_library("distributed_screen_sourcetrans") { include_dirs = [ + "//base/hiviewdfx/hisysevent/interfaces/native/innerkits/hisysevent/include", "//third_party/json/include", "//foundation/graphic/graphic_2d/interfaces/innerkits/surface", "${fwk_common_path}/utils/include", diff --git a/services/screentransport/screensourcetrans/src/screen_source_trans.cpp b/services/screentransport/screensourcetrans/src/screen_source_trans.cpp index 0bb3996d93e75827099e324cbad9de42bf5a7bf6..2ad9f920a308cc616a4b65d7e378f732641ae2f1 100644 --- a/services/screentransport/screensourcetrans/src/screen_source_trans.cpp +++ b/services/screentransport/screensourcetrans/src/screen_source_trans.cpp @@ -18,6 +18,7 @@ #include #include "dscreen_errcode.h" +#include "dscreen_hisysevent.h" #include "dscreen_hitrace.h" #include "dscreen_log.h" #include "image_source_processor.h" @@ -267,6 +268,7 @@ int32_t ScreenSourceTrans::RegisterChannelListener() int32_t ret = screenChannel_->CreateSession(listener); if (ret != DH_SUCCESS) { DHLOGE("%s: Create session failed ret: %d.", LOG_TAG); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "dscreen source Create session failed."); return ret; } @@ -285,6 +287,7 @@ int32_t ScreenSourceTrans::RegisterProcessorListener(const VideoParam &localPara int32_t ret = imageProcessor_->ConfigureImageProcessor(localParam, remoteParam, listener); if (ret != DH_SUCCESS) { DHLOGE("%s: Config image processor failed ret: %d.", LOG_TAG, ret); + ReportOptFail(DSCREEN_OPT_FAIL, ret, "Config image processor failed."); return ret; } diff --git a/services/softbusadapter/src/softbus_adapter.cpp b/services/softbusadapter/src/softbus_adapter.cpp index 885f7b9feb215d74f955070893bc7d2849cec0a4..99781076dab50ce0cdbe362b6b952d476dc94600 100644 --- a/services/softbusadapter/src/softbus_adapter.cpp +++ b/services/softbusadapter/src/softbus_adapter.cpp @@ -111,7 +111,6 @@ int32_t SoftbusAdapter::CreateSoftbusSessionServer(const std::string &pkgname, c int32_t ret = CreateSessionServer(pkgname.c_str(), sessionName.c_str(), &sessListener_); if (ret != DH_SUCCESS) { DHLOGE("%s: CreateSessionServer failed.", LOG_TAG); - ReportScreenEvent(SOFTBUS_SESSIONSERVER_ERROR, "create session server failed."); return ret; } } else { @@ -139,7 +138,6 @@ int32_t SoftbusAdapter::RemoveSoftbusSessionServer(const std::string &pkgname, c int32_t ret = RemoveSessionServer(pkgname.c_str(), sessionName.c_str()); if (ret != DH_SUCCESS) { DHLOGE("%s: RemoveSessionServer failed.", LOG_TAG); - ReportScreenEvent(SOFTBUS_SESSIONSERVER_ERROR, "remove session server failed."); return ret; } @@ -181,7 +179,6 @@ int32_t SoftbusAdapter::OpenSoftbusSession(const std::string &mySessionName, con int32_t sessionId = OpenSession(mySessionName.c_str(), peerSessionName.c_str(), peerDevId.c_str(), "0", &attr); if (sessionId < 0) { DHLOGE("%s: OpenSession failed sessionId:%d.", LOG_TAG, sessionId); - ReportScreenEvent(SOFTBUS_SESSION_ERROR, "open session failed."); return ERR_DH_SCREEN_ADAPTER_OPEN_SESSION_FAIL; }