@@ -644,3 +644,56 @@ void PageSampledData::on_plotModeBox_currentIndexChanged(int index)
644644{
645645 ui->currentStack ->setCurrentIndex (index == 2 ? 1 : 0 );
646646}
647+
648+ void PageSampledData::on_saveDataButton_clicked ()
649+ {
650+ QString fileName = QFileDialog::getSaveFileName (this ,
651+ tr (" Save CSV" ), " " ,
652+ tr (" CSV Files (*.csv)" ));
653+
654+ if (!fileName.isEmpty ()) {
655+ if (!fileName.toLower ().endsWith (" .csv" )) {
656+ fileName.append (" .csv" );
657+ }
658+
659+ QFile file (fileName);
660+ if (!file.open (QIODevice::WriteOnly)) {
661+ QMessageBox::critical (this , " Save CSV File" ,
662+ " Could not open\n " + fileName + " \n for writing" );
663+ return ;
664+ }
665+
666+ QTextStream stream (&file);
667+ stream.setCodec (" UTF-8" );
668+
669+ // Generate Time axis
670+ QVector<double > timeVec;
671+ timeVec.resize (fSwVector .size ());
672+ double prev_t = 0.0 ;
673+ for (int i = 0 ;i < timeVec.size ();i++) {
674+ timeVec[i] = prev_t ;
675+ prev_t += 1.0 / fSwVector [i];
676+ }
677+
678+ stream << " T;I1;I2;I3;V1;V2;V3;I_tot;V_zero;Phase\n " ;
679+
680+ for (int i = 0 ;i < curr1Vector.size ();i++) {
681+ stream << timeVec.at (i) << " ;" ;
682+ stream << curr1Vector.at (i) << " ;" ;
683+ stream << curr2Vector.at (i) << " ;" ;
684+ stream << -(curr1Vector.at (i) + curr2Vector.at (i)) << " ;" ;
685+ stream << ph1Vector.at (i) << " ;" ;
686+ stream << ph2Vector.at (i) << " ;" ;
687+ stream << ph3Vector.at (i) << " ;" ;
688+ stream << currTotVector.at (i) << " ;" ;
689+ stream << vZeroVector.at (i) << " ;" ;
690+ stream << (double )((quint8)phaseArray.at (i)) / 250.0 * 360.0 << " ;" ;
691+
692+ if (i < (curr1Vector.size () - 1 )) {
693+ stream << " \n " ;
694+ }
695+ }
696+
697+ file.close ();
698+ }
699+ }
0 commit comments