opt.优化一些插件的工作逻辑

This commit is contained in:
MistEO
2022-01-11 23:01:37 +08:00
parent 93873050a8
commit cb22ef49a2
5 changed files with 26 additions and 9 deletions

View File

@@ -213,7 +213,8 @@ bool asst::Assistant::append_fight(const std::string& stage, int mecidine, int s
.set_times_limit("StoneConfirm", stone)
.set_times_limit("StartButton1", times)
.set_times_limit("StartButton2", times);
fight_task_ptr->regiseter_plugin<StageDropsTaskPlugin>();
fight_task_ptr->regiseter_plugin<StageDropsTaskPlugin>()
->set_retry_times(0);
std::unique_lock<std::mutex> lock(m_mutex);

View File

@@ -29,7 +29,7 @@ void asst::DronesForShamareTaskPlugin::set_task_ptr(AbstractTask* ptr)
bool asst::DronesForShamareTaskPlugin::_run()
{
ProcessTask shamare_task(*this, { "ShamareThumbnail" });
shamare_task.set_retry_times(1);
shamare_task.set_retry_times(0);
bool has_shamare = shamare_task.run();
if (!has_shamare) {
return true;

View File

@@ -37,7 +37,9 @@ bool asst::StageDropsTaskPlugin::_run()
{
set_startbutton_delay();
recognize_drops();
if (!recognize_drops()) {
return false;
}
if (need_exit()) {
return false;
}
@@ -51,14 +53,22 @@ bool asst::StageDropsTaskPlugin::_run()
return true;
}
void asst::StageDropsTaskPlugin::recognize_drops()
bool asst::StageDropsTaskPlugin::recognize_drops()
{
sleep(Task.get("PRTS")->rear_delay);
if (need_exit()) {
return;
return false;
}
cv::Mat image = Ctrler.get_image(true);
m_cur_drops = json::parse(Resrc.penguin().recognize(image)).value();
for (auto&& ex : m_cur_drops.at("exceptions").as_array()) {
if (ex.at("type").as_string() == "ERROR"
|| ex.at("where").as_string() == "stage"
|| ex.at("what").as_string() == "NotFound") {
return false;
}
}
return true;
}
void asst::StageDropsTaskPlugin::drop_info_callback()

View File

@@ -22,7 +22,7 @@ namespace asst
private:
virtual bool _run() override;
void recognize_drops();
bool recognize_drops();
void drop_info_callback();
void set_startbutton_delay();
void upload_to_penguin();

View File

@@ -216,13 +216,19 @@ namespace MeoAsstGui
private void procSubTaskError(JObject details)
{
string classType = details["class"].ToString();
string subTask = details["subtask"].ToString();
var mainModel = _container.Get<TaskQueueViewModel>();
if (classType == "class asst::AutoRecruitTask")
switch (subTask)
{
mainModel.AddLog("公招识别错误,已返回", "darkred");
case "AutoRecruitTask":
mainModel.AddLog("公招识别错误,已返回", "darkred");
break;
case "StageDropsTask":
mainModel.AddLog("关卡识别错误", "darkred");
break;
}
}