#include "InfrastStationTask.h" #include #include #include #include #include "Configer.h" #include "InfrastConfiger.h" #include "WinMacro.h" #include "Identify.h" #include "AsstAux.h" using namespace asst; asst::InfrastStationTask::InfrastStationTask(AsstCallback callback, void* callback_arg) : OcrAbstractTask(callback, callback_arg) { } bool asst::InfrastStationTask::run() { if (m_view_ptr == NULL || m_identify_ptr == NULL) { m_callback(AsstMsg::PtrIsNull, json::value(), m_callback_arg); return false; } std::vector> all_oper_combs; // 所有的干员组合 std::unordered_map feature_cond_default; // 特征检测关键字,如果OCR识别到了key的内容但是却没有value的内容,则进行特征检测进一步确认 std::unordered_set feature_whatever_default; // 无论如何都进行特征检测的 json::value task_start_json = json::object{ { "task_type", "InfrastStationTask" }, { "task_chain", m_task_chain}, }; m_callback(AsstMsg::TaskStart, task_start_json, m_callback_arg); auto swipe_foo = [&](bool reverse = false) -> bool { bool ret = false; if (!reverse) { ret = m_control_ptr->swipe(m_swipe_begin, m_swipe_end); } else { ret = m_control_ptr->swipe(m_swipe_end, m_swipe_begin); } ret &= sleep(m_swipe_delay); return ret; }; std::unordered_map feature_cond = feature_cond_default; std::unordered_set feature_whatever = feature_whatever_default; auto detect_foo = [&](const cv::Mat& image) -> std::vector