Train_Identify/nvidia_ascend_engine/common_engine/SaveEngine/SaveStepOneResultEngine.cpp

1 line
30 KiB
C++
Raw Normal View History

#include "SaveStepOneResultEngine.h" using namespace ai_matrix; SaveStepOneResultEngine::SaveStepOneResultEngine() {} SaveStepOneResultEngine::~SaveStepOneResultEngine() {} APP_ERROR SaveStepOneResultEngine::Init() { strPort0_ = engineName_ + "_" + std::to_string(engineId_) + "_0"; strPort1_ = engineName_ + "_" + std::to_string(engineId_) + "_1"; strResultPath_ = MyYaml::GetIns()->GetPathValue("gc_result_path"); iSplitSpan_ = MyYaml::GetIns()->GetIntValue("partition_frame_span"); iSplitSpanPX_ = MyYaml::GetIns()->GetIntValue("gc_split_frame_span_px"); dataSourceConfig_ = MyYaml::GetIns()->GetDataSourceConfigById(engineId_); std::map<int, ai_matrix::DataSourceConfig> mapUseDataSouceCfg = MyYaml::GetIns()->GetUseDataSourceConfig(); std::string delimiter(","); for (auto iter = mapUseDataSouceCfg.begin(); iter != mapUseDataSouceCfg.end(); iter++) { int iCnt = 0; std::vector<std::string> vecSplit = MyUtils::getins()->split(iter->second.strTarget, delimiter); for (auto iter = vecSplit.begin(); iter != vecSplit.end(); iter++) { if (*iter == "NUM") { iCnt++; } else if (*iter == "CHKDATE") { iCnt++; } else if (*iter == "CONTAINER" || *iter == "CONTAINER_T") { iCnt++; } } mapInvokeModelCnt_[iter->first] = iCnt; } InitParam(); LogInfo << "SaveStepOneResultEngine Init ok"; return APP_ERR_OK; } APP_ERROR SaveStepOneResultEngine::DeInit() { LogInfo << "SaveStepOneResultEngine DeInit ok"; return APP_ERR_OK; } /** * 初始化参数信息 * inParam : N/A * outParam: N/A * return : N/A */ void SaveStepOneResultEngine::InitParam() { iPushSpaceFrameId_ = 0; i64TimeStampFirst_ = 0; iDirection_ = DIRECTION_UNKNOWN; bPushIsEnd_ = false; vecParationInfo_.clear(); std::vector<PartionInfo>().swap(vecParationInfo_); bDealCenterFlag_ = false; parationInfoLast_.i64EndTimeStamp = 0; parationInfoLast_.modelSpaceFrame = 0; parationInfoLast_.iRate = 0; parationInfoLast_.bmodelconfirmed = false; parationInfoLast_.fLTX = 0.0; parationInfoLast_.fRBX = 0.0; parationInfoLast_.strTrainDate = ""; parationInfoLast_.strTrainName = ""; parationInfoLast_.bIsEnd = false; parationInfoLast_.nStatus = 0; mapNumCenterInfo_.clear(); mapProCenterInfo_.clear(); bHaveHeadFlag_ = false; headInfo_.iFrameId = 0; headInfo_.fCenterX = 0; } /** * 构造车厢间隔信息 * inParam : N/A * outParam: N/A * return : N/A */ void SaveStepOneResultEngine::MakeParationInfo(PartionInfo &parationInfo, std::shared_ptr<ProcessData> pProcessData, Json::Value &jvStep1Space) { parationInfo.i64EndTimeStamp = pProcessData->i64TimeStamp; parationInfo.modelSpaceFrame = pProcessData->iFrameId; parationInfo.iRate = pProcessData->iRate; parationInfo.bmodelconfirmed = true; parationInfo.fLTX = jvStep1Space[0]["ltx"].asFloat(); parationInfo.fRBX = jvStep1Space[0]["rbx"].asFloat(); parationInfo.strTrainDate = pProcessData->strTrainDate; parationInfo.strTrainName = pProcessData->strTrainName; parationInfo.bIsEnd = pProcessData->bIsEnd; parationInfo.nStatus = ((pProcessData->iStatus == TRAINSTATUS_STOP) ? TRAIN_PAUSE : iDirection_); parationInfoLast_ = parationInfo; } /** * 处理中心间隔信息 * inParam : N/A * outParam: N/A * return : N/A */ void SaveStepOneResultEngine::DealCenterSpace(std::vector<PartionInfo> &vecParationInfo, std::shared_ptr<ProcessData> pProcessData) { int iVecSize = vecParationInfo.size(); if (iVecSize < 0) { return; } LogDebug << "积累的车厢切分信息数:" << iVecSize << " 帧:" << pProcessData->iFrameId << " 第一个车厢切分信息帧:" << vecParationInfo.at(0).modelSpaceFrame << " 最后一个车厢切分信息帧:" << vecParationInfo.at(iVecSize - 1).model