/** * 定检期选取最优结果Engine * */ #ifndef SELECTBESTCHKDATEENGINE_H #define SELECTBESTCHKDATEENGINE_H #include "AppCommon.h" #include "MyYaml.h" #include "EngineBase.h" #include "EngineFactory.h" class SelectBestChkDateEngine : public ai_matrix::EngineBase { public: SelectBestChkDateEngine(); ~SelectBestChkDateEngine(); APP_ERROR Init() override; APP_ERROR DeInit() override; APP_ERROR Process() override; private: //获取最优长度 int GetBestLength(std::vector &vecAllTransInfo, TargetMaxLen iMaxLen); //获取最优结果 std::string GetBest(std::vector &vecAllTransInfo, TargetMaxLen iMaxLen); //校验日期的合理性 bool ChkValidDate(std::string &strDate); //获取定检期截至日期 std::string GetChkDateDeadLine(std::string &strChkDate); //汇总单节车厢-定检期最佳值 void GetChkDateBest(std::shared_ptr pChkDate, std::shared_ptr pProcessData); //定检期数据加入到待选优集合中 void ChkDateAddSelectBestMap(std::shared_ptr pProcessData, TransSubData &transSubData); //初始化车号参数信息 void InitChkDateParam(); //初始化参数信息 void InitParam(); std::string strPort0_; std::string strPort1_; int iSelectBestMode_; //选优模式 int iChkDateIndex_ = 1; //定检期序号 std::map> mapChkDateInfo_; //定检期待选优集合 key [0:段修定检期; 1:厂修定检期] float fMaxScoreSumChkDate_; //当前车厢定检期最高得分 Step1Location step1LocationBestChkDate_; //当前车厢定检期最高分对于的大框坐标 std::string strBestChkDateImg_; //当前车厢定检期最高分的图片名 uint64_t i64TimeStampChkDate_ = 0; //当前车厢定检期最高分的图片时间戳 uint32_t iDataSourceChkDate_; //当前车厢定检期最高分的图片数据源id std::map mapDataSourceIsEnd_; //[key-数据源id, value-数据是否结束] }; ENGINE_REGIST(SelectBestChkDateEngine) #endif