@@ -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