VTrain/engine/TrainDivideEngine/TrainDivideEngine.h

64 lines
1.7 KiB
C
Raw Permalink Normal View History

2024-11-27 12:47:45 +00:00
/**
*
* */
#ifndef TRAINDIVIDEENGINE_H
#define TRAINDIVIDEENGINE_H
#include "AppCommon.h"
#include "EngineBase.h"
#include "EngineFactory.h"
#include "json/json.h"
class TrainDivideEngine : public ai_matrix::EngineBase
{
public:
TrainDivideEngine();
~TrainDivideEngine();
APP_ERROR Init() override;
APP_ERROR DeInit() override;
APP_ERROR Process() override;
private:
void InitParam();
void dealTrainSpaceInfo(std::shared_ptr<InferenceResultData> pInferenceResultData, SingleData &singleData);
void dealCenterSpace(std::vector<PartionInfo> &vecParationInfo,
std::shared_ptr<InferenceResultData> pInferenceResultData);
void makeParationInfo(PartionInfo &parationInfo, std::shared_ptr<InferenceResultData> pInferenceResultData, SingleData &singleData);
void splitTrainByNumPro(PartionInfo &partionInfo, std::shared_ptr<InferenceResultData> &pInferenceResultData);
void divideTrain(PartionInfo &partionInfo);
std::string strPort0_;
std::string strPort1_;
ai_matrix::BaseConfig baseConfig_;
ai_matrix::IdentifyConfig identifyConfig_;
ai_matrix::DataSourceConfig dataSourceConfig_;
uint32_t iPushSpaceFrameId_;
uint64_t i64TimeStampFirst_;
std::vector<PartionInfo> vecParationInfo_;
bool bPushIsEnd_;
PartionInfo parationInfoLast_;
bool bDealCenterFlag_;
std::map<uint32_t, float> mapNumCenterInfo_;
std::map<uint32_t, float> mapProCenterInfo_;
bool bHaveHeadFlag_;
CalculateInfo headInfo_;
int iTrainIndex = 0;
// 当前车次车厢划分结果
std::vector<PartionInfo> vecTrainDivideInfo;
};
ENGINE_REGIST(TrainDivideEngine)
#endif