From 2da470b2bd22be537bea5fab921694686a1ae798 Mon Sep 17 00:00:00 2001 From: MistEO Date: Mon, 21 Mar 2022 15:53:22 +0800 Subject: [PATCH] =?UTF-8?q?fix.=E4=BF=AE=E5=A4=8D=E6=9E=90=E6=9E=84?= =?UTF-8?q?=E6=97=B6adb=E5=8D=A1=E4=BD=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/297 --- src/MeoAssistant/Controller.cpp | 9 +++------ src/MeoAssistant/Controller.h | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/MeoAssistant/Controller.cpp b/src/MeoAssistant/Controller.cpp index bcbb7e0122..4caf09f55d 100644 --- a/src/MeoAssistant/Controller.cpp +++ b/src/MeoAssistant/Controller.cpp @@ -173,7 +173,7 @@ void asst::Controller::pipe_working_proc() m_cmd_queue.pop(); cmd_queue_lock.unlock(); // todo 判断命令是否执行成功 - call_command(cmd, 20 * 1000); + call_command(cmd); ++m_completed_id; } //else if (!m_thread_idle) { // 队列中没有任务,又不是闲置的时候,就去截图 @@ -231,10 +231,7 @@ std::optional> asst::Controller::call_command(const s } while (::WaitForSingleObject(process_info.hProcess, 0) == WAIT_TIMEOUT && !check_timeout()); DWORD exit_ret = 255; - if (!check_timeout()) { - ::GetExitCodeProcess(process_info.hProcess, &exit_ret); - } - + ::GetExitCodeProcess(process_info.hProcess, &exit_ret); ::CloseHandle(process_info.hProcess); ::CloseHandle(process_info.hThread); @@ -674,7 +671,7 @@ bool asst::Controller::connect(const std::string & adb_path, const std::string & /* connect */ { - auto connect_ret = call_command(cmd_replace(adb_cfg.connect)); + auto connect_ret = call_command(cmd_replace(adb_cfg.connect), 60 * 1000); // 端口即使错误,命令仍然会返回0,TODO 对connect_result进行判断 if (!connect_ret) { json::value info = get_info_json() | diff --git a/src/MeoAssistant/Controller.h b/src/MeoAssistant/Controller.h index 3d3c697b16..94391cee9d 100644 --- a/src/MeoAssistant/Controller.h +++ b/src/MeoAssistant/Controller.h @@ -59,7 +59,7 @@ namespace asst private: void pipe_working_proc(); - std::optional> call_command(const std::string& cmd, int64_t timeout = 0); + std::optional> call_command(const std::string& cmd, int64_t timeout = 20000); int push_cmd(const std::string& cmd); using DecodeFunc = std::function&)>;