Add DacDelay and FilterByPass in MatlabCreator.
Fix createCEMeasuredMat and CEMeasuredEmitter without CEMeasured.
This commit is contained in:
@@ -174,17 +174,20 @@ void MatlabCreatorPrivate::createKITMatInThread(std::shared_ptr<Parser> aParser,
|
||||
}
|
||||
}
|
||||
//CEMeasure
|
||||
std::string cemeasureFolder = tasFloder + SLASH_CHAR + getCEMeasureFolderName();
|
||||
if(!dir.exists(cemeasureFolder))
|
||||
if(shotList->hasCEMeasured())
|
||||
{
|
||||
dir.mkdir(cemeasureFolder);
|
||||
std::string cemeasureFolder = tasFloder + SLASH_CHAR + getCEMeasureFolderName();
|
||||
if(!dir.exists(cemeasureFolder))
|
||||
{
|
||||
dir.mkdir(cemeasureFolder);
|
||||
}
|
||||
oneTasAscan = aParser->getOneTasAscanDataOfCEMeasured(shotList->getTasValue(t));
|
||||
std::shared_ptr<short> ascanData = std::shared_ptr<short>(new short[aParser->getDataLength()*RECEIVE_ELEMENT_COUNT],std::default_delete<short[]>());
|
||||
std::shared_ptr<double> amplificationData = std::shared_ptr<double>(new double[aParser->getDataLength()*RECEIVE_ELEMENT_COUNT],std::default_delete<double[]>());
|
||||
getAScanOfCEAndAmplification(aParser,shotList,oneTasAscan,ascanData,amplificationData);
|
||||
std::string fileName = cemeasureFolder + SLASH_CHAR + getMatFileName(0);
|
||||
createEmitterMat(aParser,fileName,ascanData,amplificationData);
|
||||
}
|
||||
oneTasAscan = aParser->getOneTasAscanDataOfCEMeasured(shotList->getTasValue(t));
|
||||
std::shared_ptr<short> ascanData = std::shared_ptr<short>(new short[aParser->getDataLength()*RECEIVE_ELEMENT_COUNT],std::default_delete<short[]>());
|
||||
std::shared_ptr<double> amplificationData = std::shared_ptr<double>(new double[aParser->getDataLength()*RECEIVE_ELEMENT_COUNT],std::default_delete<double[]>());
|
||||
getAScanOfCEAndAmplification(aParser,shotList,oneTasAscan,ascanData,amplificationData);
|
||||
std::string fileName = cemeasureFolder + SLASH_CHAR + getMatFileName(0);
|
||||
createEmitterMat(aParser,fileName,ascanData,amplificationData);
|
||||
++progress;
|
||||
std::cout<<"\r\033[K"<<std::flush;
|
||||
std::cout<< "progress: \033[41m\033[1m " + std::to_string(progress/1.28) + "%\033[0m" <<std::flush;
|
||||
@@ -326,8 +329,8 @@ void MatlabCreatorPrivate::createInfoMat(std::shared_ptr<Parser> aParser, const
|
||||
return;
|
||||
}
|
||||
size_t structDims[1] ={1};
|
||||
const char* field[5] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID"};
|
||||
matvar_t* structVar = Mat_VarCreateStruct("MetaData",1,structDims,field,5);
|
||||
const char* field[7] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","FilterBypass"};
|
||||
matvar_t* structVar = Mat_VarCreateStruct("MetaData",1,structDims,field,7);
|
||||
//shotList
|
||||
std::shared_ptr<ShotList> shotList = aParser->getShotList();
|
||||
ShotListArray shotListArray = shotList->getShotListArray();
|
||||
@@ -355,6 +358,16 @@ void MatlabCreatorPrivate::createInfoMat(std::shared_ptr<Parser> aParser, const
|
||||
size_t measurementIDDims[2] ={1,measurementID.size()};
|
||||
matvar_t* measurementIDVar = Mat_VarCreate("MeasurementID",MAT_C_CHAR,MAT_T_INT8,2,measurementIDDims,const_cast<char*>(measurementID.c_str()),0);
|
||||
Mat_VarSetStructFieldByName(structVar, "MeasurementID", 0, measurementIDVar);
|
||||
//DACDelay
|
||||
double dacDelay = metaData.getDacDelay();
|
||||
size_t dacDelayDims[2] ={1,1};
|
||||
matvar_t* dacDelayVar = Mat_VarCreate("DACDelay",MAT_C_DOUBLE,MAT_T_DOUBLE,2,dacDelayDims,&dacDelay,0);
|
||||
Mat_VarSetStructFieldByName(structVar, "DACDelay", 0, dacDelayVar);
|
||||
//FilterBypass
|
||||
double filterByPass = metaData.getFilterByPass();
|
||||
size_t filterByPassDims[2] ={1,1};
|
||||
matvar_t* filterByPassVar = Mat_VarCreate("FilterBypass",MAT_C_DOUBLE,MAT_T_DOUBLE,2,filterByPassDims,&filterByPass,0);
|
||||
Mat_VarSetStructFieldByName(structVar, "FilterBypass", 0, filterByPassVar);
|
||||
Mat_VarWrite(matfp,structVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarFree(structVar);
|
||||
|
||||
@@ -436,8 +449,27 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
|
||||
//CEMeasured
|
||||
CEMeasuredData cEMeasured = aParser->getAllCEMeasuredData();
|
||||
size_t cEMeasuredDims[2] ={cEMeasured.getAscanDataLength(),cEMeasured.getSize()};
|
||||
matvar_t* cEMeasuredVar = Mat_VarCreate("CEMeasured",MAT_C_INT16,MAT_T_INT16,2,cEMeasuredDims,cEMeasured.get(),0);
|
||||
short* ceMeasuredData;
|
||||
size_t cEMeasuredDims[2];
|
||||
if(cEMeasured.isNull())
|
||||
{
|
||||
CEPointer ce = aParser->getCEData().getCE();
|
||||
ceMeasuredData = new short[ce.getLength() * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT; ++i)
|
||||
{
|
||||
std::copy(ce.get(), ce.get()+ce.getLength(), ceMeasuredData);
|
||||
ceMeasuredData += RECEIVE_ELEMENT_COUNT;
|
||||
}
|
||||
cEMeasuredDims[0] = ce.getLength();
|
||||
cEMeasuredDims[1] = RECEIVE_ELEMENT_COUNT;
|
||||
}
|
||||
else
|
||||
{
|
||||
ceMeasuredData = cEMeasured.get();
|
||||
cEMeasuredDims[0] = cEMeasured.getAscanDataLength();
|
||||
cEMeasuredDims[1] = cEMeasured.getSize();
|
||||
}
|
||||
matvar_t* cEMeasuredVar = Mat_VarCreate("CEMeasured",MAT_C_INT16,MAT_T_INT16,2,cEMeasuredDims,ceMeasuredData,0);
|
||||
|
||||
//CEOffset
|
||||
CEData ceData = aParser->getCEData();
|
||||
|
||||
Reference in New Issue
Block a user