Skip to content

Commit 2428da1

Browse files
committed
admt: Save calibration coeff. hex code to CSV
- Revised CSV saving format - Included post calibration samples, corrected errors, and FFTs Signed-off-by: John Lloyd Juanillo <[email protected]>
1 parent 4577a78 commit 2428da1

File tree

1 file changed

+121
-27
lines changed

1 file changed

+121
-27
lines changed

plugins/admt/src/harmoniccalibration.cpp

Lines changed: 121 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4006,33 +4006,127 @@ void HarmonicCalibration::extractCalibrationData()
40064006
FileManager fm("HarmonicCalibration");
40074007
fm.open(fileName, FileManager::EXPORT);
40084008

4009-
QVector<double> preCalibrationAngleErrorsFFTMagnitude(m_admtController->angle_errors_fft_pre.begin(),
4010-
m_admtController->angle_errors_fft_pre.end());
4011-
QVector<double> preCalibrationAngleErrorsFFTPhase(m_admtController->angle_errors_fft_phase_pre.begin(),
4012-
m_admtController->angle_errors_fft_phase_pre.end());
4013-
4014-
QVector<double> h1Mag = {H1_MAG_ANGLE};
4015-
QVector<double> h2Mag = {H2_MAG_ANGLE};
4016-
QVector<double> h3Mag = {H3_MAG_ANGLE};
4017-
QVector<double> h8Mag = {H8_MAG_ANGLE};
4018-
QVector<double> h1Phase = {H1_PHASE_ANGLE};
4019-
QVector<double> h2Phase = {H2_PHASE_ANGLE};
4020-
QVector<double> h3Phase = {H3_PHASE_ANGLE};
4021-
QVector<double> h8Phase = {H8_PHASE_ANGLE};
4022-
4023-
fm.save(graphDataList, "Raw Data");
4024-
fm.save(preCalibrationAngleErrorsFFTMagnitude, "Pre-Calibration Angle Errors FFT Magnitude");
4025-
fm.save(preCalibrationAngleErrorsFFTPhase, "Pre-Calibration Angle Errors FFT Phase");
4026-
fm.save(h1Mag, "H1 Mag");
4027-
fm.save(h2Mag, "H2 Mag");
4028-
fm.save(h3Mag, "H3 Mag");
4029-
fm.save(h8Mag, "H8 Mag");
4030-
fm.save(h1Phase, "H1 Phase");
4031-
fm.save(h2Phase, "H2 Phase");
4032-
fm.save(h3Phase, "H3 Phase");
4033-
fm.save(h8Phase, "H8 Phase");
4034-
4035-
fm.performWrite(withScopyHeader);
4009+
QVector<double> angleError =
4010+
QVector<double>(m_admtController->angleError.begin(), m_admtController->angleError.end());
4011+
QVector<double> FFTAngleErrorMagnitude =
4012+
QVector<double>(m_admtController->FFTAngleErrorMagnitude.begin(),
4013+
m_admtController->FFTAngleErrorMagnitude.end());
4014+
QVector<double> FFTAngleErrorPhase = QVector<double>(m_admtController->FFTAngleErrorPhase.begin(),
4015+
m_admtController->FFTAngleErrorPhase.end());
4016+
4017+
QVector<double> correctedError(m_admtController->correctedError.begin(),
4018+
m_admtController->correctedError.end());
4019+
QVector<double> FFTCorrectedErrorMagnitude(m_admtController->FFTCorrectedErrorMagnitude.begin(),
4020+
m_admtController->FFTCorrectedErrorMagnitude.end());
4021+
QVector<double> FFTCorrectedErrorPhase(m_admtController->FFTCorrectedErrorPhase.begin(),
4022+
m_admtController->FFTCorrectedErrorPhase.end());
4023+
4024+
QVector<QString> h1Mag = {QString::number(H1_MAG_ANGLE)};
4025+
QVector<QString> h2Mag = {QString::number(H2_MAG_ANGLE)};
4026+
QVector<QString> h3Mag = {QString::number(H3_MAG_ANGLE)};
4027+
QVector<QString> h8Mag = {QString::number(H8_MAG_ANGLE)};
4028+
QVector<QString> h1Phase = {QString::number(H1_PHASE_ANGLE)};
4029+
QVector<QString> h2Phase = {QString::number(H2_PHASE_ANGLE)};
4030+
QVector<QString> h3Phase = {QString::number(H3_PHASE_ANGLE)};
4031+
QVector<QString> h8Phase = {QString::number(H8_PHASE_ANGLE)};
4032+
4033+
QVector<QString> h1MagHex = {QString("0x%1").arg(H1_MAG_HEX, 4, 16, QChar('0'))};
4034+
QVector<QString> h2MagHex = {QString("0x%1").arg(H2_MAG_HEX, 4, 16, QChar('0'))};
4035+
QVector<QString> h3MagHex = {QString("0x%1").arg(H3_MAG_HEX, 4, 16, QChar('0'))};
4036+
QVector<QString> h8MagHex = {QString("0x%1").arg(H8_MAG_HEX, 4, 16, QChar('0'))};
4037+
QVector<QString> h1PhaseHex = {QString("0x%1").arg(H1_PHASE_HEX, 4, 16, QChar('0'))};
4038+
QVector<QString> h2PhaseHex = {QString("0x%1").arg(H2_PHASE_HEX, 4, 16, QChar('0'))};
4039+
QVector<QString> h3PhaseHex = {QString("0x%1").arg(H3_PHASE_HEX, 4, 16, QChar('0'))};
4040+
QVector<QString> h8PhaseHex = {QString("0x%1").arg(H8_PHASE_HEX, 4, 16, QChar('0'))};
4041+
4042+
QVector<QString> stringGraphDataList(graphDataList.size());
4043+
QVector<QString> stringGraphPostDataList(graphPostDataList.size());
4044+
4045+
transform(graphDataList.begin(), graphDataList.end(), stringGraphDataList.begin(),
4046+
[](double value) { return QString::number(value); });
4047+
transform(graphPostDataList.begin(), graphPostDataList.end(), stringGraphPostDataList.begin(),
4048+
[](double value) { return QString::number(value); });
4049+
4050+
QMap<QString, QVector<QString>> headerData;
4051+
4052+
headerData["a"] = {"Calibration Samples"};
4053+
headerData["b"] = {"Angle Error"};
4054+
headerData["c"] = {"FFT Angle Error Magnitude"};
4055+
headerData["d"] = {"FFT Angle Error Phase"};
4056+
headerData["e"] = {"Post Calibration Samples"};
4057+
headerData["f"] = {"Corrected Error"};
4058+
headerData["g"] = {"FFT Corrected Error Magnitude"};
4059+
headerData["h"] = {"FFT Corrected Error Phase"};
4060+
headerData["i"] = {"H1 Mag"};
4061+
headerData["j"] = {"H2 Mag"};
4062+
headerData["k"] = {"H3 Mag"};
4063+
headerData["l"] = {"H8 Mag"};
4064+
headerData["m"] = {"H1 Phase"};
4065+
headerData["n"] = {"H2 Phase"};
4066+
headerData["o"] = {"H3 Phase"};
4067+
headerData["p"] = {"H8 Phase"};
4068+
fm.writeToFile(false, headerData);
4069+
4070+
bool addedHarmonicAngleValues = false, addedHarmonicHexValues = false;
4071+
for(int i = 0; i < stringGraphDataList.count(); i++) {
4072+
QMap<QString, QVector<QString>> tempData;
4073+
tempData["a"] = {stringGraphDataList[i]};
4074+
4075+
if(i < angleError.count())
4076+
tempData["b"] = {QString::number(angleError[i])};
4077+
4078+
if(i < FFTAngleErrorMagnitude.count())
4079+
tempData["c"] = {QString::number(FFTAngleErrorMagnitude[i])};
4080+
4081+
if(i < FFTAngleErrorPhase.count())
4082+
tempData["d"] = {QString::number(FFTAngleErrorPhase[i])};
4083+
4084+
if(stringGraphPostDataList.count() > 0 && i < stringGraphPostDataList.count())
4085+
tempData["e"] = {stringGraphPostDataList[i]};
4086+
else
4087+
tempData["e"] = {""};
4088+
4089+
if(correctedError.count() > 0 && i < correctedError.count())
4090+
tempData["f"] = {QString::number(correctedError[i])};
4091+
else
4092+
tempData["f"] = {""};
4093+
4094+
if(FFTCorrectedErrorMagnitude.count() > 0 && i < FFTCorrectedErrorMagnitude.count())
4095+
tempData["g"] = {QString::number(FFTCorrectedErrorMagnitude[i])};
4096+
else
4097+
tempData["g"] = {""};
4098+
4099+
if(FFTCorrectedErrorPhase.count() > 0 && i < FFTCorrectedErrorPhase.count())
4100+
tempData["h"] = {QString::number(FFTCorrectedErrorPhase[i])};
4101+
else
4102+
tempData["h"] = {""};
4103+
4104+
if(!addedHarmonicAngleValues) {
4105+
tempData["i"] = h1Mag;
4106+
tempData["j"] = h2Mag;
4107+
tempData["k"] = h3Mag;
4108+
tempData["l"] = h8Mag;
4109+
tempData["m"] = h1Phase;
4110+
tempData["n"] = h2Phase;
4111+
tempData["o"] = h3Phase;
4112+
tempData["p"] = h8Phase;
4113+
4114+
addedHarmonicAngleValues = true;
4115+
} else if(!addedHarmonicHexValues) {
4116+
tempData["i"] = h1MagHex;
4117+
tempData["j"] = h2MagHex;
4118+
tempData["k"] = h3MagHex;
4119+
tempData["l"] = h8MagHex;
4120+
tempData["m"] = h1PhaseHex;
4121+
tempData["n"] = h2PhaseHex;
4122+
tempData["o"] = h3PhaseHex;
4123+
tempData["p"] = h8PhaseHex;
4124+
4125+
addedHarmonicHexValues = true;
4126+
}
4127+
4128+
fm.writeToFile(false, tempData);
4129+
}
40364130
}
40374131
}
40384132

0 commit comments

Comments
 (0)