@@ -4006,33 +4006,127 @@ void HarmonicCalibration::extractCalibrationData()
4006
4006
FileManager fm (" HarmonicCalibration" );
4007
4007
fm.open (fileName, FileManager::EXPORT);
4008
4008
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
+ }
4036
4130
}
4037
4131
}
4038
4132
0 commit comments