refactor.重构添加任务接口

This commit is contained in:
MistEO
2022-03-08 23:57:37 +08:00
parent 6be8a43c1a
commit a1fb78cc32
37 changed files with 447 additions and 524 deletions

View File

@@ -42,10 +42,12 @@ bool asst::InfrastProductionTask::shift_facility_list()
}
const auto tab_task_ptr = m_task_data->get("InfrastFacilityListTab" + facility_name());
MatchImageAnalyzer add_analyzer;
add_analyzer.set_task_data(m_task_data);
const auto add_task_ptr = m_task_data->get("InfrastAddOperator" + facility_name() + m_work_mode_name);
add_analyzer.set_task_info(add_task_ptr);
MultiMatchImageAnalyzer locked_analyzer;
locked_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastOperLocked" + facility_name()));
locked_analyzer.set_task_data(m_task_data);
locked_analyzer.set_task_info(m_task_data->get("InfrastOperLocked" + facility_name()));
for (; m_cur_facility_index < m_facility_list_tabs.size(); ++m_cur_facility_index) {
Rect tab = m_facility_list_tabs.at(m_cur_facility_index);
@@ -78,11 +80,12 @@ bool asst::InfrastProductionTask::shift_facility_list()
/* 识别当前正在造什么 */
MatchImageAnalyzer product_analyzer(image);
product_analyzer.set_task_data(m_task_data);
auto& all_products = Resrc.infrast().get_facility_info(facility_name()).products;
std::string cur_product = all_products.at(0);
double max_score = 0;
for (const std::string& product : all_products) {
product_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastFlag" + product));
product_analyzer.set_task_info(m_task_data->get("InfrastFlag" + product));
if (product_analyzer.analyze()) {
double score = product_analyzer.get_result().score;
if (score > max_score) {
@@ -179,6 +182,7 @@ size_t asst::InfrastProductionTask::opers_detect()
const auto image = m_ctrler->get_image();
InfrastOperImageAnalyzer oper_analyzer(image);
oper_analyzer.set_task_data(m_task_data);
oper_analyzer.set_facility(facility_name());
if (!oper_analyzer.analyze()) {
@@ -462,6 +466,7 @@ bool asst::InfrastProductionTask::opers_choose()
const auto image = m_ctrler->get_image();
InfrastOperImageAnalyzer oper_analyzer(image);
oper_analyzer.set_task_data(m_task_data);
oper_analyzer.set_facility(facility_name());
if (!oper_analyzer.analyze()) {
@@ -619,7 +624,8 @@ bool asst::InfrastProductionTask::facility_list_detect()
const auto image = m_ctrler->get_image();
MultiMatchImageAnalyzer mm_analyzer(image);
mm_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastFacilityListTab" + facility_name()));
mm_analyzer.set_task_data(m_task_data);
mm_analyzer.set_task_info(m_task_data->get("InfrastFacilityListTab" + facility_name()));
if (!mm_analyzer.analyze()) {
return false;