@@ -628,6 +628,9 @@ void isoDriver::frameActionGeneric(char CH1_mode, char CH2_mode)
628
628
return ;
629
629
}
630
630
631
+ internalBuffer375_CH1->enableDftWrite (spectrum);
632
+ internalBuffer375_CH2->enableDftWrite (spectrum);
633
+ // internalBuffer750->enableDftWrite(spectrum);
631
634
632
635
// qDebug() << "made it to frameActionGeneric";
633
636
if (!paused_CH1 && CH1_mode == - 1 ){
@@ -688,7 +691,7 @@ void isoDriver::frameActionGeneric(char CH1_mode, char CH2_mode)
688
691
* the buffer each time.
689
692
* @TODO improve this limitation.
690
693
*/
691
- double const_displ_window = ((double )internalBuffer375_CH1->async_dft . n_samples )/(internalBuffer375_CH1->m_samplesPerSecond );
694
+ double const_displ_window = ((double )internalBuffer375_CH1->async_dft -> n_samples )/(internalBuffer375_CH1->m_samplesPerSecond );
692
695
double const_displ_delay = 0 ;
693
696
display.delay = const_displ_delay;
694
697
display.window = const_displ_window;
@@ -697,28 +700,38 @@ void isoDriver::frameActionGeneric(char CH1_mode, char CH2_mode)
697
700
if (CH1_mode == -1 ) readData750 = internalBuffer750->readBuffer (display.window ,GRAPH_SAMPLES,false , display.delay + triggerDelay);
698
701
}
699
702
/* Convert data also for spectrum CH1 and CH2*/
700
- std::unique_ptr<short []> dt_samples1 = internalBuffer375_CH1->async_dft .getWindow ();
701
- std::unique_ptr<short []> dt_samples2 = internalBuffer375_CH2->async_dft .getWindow ();
703
+ std::unique_ptr<short []> dt_samples1;
704
+ std::unique_ptr<short []> dt_samples2;
705
+ QVector<double > converted_dt_samples1, converted_dt_samples2;
706
+ QVector<double > x (GRAPH_SAMPLES), CH1 (GRAPH_SAMPLES), CH2 (GRAPH_SAMPLES);
702
707
708
+ if (spectrum)
709
+ {
710
+ dt_samples1 = internalBuffer375_CH1->async_dft ->getWindow ();
711
+ dt_samples2 = internalBuffer375_CH2->async_dft ->getWindow ();
712
+ converted_dt_samples1.resize (internalBuffer375_CH1->async_dft ->n_samples ),
713
+ converted_dt_samples2.resize (internalBuffer375_CH2->async_dft ->n_samples );
714
+ }
703
715
704
- QVector<double > x (GRAPH_SAMPLES), CH1 (GRAPH_SAMPLES), CH2 (GRAPH_SAMPLES),
705
- converted_dt_samples1 (internalBuffer375_CH1->async_dft .n_samples ),
706
- converted_dt_samples2 (internalBuffer375_CH2->async_dft .n_samples );
707
716
708
717
if (CH1_mode == 1 ){
709
718
analogConvert (readData375_CH1.get (), &CH1, 128 , AC_CH1, 1 );
710
- analogConvert (dt_samples1.get (), &converted_dt_samples1, 128 , AC_CH1, 1 );
711
-
712
719
for (int i=0 ; i < CH1.size (); i++)
713
720
{
714
721
CH1[i] /= m_attenuation_CH1;
715
722
CH1[i] += m_offset_CH1;
716
723
}
717
- for (int i=0 ; i < converted_dt_samples1.size (); i++)
724
+
725
+ if (spectrum)
718
726
{
719
- converted_dt_samples1[i] /= m_attenuation_CH1;
720
- converted_dt_samples1[i] += m_offset_CH1;
727
+ analogConvert (dt_samples1.get (), &converted_dt_samples1, 128 , AC_CH1, 1 );
728
+ for (int i=0 ; i < converted_dt_samples1.size (); i++)
729
+ {
730
+ converted_dt_samples1[i] /= m_attenuation_CH1;
731
+ converted_dt_samples1[i] += m_offset_CH1;
732
+ }
721
733
}
734
+
722
735
xmin = (currentVmin < xmin) ? currentVmin : xmin;
723
736
xmax = (currentVmax > xmax) ? currentVmax : xmax;
724
737
broadcastStats (0 );
@@ -729,17 +742,21 @@ void isoDriver::frameActionGeneric(char CH1_mode, char CH2_mode)
729
742
730
743
if (CH2_mode == 1 ){
731
744
analogConvert (readData375_CH2.get (), &CH2, 128 , AC_CH2, 2 );
732
- analogConvert (dt_samples2.get (), &converted_dt_samples2, 128 , AC_CH2, 2 );
733
745
734
746
for (int i=0 ; i < GRAPH_SAMPLES; i++)
735
747
{
736
748
CH2[i] /= m_attenuation_CH2;
737
749
CH2[i] += m_offset_CH2;
738
750
}
739
- for (int i=0 ; i < converted_dt_samples2.size (); i++)
751
+
752
+ if (spectrum)
740
753
{
741
- converted_dt_samples2[i] /= m_attenuation_CH1;
742
- converted_dt_samples2[i] += m_offset_CH1;
754
+ analogConvert (dt_samples2.get (), &converted_dt_samples2, 128 , AC_CH2, 2 );
755
+ for (int i=0 ; i < converted_dt_samples2.size (); i++)
756
+ {
757
+ converted_dt_samples2[i] /= m_attenuation_CH1;
758
+ converted_dt_samples2[i] += m_offset_CH1;
759
+ }
743
760
}
744
761
ymin = (currentVmin < ymin) ? currentVmin : ymin;
745
762
ymax = (currentVmax > ymax) ? currentVmax : ymax;
@@ -778,24 +795,24 @@ void isoDriver::frameActionGeneric(char CH1_mode, char CH2_mode)
778
795
if (spectrum) { /* If frequency spectrum mode*/
779
796
try {
780
797
/* Creating DFT amplitudes*/
781
- QVector<double > amplitude1 = internalBuffer375_CH1->async_dft . getPowerSpectrum (converted_dt_samples1);
798
+ QVector<double > amplitude1 = internalBuffer375_CH1->async_dft -> getPowerSpectrum (converted_dt_samples1);
782
799
/* Getting array of frequencies for display purposes*/
783
- QVector<double > f = internalBuffer375_CH1->async_dft . getFrequenciyWindow (internalBuffer375_CH1->m_samplesPerSecond );
800
+ QVector<double > f = internalBuffer375_CH1->async_dft -> getFrequenciyWindow (internalBuffer375_CH1->m_samplesPerSecond );
784
801
785
802
/* Max amplitude for display purposes*/
786
- double max1 = internalBuffer375_CH1->async_dft . maximum ;
803
+ double max1 = internalBuffer375_CH1->async_dft -> maximum ;
787
804
double max2 = -1 ;
788
805
789
806
if (CH2_mode) {
790
- QVector<double > amplitude2 = internalBuffer375_CH2->async_dft . getPowerSpectrum (converted_dt_samples2);
791
- max2 = internalBuffer375_CH2->async_dft . maximum ;
807
+ QVector<double > amplitude2 = internalBuffer375_CH2->async_dft -> getPowerSpectrum (converted_dt_samples2);
808
+ max2 = internalBuffer375_CH2->async_dft -> maximum ;
792
809
/* Normalization with respect to amplitude1*/
793
- amplitude2 = internalBuffer375_CH2->async_dft . normalizeDFT (max1, amplitude2);
810
+ amplitude2 = internalBuffer375_CH2->async_dft -> normalizeDFT (max1, amplitude2);
794
811
axes->graph (1 )->setData (f,amplitude2);
795
812
}
796
813
797
814
/* Decision for normalization & display purposes*/
798
- amplitude1 = internalBuffer375_CH1->async_dft . normalizeDFT (max2, amplitude1);
815
+ amplitude1 = internalBuffer375_CH1->async_dft -> normalizeDFT (max2, amplitude1);
799
816
axes->graph (0 )->setData (f, amplitude1);
800
817
axes->xAxis ->setRange (m_spectrumMinX, m_spectrumMaxX);
801
818
/* Setting maximum/minimum y-axis 0%-100%*/
0 commit comments