diff --git a/src/MeoAssistance/AsstMsg.h b/src/MeoAssistance/AsstMsg.h index fda50725b8..5c41e7643e 100644 --- a/src/MeoAssistance/AsstMsg.h +++ b/src/MeoAssistance/AsstMsg.h @@ -28,6 +28,7 @@ namespace asst { PrintWindow, // 截图消息 ProcessTaskStopAction, // 流程任务执行到了Stop的动作 TaskChainCompleted, // 任务链完成 + ProcessTaskNotMatched, // 流程任务识别错误 /* Info Msg: about Identify */ TextDetected = 2000, // 识别到文字 ImageFindResult, // 查找图像的结果 @@ -67,6 +68,7 @@ namespace asst { {AsstMsg::TaskChainCompleted, "TaskChainCompleted"}, {AsstMsg::PrintWindow, "PrintWindow"}, {AsstMsg::TaskError, "TaskError"}, + {AsstMsg::ProcessTaskNotMatched, "ProcessTaskNotMatched"}, {AsstMsg::ProcessTaskStopAction, "ProcessTaskStopAction"}, {AsstMsg::TextDetected, "TextDetected"}, {AsstMsg::RecruitTagsDetected, "RecruitTagsDetected"}, diff --git a/src/MeoAssistance/ProcessTask.cpp b/src/MeoAssistance/ProcessTask.cpp index a92f2805d3..00db9c0ba3 100644 --- a/src/MeoAssistance/ProcessTask.cpp +++ b/src/MeoAssistance/ProcessTask.cpp @@ -34,6 +34,7 @@ bool ProcessTask::run() Rect rect; task_info_ptr = match_image(&rect); if (!task_info_ptr) { + m_callback(AsstMsg::ProcessTaskNotMatched, task_start_json, m_callback_arg); return false; } @@ -134,6 +135,7 @@ std::shared_ptr ProcessTask::match_image(Rect* matched_rect) { const cv::Mat& cur_image = m_controller_ptr->get_image(); if (cur_image.empty() || cur_image.rows < 100) { + m_callback(AsstMsg::ImageIsEmpty, json::value(), m_callback_arg); return nullptr; } diff --git a/src/MeoAssistance/WinMacro.cpp b/src/MeoAssistance/WinMacro.cpp index a88de13b1a..a3dbbd7611 100644 --- a/src/MeoAssistance/WinMacro.cpp +++ b/src/MeoAssistance/WinMacro.cpp @@ -340,10 +340,14 @@ bool asst::WinMacro::screencap() auto data = call_command(m_emulator_info.adb.screencap); if (!data.empty()) { m_cache_image = cv::imdecode(data, cv::IMREAD_COLOR); + if (m_cache_image.empty()) { + DebugTraceError("Data is not empty, but image is empty!"); + return false; + } return true; } else { - DebugTraceError("Screencap is empty!"); + DebugTraceError("Data is empty!"); return false; }