diff --git a/src/Data/MetaData.cpp b/src/Data/MetaData.cpp index 753cc44..28681da 100644 --- a/src/Data/MetaData.cpp +++ b/src/Data/MetaData.cpp @@ -95,6 +95,16 @@ void MetaData::setDacDelay(double aDacDelay) mDacDelay = aDacDelay; } +double MetaData::getCEMeasuredDacDelay() const +{ + return mCEMeasuredDacDelay; +} + +void MetaData::setCEMeasuredDacDelay(double aCEMeasuredDacDelay) +{ + mCEMeasuredDacDelay = aCEMeasuredDacDelay; +} + double MetaData::getFilterByPass() const { return mFilterByPass; diff --git a/src/Data/MetaData.h b/src/Data/MetaData.h index ecface0..c1aa02a 100644 --- a/src/Data/MetaData.h +++ b/src/Data/MetaData.h @@ -29,6 +29,7 @@ public: unsigned short getAperturePositionNumber() const; TimeStampsPointer getTimeStamps() const; double getDacDelay() const; + double getCEMeasuredDacDelay() const; double getFilterByPass() const; private: @@ -41,6 +42,7 @@ private: void setAperturePositionNumber(unsigned short aAperturePositionNumber); void setTimeStamps(TimeStampsPointer aTimeStamps); void setDacDelay(double aDacDelay); + void setCEMeasuredDacDelay(double aCEMeasuredDacDelay); void setFilterByPass(double aFilterByPass); private: @@ -53,6 +55,7 @@ private: unsigned short mAperturePositionNumber; TimeStampsPointer mTimeStamps; double mDacDelay; + double mCEMeasuredDacDelay; double mFilterByPass; friend class MetaDataReader; diff --git a/src/DataReader/MetaDataReader.cpp b/src/DataReader/MetaDataReader.cpp index ba2f20f..70347da 100644 --- a/src/DataReader/MetaDataReader.cpp +++ b/src/DataReader/MetaDataReader.cpp @@ -162,6 +162,15 @@ MetaData MetaDataReader::getMetaDataFromHJ(const std::string& aConfigBinPath, co } } + if(jsonObj.contains("CEM AMC Board Config")) + { + nlohmann::json ceMeasuredInfo = jsonObj.at("CEM AMC Board Config"); + if(ceMeasuredInfo.contains("DAC Delay")) + { + result.setCEMeasuredDacDelay(ceMeasuredInfo.at("DAC Delay").get()); + } + } + std::ifstream stream; stream.open(aConfigBinPath, std::ios_base::binary | std::ios::in); stream.seekg(aConfigHeader->getTasIndicesPosition(),std::ios::beg); diff --git a/src/MatLab/MatlabCreatorConvertFp16Private.cpp b/src/MatLab/MatlabCreatorConvertFp16Private.cpp index 49ccf26..fd671f8 100644 --- a/src/MatLab/MatlabCreatorConvertFp16Private.cpp +++ b/src/MatLab/MatlabCreatorConvertFp16Private.cpp @@ -419,7 +419,7 @@ void MatlabCreatorConvertFp16Private::createInfoMat(std::shared_ptr aPar return; } size_t structDims[1] ={1}; - const char* field[7] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","FilterBypass"}; + const char* field[8] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","CEMeasuredDACDelay","FilterBypass"}; matvar_t* structVar = Mat_VarCreateStruct("MetaData",1,structDims,field,7); //shotList std::shared_ptr shotList = aParser->getShotList(); @@ -453,6 +453,11 @@ void MatlabCreatorConvertFp16Private::createInfoMat(std::shared_ptr aPar 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); + //CEMeasured DACDelay + double ceMeasuredDacDelay = metaData.getCEMeasuredDacDelay(); + size_t ceMeasuredDacDelayDims[2] ={1,1}; + matvar_t* ceMeasuredDacDelayVar = Mat_VarCreate("CEMeasuredDACDelay",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceMeasuredDacDelayDims,&ceMeasuredDacDelay,0); + Mat_VarSetStructFieldByName(structVar, "CEMeasuredDACDelay", 0, ceMeasuredDacDelayVar); //FilterBypass double filterByPass = metaData.getFilterByPass(); size_t filterByPassDims[2] ={1,1}; diff --git a/src/MatLab/MatlabCreatorPrivate.cpp b/src/MatLab/MatlabCreatorPrivate.cpp index 559d209..e956b29 100644 --- a/src/MatLab/MatlabCreatorPrivate.cpp +++ b/src/MatLab/MatlabCreatorPrivate.cpp @@ -383,7 +383,7 @@ void MatlabCreatorPrivate::createInfoMat(std::shared_ptr aParser, const return; } size_t structDims[1] ={1}; - const char* field[7] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","FilterBypass"}; + const char* field[8] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","CEMeasuredDACDelay","FilterBypass"}; matvar_t* structVar = Mat_VarCreateStruct("MetaData",1,structDims,field,7); //shotList std::shared_ptr shotList = aParser->getShotList(); @@ -417,6 +417,11 @@ void MatlabCreatorPrivate::createInfoMat(std::shared_ptr aParser, const 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); + //CEMeasured DACDelay + double ceMeasuredDacDelay = metaData.getCEMeasuredDacDelay(); + size_t ceMeasuredDacDelayDims[2] ={1,1}; + matvar_t* ceMeasuredDacDelayVar = Mat_VarCreate("CEMeasuredDACDelay",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceMeasuredDacDelayDims,&ceMeasuredDacDelay,0); + Mat_VarSetStructFieldByName(structVar, "CEMeasuredDACDelay", 0, ceMeasuredDacDelayVar); //FilterBypass double filterByPass = metaData.getFilterByPass(); size_t filterByPassDims[2] ={1,1}; diff --git a/src/MatLab/MatlabCreatorVariableWindowPrivate.cpp b/src/MatLab/MatlabCreatorVariableWindowPrivate.cpp index 0ea31ad..fdef01d 100644 --- a/src/MatLab/MatlabCreatorVariableWindowPrivate.cpp +++ b/src/MatLab/MatlabCreatorVariableWindowPrivate.cpp @@ -459,7 +459,7 @@ void MatlabCreatorVariableWindowPrivate::createInfoMat(std::shared_ptr a return; } size_t structDims[1] ={1}; - const char* field[7] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","FilterBypass"}; + const char* field[8] = {"shotlist","samplenumber","SampleRate","Datatype","MeasurementID","DACDelay","CEMeasuredDACDelay","FilterBypass"}; matvar_t* structVar = Mat_VarCreateStruct("MetaData",1,structDims,field,7); //shotList std::shared_ptr shotList = aParser->getShotList(); @@ -493,6 +493,11 @@ void MatlabCreatorVariableWindowPrivate::createInfoMat(std::shared_ptr a 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); + //CEMeasured DACDelay + double ceMeasuredDacDelay = metaData.getCEMeasuredDacDelay(); + size_t ceMeasuredDacDelayDims[2] ={1,1}; + matvar_t* ceMeasuredDacDelayVar = Mat_VarCreate("CEMeasuredDACDelay",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceMeasuredDacDelayDims,&ceMeasuredDacDelay,0); + Mat_VarSetStructFieldByName(structVar, "CEMeasuredDACDelay", 0, ceMeasuredDacDelayVar); //FilterBypass double filterByPass = metaData.getFilterByPass(); size_t filterByPassDims[2] ={1,1}; diff --git a/src/Parser.pro b/src/Parser.pro index af4cbdc..0272470 100644 --- a/src/Parser.pro +++ b/src/Parser.pro @@ -44,6 +44,7 @@ SOURCES += \ ShotList/ShotListPrivate.cpp \ MatLab/MatlabCreatorPrivate.cpp \ MatLab/MatlabCreatorVariableWindowPrivate.cpp \ + MatLab/MatlabCreatorConvertFp16Private.cpp \ Data/CEMeasuredData.cpp \ Data/CEData.cpp \ Data/MetaData.cpp \ @@ -86,6 +87,7 @@ HEADERS += \ ShotList/ShotListPrivate.h \ MatLab/MatlabCreatorPrivate.h \ MatLab/MatlabCreatorVariableWindowPrivate.h \ + MatLab/MatlabCreatorConvertFp16Private.h \ Data/CEMeasuredData.h \ Data/CEData.h \ Data/MetaData.h \