From 16378c5aa4c3efb914e4f8ca6d6ed40139c21eb8 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 25 Sep 2021 23:40:39 +0800 Subject: [PATCH] =?UTF-8?q?fix.=E6=B7=BB=E5=8A=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84=E4=B8=80=E4=BA=9B=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistance/AsstMsg.h | 2 ++ src/MeoAssistance/ProcessTask.cpp | 2 ++ src/MeoAssistance/WinMacro.cpp | 6 +++++- 3 files changed, 9 insertions(+), 1 deletion(-) 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; }