summaryrefslogtreecommitdiff
path: root/gr-qtgui/src/lib/spectrumdisplayform.cc
blob: b2729219382d10b6462da1be71afb5a0737fbb47 (plain)
ofshex dumpascii
0000 23 69 6e 63 6c 75 64 65 20 3c 63 6d 61 74 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 51 43 6f 6c 6f #include.<cmath>.#include.<QColo
0020 72 44 69 61 6c 6f 67 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 51 4d 65 73 73 61 67 65 42 6f 78 3e 0a rDialog>.#include.<QMessageBox>.
0040 23 69 6e 63 6c 75 64 65 20 3c 73 70 65 63 74 72 75 6d 64 69 73 70 6c 61 79 66 6f 72 6d 2e 68 3e #include.<spectrumdisplayform.h>
0060 0a 0a 69 6e 74 20 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 5f 6f 70 65 6e ..int.SpectrumDisplayForm::_open
0080 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 2d 31 3b 0a 0a 53 70 65 63 74 72 75 GLWaterfall3DFlag.=.-1;..Spectru
00a0 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 mDisplayForm::SpectrumDisplayFor
00c0 6d 28 62 6f 6f 6c 20 75 73 65 4f 70 65 6e 47 4c 2c 20 51 57 69 64 67 65 74 2a 20 70 61 72 65 6e m(bool.useOpenGL,.QWidget*.paren
00e0 74 29 0a 20 20 3a 20 51 57 69 64 67 65 74 28 70 61 72 65 6e 74 29 0a 7b 0a 20 20 73 65 74 75 70 t)...:.QWidget(parent).{...setup
0100 55 69 28 74 68 69 73 29 3b 0a 0a 20 20 5f 75 73 65 4f 70 65 6e 47 4c 20 3d 20 75 73 65 4f 70 65 Ui(this);...._useOpenGL.=.useOpe
0120 6e 47 4c 3b 0a 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 20 3d 20 66 61 nGL;..._systemSpecifiedFlag.=.fa
0140 6c 73 65 3b 0a 20 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 51 49 6e 74 56 lse;..._intValidator.=.new.QIntV
0160 61 6c 69 64 61 74 6f 72 28 74 68 69 73 29 3b 0a 20 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 2d alidator(this);..._intValidator-
0180 3e 73 65 74 42 6f 74 74 6f 6d 28 30 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c >setBottom(0);..._frequencyDispl
01a0 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 46 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f ayPlot.=.new.FrequencyDisplayPlo
01c0 74 28 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b 0a 20 20 t(FrequencyPlotDisplayFrame);...
01e0 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 57 61 74 65 _waterfallDisplayPlot.=.new.Wate
0200 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 28 57 61 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 rfallDisplayPlot(WaterfallPlotDi
0220 73 70 6c 61 79 46 72 61 6d 65 00 29 3b 0a 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a splayFrame.);....if((QGLFormat::
0240 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a hasOpenGL()).&&.(_useOpenGL)).{.
0260 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 ...._waterfall3DDisplayPlot.=.ne
0280 77 20 57 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 28 57 61 74 65 72 66 61 w.Waterfall3DDisplayPlot(Waterfa
02a0 6c 6c 33 44 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b 0a 20 20 7d 0a 0a 20 20 5f 74 ll3DPlotDisplayFrame);...}...._t
02c0 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 54 69 6d 65 44 imeDomainDisplayPlot.=.new.TimeD
02e0 6f 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 28 54 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c omainDisplayPlot(TimeDomainDispl
0300 61 79 46 72 61 6d 65 29 3b 0a 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 ayFrame);..._constellationDispla
0320 79 50 6c 6f 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 yPlot.=.new.ConstellationDisplay
0340 50 6c 6f 74 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b Plot(ConstellationDisplayFrame);
0360 0a 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 31 30 32 34 3b 0a 20 20 ..._numRealDataPoints.=.1024;...
0380 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b _realFFTDataPoints.=.new.double[
03a0 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 5d 3b 0a 20 20 5f 61 76 65 72 61 67 65 64 _numRealDataPoints];..._averaged
03c0 56 61 6c 75 65 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 74 61 Values.=.new.double[_numRealData
03e0 50 6f 69 6e 74 73 5d 3b 0a 20 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 20 3d 20 6e 65 77 20 Points];..._historyVector.=.new.
0400 73 74 64 3a 3a 76 65 63 74 6f 72 3c 64 6f 75 62 6c 65 2a 3e 3b 0a 20 20 0a 20 20 41 76 67 4c 69 std::vector<double*>;......AvgLi
0420 6e 65 45 64 69 74 2d 3e 73 65 74 52 61 6e 67 65 28 30 2c 20 35 30 30 29 3b 20 20 20 20 20 20 20 neEdit->setRange(0,.500);.......
0440 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 65 74 20 72 61 6e 67 65 20 6f 66 20 41 76 65 72 61 67 ..........//.Set.range.of.Averag
0460 65 20 62 6f 78 20 76 61 6c 75 65 20 66 72 6f 6d 20 30 20 74 6f 20 35 30 30 0a 20 20 50 6f 77 65 e.box.value.from.0.to.500...Powe
0480 72 4c 69 6e 65 45 64 69 74 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 5f 69 6e 74 56 61 6c 69 rLineEdit->setValidator(_intVali
04a0 64 61 74 6f 72 29 3b 20 20 20 20 2f 2f 20 54 65 6c 6c 20 47 55 49 20 74 68 69 73 20 63 61 6e 20 dator);....//.Tell.GUI.this.can.
04c0 6f 6e 6c 79 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 0a 20 20 4d 69 6e 48 6f only.be.an.integer.value...MinHo
04e0 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 20 66 61 6c 73 65 20 29 3b 0a 20 20 4d ldCheckBox_toggled(.false.);...M
0500 61 78 48 6f 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 20 66 61 6c 73 65 20 29 3b axHoldCheckBox_toggled(.false.);
0520 0a 20 20 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 ......WaterfallMaximumIntensityW
0540 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a 20 20 57 61 74 65 72 heel->setRange(-200,.0);...Water
0560 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 54 69 fallMaximumIntensityWheel->setTi
0580 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 ckCnt(50);...WaterfallMinimumInt
05a0 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a ensityWheel->setRange(-200,.0);.
05c0 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c ..WaterfallMinimumIntensityWheel
05e0 2d 3e 73 65 74 54 69 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e ->setTickCnt(50);...WaterfallMin
0600 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 2d 32 30 imumIntensityWheel->setValue(-20
0620 30 29 3b 0a 20 20 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 0);......if((QGLFormat::hasOpenG
0640 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 57 61 74 65 L()).&&.(_useOpenGL)).{.....Wate
0660 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 rfall3DMaximumIntensityWheel->se
0680 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 tRange(-200,.0);.....Waterfall3D
06a0 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 54 69 63 6b 43 6e MaximumIntensityWheel->setTickCn
06c0 74 28 35 30 29 3b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 t(50);.....Waterfall3DMinimumInt
06e0 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a ensityWheel->setRange(-200,.0);.
0700 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 ....Waterfall3DMinimumIntensityW
0720 68 65 65 6c 2d 3e 73 65 74 54 69 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 20 20 57 61 74 65 72 66 heel->setTickCnt(50);.....Waterf
0740 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 all3DMinimumIntensityWheel->setV
0760 61 6c 75 65 28 2d 32 30 30 29 3b 0a 20 20 7d 0a 0a 20 20 5f 70 65 61 6b 46 72 65 71 75 65 6e 63 alue(-200);...}...._peakFrequenc
0780 79 20 3d 20 30 3b 0a 20 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 2d 48 55 47 45 5f y.=.0;..._peakAmplitude.=.-HUGE_
07a0 56 41 4c 3b 0a 20 20 0a 20 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 3d VAL;......_noiseFloorAmplitude.=
07c0 20 2d 48 55 47 45 5f 56 41 4c 3b 0a 0a 20 20 63 6f 6e 6e 65 63 74 28 5f 77 61 74 65 72 66 61 6c .-HUGE_VAL;....connect(_waterfal
07e0 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 49 47 4e 41 4c 28 55 70 64 61 74 65 64 4c 6f 77 65 lDisplayPlot,.SIGNAL(UpdatedLowe
0800 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 29 2c 20 rIntensityLevel(const.double)),.
0820 0a 09 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 4c 4f 54 28 ...._frequencyDisplayPlot,.SLOT(
0840 53 65 74 4c 6f 77 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 SetLowerIntensityLevel(const.dou
0860 62 6c 65 29 29 29 3b 0a 20 20 63 6f 6e 6e 65 63 74 28 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 ble)));...connect(_waterfallDisp
0880 6c 61 79 50 6c 6f 74 2c 20 53 49 47 4e 41 4c 28 55 70 64 61 74 65 64 55 70 70 65 72 49 6e 74 65 layPlot,.SIGNAL(UpdatedUpperInte
08a0 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 29 2c 20 0a 09 20 20 5f nsityLevel(const.double)),....._
08c0 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 4c 4f 54 28 53 65 74 55 70 frequencyDisplayPlot,.SLOT(SetUp
08e0 70 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 29 perIntensityLevel(const.double))
0900 29 3b 0a 20 20 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 );......_frequencyDisplayPlot->S
0920 65 74 4c 6f 77 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 2d 32 30 30 29 3b 0a 20 20 5f etLowerIntensityLevel(-200);..._
0940 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 55 70 70 65 72 49 6e frequencyDisplayPlot->SetUpperIn
0960 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 2d 32 30 30 29 3b 0a 0a 20 20 2f 2f 20 4c 6f 61 64 20 75 tensityLevel(-200);....//.Load.u
0980 70 20 74 68 65 20 61 63 63 65 70 74 61 62 6c 65 20 46 46 54 20 73 69 7a 65 73 2e 2e 2e 0a 20 20 p.the.acceptable.FFT.sizes......
09a0 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 63 6c 65 61 72 28 29 3b 0a 20 20 66 6f 72 28 FFTSizeComboBox->clear();...for(
09c0 6c 6f 6e 67 20 66 66 74 53 69 7a 65 20 3d 20 53 70 65 63 74 72 75 6d 47 55 49 43 6c 61 73 73 3a long.fftSize.=.SpectrumGUIClass:
09e0 3a 4d 49 4e 5f 46 46 54 5f 53 49 5a 45 3b 20 66 66 74 53 69 7a 65 20 3c 3d 20 53 70 65 63 74 72 :MIN_FFT_SIZE;.fftSize.<=.Spectr
0a00 75 6d 47 55 49 43 6c 61 73 73 3a 3a 4d 41 58 5f 46 46 54 5f 53 49 5a 45 3b 20 66 66 74 53 69 7a umGUIClass::MAX_FFT_SIZE;.fftSiz
0a20 65 20 2a 3d 20 32 29 7b 0a 20 20 20 20 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 69 6e e.*=.2){.....FFTSizeComboBox->in
0a40 73 65 72 74 49 74 65 6d 28 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 63 6f 75 6e 74 28 sertItem(FFTSizeComboBox->count(
0a60 29 2c 20 51 53 74 72 69 6e 67 28 22 25 31 22 29 2e 61 72 67 28 66 66 74 53 69 7a 65 29 29 3b 0a ),.QString("%1").arg(fftSize));.
0a80 20 20 7d 0a 20 20 52 65 73 65 74 28 29 3b 0a 0a 20 20 54 6f 67 67 6c 65 54 61 62 46 72 65 71 75 ..}...Reset();....ToggleTabFrequ
0aa0 65 6e 63 79 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c ency(false);...ToggleTabWaterfal
0ac0 6c 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c 33 44 l(false);...ToggleTabWaterfall3D
0ae0 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 54 69 6d 65 28 66 61 6c 73 65 29 3b (false);...ToggleTabTime(false);
0b00 0a 20 20 54 6f 67 67 6c 65 54 61 62 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 28 66 61 6c 73 65 29 ...ToggleTabConstellation(false)
0b20 3b 0a 7d 0a 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 7e 53 70 65 63 74 ;.}..SpectrumDisplayForm::~Spect
0b40 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 28 29 0a 7b 0a 20 20 2f 2f 20 51 74 20 64 65 6c 65 74 rumDisplayForm().{...//.Qt.delet
0b60 65 73 20 63 68 69 6c 64 72 65 6e 20 77 68 65 6e 20 70 61 72 65 6e 74 20 69 73 20 64 65 6c 65 74 es.children.when.parent.is.delet
0b80 65 64 0a 0a 20 20 2f 2f 20 44 6f 6e 27 74 20 77 6f 72 72 79 20 61 62 6f 75 74 20 64 65 6c 65 74 ed....//.Don't.worry.about.delet
0ba0 69 6e 67 20 44 69 73 70 6c 61 79 20 50 6c 6f 74 73 20 2d 20 74 68 65 79 20 61 72 65 20 64 65 6c ing.Display.Plots.-.they.are.del
0bc0 65 74 65 64 20 77 68 65 6e 20 70 61 72 65 6e 74 73 20 61 72 65 20 64 65 6c 65 74 65 64 0a 20 20 eted.when.parents.are.deleted...
0be0 2f 2a 20 20 20 64 65 6c 65 74 65 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 3b 20 2a 2f 0a 0a 20 /*...delete._intValidator;.*/...
0c00 20 64 65 6c 65 74 65 5b 5d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 .delete[]._realFFTDataPoints;...
0c20 64 65 6c 65 74 65 5b 5d 20 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 3b 0a 0a 20 20 66 6f 72 delete[]._averagedValues;....for
0c40 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6f 75 6e 74 20 3d 20 30 3b 20 63 6f 75 6e 74 20 3c (unsigned.int.count.=.0;.count.<
0c60 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 20 63 6f 75 6e 74 2b 2b ._historyVector->size();.count++
0c80 29 7b 0a 20 20 20 20 64 65 6c 65 74 65 5b 5d 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e ){.....delete[]._historyVector->
0ca0 6f 70 65 72 61 74 6f 72 5b 5d 28 63 6f 75 6e 74 29 3b 0a 20 20 7d 0a 0a 20 20 64 65 6c 65 74 65 operator[](count);...}....delete
0cc0 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 ._historyVector;.}..void.Spectru
0ce0 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 73 65 74 53 79 73 74 65 6d 28 20 53 70 65 63 74 72 75 mDisplayForm::setSystem(.Spectru
0d00 6d 47 55 49 43 6c 61 73 73 20 2a 20 6e 65 77 53 79 73 74 65 6d 2c 20 0a 09 09 09 09 63 6f 6e 73 mGUIClass.*.newSystem,......cons
0d20 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 t.uint64_t.numFFTDataPoints,....
0d40 09 09 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 ..const.uint64_t.numTimeDomainDa
0d60 74 61 50 6f 69 6e 74 73 20 29 0a 7b 0a 20 20 52 65 73 69 7a 65 42 75 66 66 65 72 73 28 6e 75 6d taPoints.).{...ResizeBuffers(num
0d80 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 FFTDataPoints,.numTimeDomainData
0da0 50 6f 69 6e 74 73 29 3b 0a 20 20 0a 20 20 69 66 28 6e 65 77 53 79 73 74 65 6d 20 21 3d 20 4e 55 Points);......if(newSystem.!=.NU
0dc0 4c 4c 29 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 20 3d 20 6e 65 77 53 79 73 74 65 6d 3b 0a 20 20 LL){....._system.=.newSystem;...
0de0 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 20 3d 20 74 72 75 65 3b 0a 20 .._systemSpecifiedFlag.=.true;..
0e00 20 7d 0a 20 20 65 6c 73 65 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 .}...else{....._systemSpecifiedF
0e20 6c 61 67 20 3d 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 lag.=.false;...}.}..void.Spectru
0e40 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 6e 65 77 46 72 65 71 75 65 6e 63 79 44 61 74 61 28 20 mDisplayForm::newFrequencyData(.
0e60 63 6f 6e 73 74 20 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2a 20 73 70 65 63 74 const.SpectrumUpdateEvent*.spect
0e80 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 0a 7b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 50 61 rumUpdateEvent).{...//printf("Pa
0ea0 72 65 6e 74 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 74 3a 20 25 64 5c 6e 22 2c 20 77 rent.Width:.%d..Height:.%d\n",.w
0ec0 69 64 74 68 28 29 2c 20 68 65 69 67 68 74 28 29 29 3b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 46 idth(),.height());...//printf("F
0ee0 72 65 71 75 65 6e 63 79 20 46 72 61 6d 65 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 74 requency.Frame.Width:.%d..Height
0f00 3a 20 25 64 5c 6e 22 2c 20 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 :.%d\n",.FrequencyPlotDisplayFra
0f20 6d 65 2d 3e 77 69 64 74 68 28 29 2c 20 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 me->width(),.FrequencyPlotDispla
0f40 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 46 yFrame->height());...//printf("F
0f60 72 65 71 75 65 6e 63 79 20 50 6c 6f 74 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 74 3a requency.Plot.Width:.%d..Height:
0f80 20 25 64 5c 6e 22 2c 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 77 .%d\n",._frequencyDisplayPlot->w
0fa0 69 64 74 68 28 29 2c 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 68 idth(),._frequencyDisplayPlot->h
0fc0 65 69 67 68 74 28 29 29 3b 0a 0a 0a 20 20 2f 2f 5f 6c 61 73 74 53 70 65 63 74 72 75 6d 45 76 65 eight());.....//_lastSpectrumEve
0fe0 6e 74 20 3d 20 28 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 28 2a 73 70 65 63 nt.=.(SpectrumUpdateEvent)(*spec
1000 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 73 74 64 3a 3a 63 trumUpdateEvent);...const.std::c
1020 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 2a 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 omplex<float>*.complexDataPoints
1040 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 46 46 54 50 6f .=.spectrumUpdateEvent->getFFTPo
1060 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 46 46 54 44 ints();...const.uint64_t.numFFTD
1080 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d ataPoints.=.spectrumUpdateEvent-
10a0 3e 67 65 74 4e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 >getNumFFTDataPoints();...const.
10c0 64 6f 75 62 6c 65 2a 20 72 65 61 6c 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 double*.realTimeDomainDataPoints
10e0 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 52 65 61 6c 54 .=.spectrumUpdateEvent->getRealT
1100 69 6d 65 44 6f 6d 61 69 6e 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c imeDomainPoints();...const.doubl
1120 65 2a 20 69 6d 61 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 70 e*.imagTimeDomainDataPoints.=.sp
1140 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 49 6d 61 67 54 69 6d 65 44 6f ectrumUpdateEvent->getImagTimeDo
1160 6d 61 69 6e 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e mainPoints();...const.uint64_t.n
1180 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 70 65 63 74 72 75 umTimeDomainDataPoints.=.spectru
11a0 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 4e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 mUpdateEvent->getNumTimeDomainDa
11c0 74 61 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 74 69 6d 65 50 taPoints();...const.double.timeP
11e0 65 72 46 46 54 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 erFFT.=.spectrumUpdateEvent->get
1200 54 69 6d 65 50 65 72 46 46 54 28 29 3b 0a 20 20 63 6f 6e 73 74 20 74 69 6d 65 73 70 65 63 20 64 TimePerFFT();...const.timespec.d
1220 61 74 61 54 69 6d 65 73 74 61 6d 70 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 ataTimestamp.=.spectrumUpdateEve
1240 6e 74 2d 3e 67 65 74 44 61 74 61 54 69 6d 65 73 74 61 6d 70 28 29 3b 3b 0a 20 20 63 6f 6e 73 74 nt->getDataTimestamp();;...const
1260 20 62 6f 6f 6c 20 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 20 3d 20 73 70 65 63 74 72 75 6d 55 .bool.repeatDataFlag.=.spectrumU
1280 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 52 65 70 65 61 74 44 61 74 61 46 6c 61 67 28 29 3b pdateEvent->getRepeatDataFlag();
12a0 0a 20 20 63 6f 6e 73 74 20 62 6f 6f 6c 20 6c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 61 ...const.bool.lastOfMultipleUpda
12c0 74 65 73 46 6c 61 67 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 tesFlag.=.spectrumUpdateEvent->g
12e0 65 74 4c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 61 74 65 46 6c 61 67 28 29 3b 0a 20 20 etLastOfMultipleUpdateFlag();...
1300 63 6f 6e 73 74 20 74 69 6d 65 73 70 65 63 20 67 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 6d const.timespec.generatedTimestam
1320 70 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 45 76 65 6e p.=.spectrumUpdateEvent->getEven
1340 74 47 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 6d 70 28 29 3b 0a 0a 20 20 2f 2f 20 52 45 4d tGeneratedTimestamp();....//.REM
1360 45 4d 42 45 52 3a 20 54 68 65 20 64 61 74 61 54 69 6d 65 73 74 61 6d 70 20 69 73 20 4e 4f 54 20 EMBER:.The.dataTimestamp.is.NOT.
1380 76 61 6c 69 64 20 77 68 65 6e 20 74 68 65 20 72 65 70 65 61 74 20 64 61 74 61 20 66 6c 61 67 20 valid.when.the.repeat.data.flag.
13a0 69 73 20 74 72 75 65 2e 2e 2e 0a 20 20 52 65 73 69 7a 65 42 75 66 66 65 72 73 28 6e 75 6d 46 46 is.true......ResizeBuffers(numFF
13c0 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f TDataPoints,.numTimeDomainDataPo
13e0 69 6e 74 73 29 3b 0a 0a 20 20 2f 2f 20 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 4d 61 67 6e 69 ints);....//.Calculate.the.Magni
1400 74 75 64 65 20 6f 66 20 74 68 65 20 63 6f 6d 70 6c 65 78 20 70 6f 69 6e 74 0a 20 20 63 6f 6e 73 tude.of.the.complex.point...cons
1420 74 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 2a 20 63 6f 6d 70 6c 65 78 44 61 t.std::complex<float>*.complexDa
1440 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 2b taPointsPtr.=.complexDataPoints+
1460 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 0a 20 20 64 6f 75 62 6c 65 2a 20 72 65 numFFTDataPoints/2;...double*.re
1480 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 5f 72 65 61 6c 46 46 54 44 61 74 alFFTDataPointsPtr.=._realFFTDat
14a0 61 50 6f 69 6e 74 73 3b 0a 0a 20 20 2f 2f 20 52 75 6e 20 74 68 69 73 20 74 77 69 63 65 20 74 6f aPoints;....//.Run.this.twice.to
14c0 20 70 65 72 66 6f 72 6d 20 74 68 65 20 66 66 74 73 68 69 66 74 20 6f 70 65 72 61 74 69 6f 6e 20 .perform.the.fftshift.operation.
14e0 6f 6e 20 74 68 65 20 64 61 74 61 20 68 65 72 65 20 61 73 20 77 65 6c 6c 0a 20 20 66 6f 72 28 75 on.the.data.here.as.well...for(u
1500 69 6e 74 36 34 5f 74 20 70 6f 69 6e 74 20 3d 20 30 3b 20 70 6f 69 6e 74 20 3c 20 6e 75 6d 46 46 int64_t.point.=.0;.point.<.numFF
1520 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 20 70 6f 69 6e 74 2b 2b 29 7b 0a 20 20 20 20 2f 2f 20 TDataPoints/2;.point++){.....//.
1540 43 61 6c 63 75 6c 61 74 65 20 64 42 6d 0a 20 20 20 20 2f 2f 20 35 30 20 6f 68 6d 20 6c 6f 61 64 Calculate.dBm.....//.50.ohm.load
1560 20 61 73 73 75 6d 70 74 69 6f 6e 0a 20 20 20 20 2f 2f 20 31 30 20 2a 20 6c 6f 67 31 30 20 28 76 .assumption.....//.10.*.log10.(v
1580 5e 32 20 2f 20 28 32 20 2a 20 35 30 2e 30 20 2a 20 2e 30 30 31 29 29 20 3d 20 31 30 20 2a 20 6c ^2./.(2.*.50.0.*..001)).=.10.*.l
15a0 6f 67 31 30 28 20 76 5e 32 20 2a 20 31 30 29 0a 20 20 20 20 2f 2f 20 37 35 20 6f 68 6d 20 6c 6f og10(.v^2.*.10).....//.75.ohm.lo
15c0 61 64 20 61 73 73 75 6d 70 74 69 6f 6e 0a 20 20 20 20 2f 2f 20 31 30 20 2a 20 6c 6f 67 31 30 20 ad.assumption.....//.10.*.log10.
15e0 28 76 5e 32 20 2f 20 28 32 20 2a 20 37 35 2e 30 20 2a 20 2e 30 30 31 29 29 20 3d 20 31 30 20 2a (v^2./.(2.*.75.0.*..001)).=.10.*
1600 20 6c 6f 67 31 30 28 20 76 5e 32 20 2a 20 31 35 29 0a 0a 20 20 20 20 2f 2f 20 70 65 72 66 6f 72 .log10(.v^2.*.15)......//.perfor
1620 6d 20 73 63 61 6c 69 6e 67 20 68 65 72 65 0a 20 20 20 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c m.scaling.here.....std::complex<
1640 66 6c 6f 61 74 3e 20 70 74 20 3d 20 28 2a 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 50 float>.pt.=.(*complexDataPointsP
1660 74 72 29 20 2f 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 28 28 66 6c 6f 61 74 tr)./.std::complex<float>((float
1680 29 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 2a 72 65 61 6c 46 46 54 )numFFTDataPoints);.....*realFFT
16a0 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 31 30 2e 30 2a 6c 6f 67 31 30 28 28 70 74 2e 72 DataPointsPtr.=.10.0*log10((pt.r
16c0 65 61 6c 28 29 20 2a 20 70 74 2e 72 65 61 6c 28 29 20 2b 20 70 74 2e 69 6d 61 67 28 29 2a 70 74 eal().*.pt.real().+.pt.imag()*pt
16e0 2e 69 6d 61 67 28 29 29 20 2b 20 31 65 2d 32 30 29 3b 0a 0a 20 20 20 20 63 6f 6d 70 6c 65 78 44 .imag()).+.1e-20);......complexD
1700 61 74 61 50 6f 69 6e 74 73 50 74 72 2b 2b 3b 0a 20 20 20 20 72 65 61 6c 46 46 54 44 61 74 61 50 ataPointsPtr++;.....realFFTDataP
1720 6f 69 6e 74 73 50 74 72 2b 2b 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2f 20 54 68 69 73 20 6c 6f 6f ointsPtr++;...}......//.This.loo
1740 70 20 74 61 6b 65 73 20 74 68 65 20 66 69 72 73 74 20 68 61 6c 66 20 6f 66 20 74 68 65 20 69 6e p.takes.the.first.half.of.the.in
1760 70 75 74 20 64 61 74 61 20 61 6e 64 20 70 75 74 73 20 69 74 20 69 6e 20 74 68 65 20 73 65 63 6f put.data.and.puts.it.in.the.seco
1780 6e 64 20 68 61 6c 66 20 6f 66 20 74 68 65 20 70 6c 6f 74 74 65 64 20 64 61 74 61 0a 20 20 63 6f nd.half.of.the.plotted.data...co
17a0 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 63 6f 6d 70 6c 65 78 44 61 74 61 mplexDataPointsPtr.=.complexData
17c0 50 6f 69 6e 74 73 3b 0a 20 20 66 6f 72 28 75 69 6e 74 36 34 5f 74 20 70 6f 69 6e 74 20 3d 20 30 Points;...for(uint64_t.point.=.0
17e0 3b 20 70 6f 69 6e 74 20 3c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 20 70 6f ;.point.<.numFFTDataPoints/2;.po
1800 69 6e 74 2b 2b 29 7b 0a 20 20 20 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 20 int++){.....std::complex<float>.
1820 70 74 20 3d 20 28 2a 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 50 74 72 29 20 2f 20 73 pt.=.(*complexDataPointsPtr)./.s
1840 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 28 28 66 6c 6f 61 74 29 6e 75 6d 46 46 54 td::complex<float>((float)numFFT
1860 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 2a 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 DataPoints);.....*realFFTDataPoi
1880 6e 74 73 50 74 72 20 3d 20 31 30 2e 30 2a 6c 6f 67 31 30 28 28 70 74 2e 72 65 61 6c 28 29 20 2a ntsPtr.=.10.0*log10((pt.real().*
18a0 20 70 74 2e 72 65 61 6c 28 29 20 2b 20 70 74 2e 69 6d 61 67 28 29 2a 70 74 2e 69 6d 61 67 28 29 .pt.real().+.pt.imag()*pt.imag()
18c0 29 20 2b 20 31 65 2d 32 30 29 3b 0a 0a 20 20 20 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e ).+.1e-20);......complexDataPoin
18e0 74 73 50 74 72 2b 2b 3b 0a 20 20 20 20 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 50 74 tsPtr++;.....realFFTDataPointsPt
1900 72 2b 2b 3b 0a 20 20 7d 0a 0a 20 20 2f 2f 20 44 6f 6e 27 74 20 75 70 64 61 74 65 20 74 68 65 20 r++;...}....//.Don't.update.the.
1920 61 76 65 72 61 67 69 6e 67 20 68 69 73 74 6f 72 79 20 69 66 20 74 68 69 73 20 69 73 20 72 65 70 averaging.history.if.this.is.rep
1940 65 61 74 65 64 20 64 61 74 61 0a 20 20 69 66 28 21 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 29 eated.data...if(!repeatDataFlag)
1960 7b 0a 20 20 20 20 5f 41 76 65 72 61 67 65 48 69 73 74 6f 72 79 28 5f 72 65 61 6c 46 46 54 44 61 {....._AverageHistory(_realFFTDa
1980 74 61 50 6f 69 6e 74 73 29 3b 0a 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 75 6d 4d 65 61 6e 3b 0a taPoints);......double.sumMean;.
19a0 20 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 66 66 74 5f 62 69 6e 5f 73 69 7a 65 20 3d 20 ....const.double.fft_bin_size.=.
19c0 28 5f 73 74 6f 70 46 72 65 71 75 65 6e 63 79 2d 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 29 (_stopFrequency-_startFrequency)
19e0 20 2f 0a 20 20 20 20 20 20 73 74 61 74 69 63 5f 63 61 73 74 3c 64 6f 75 62 6c 65 3e 28 6e 75 6d ./.......static_cast<double>(num
1a00 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 0a 20 20 20 20 2f 2f 20 66 69 6e 64 20 74 68 65 FFTDataPoints);......//.find.the
1a20 20 70 65 61 6b 2c 20 73 75 6d 20 28 66 6f 72 20 6d 65 61 6e 29 2c 20 65 74 63 0a 20 20 20 20 5f .peak,.sum.(for.mean),.etc....._
1a40 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 2d 48 55 47 45 5f 56 41 4c 3b 0a 20 20 20 20 73 peakAmplitude.=.-HUGE_VAL;.....s
1a60 75 6d 4d 65 61 6e 20 3d 20 30 2e 30 3b 0a 20 20 20 20 66 6f 72 28 75 69 6e 74 36 34 5f 74 20 6e umMean.=.0.0;.....for(uint64_t.n
1a80 75 6d 62 65 72 20 3d 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f umber.=.0;.number.<.numFFTDataPo
1aa0 69 6e 74 73 3b 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 20 20 20 20 20 20 2f 2f 20 66 69 6e 64 20 70 ints;.number++){.......//.find.p
1ac0 65 61 6b 0a 20 20 20 20 20 20 69 66 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b eak.......if(_realFFTDataPoints[
1ae0 6e 75 6d 62 65 72 5d 20 3e 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 29 7b 0a 09 2f 2f 20 43 number].>._peakAmplitude){..//.C
1b00 61 6c 63 75 6c 61 74 65 20 74 68 65 20 66 72 65 71 75 65 6e 63 79 20 72 65 6c 61 74 69 76 65 20 alculate.the.frequency.relative.
1b20 74 6f 20 74 68 65 20 6c 6f 63 61 6c 20 62 77 2c 20 61 64 6a 75 73 74 20 66 6f 72 20 5f 73 74 61 to.the.local.bw,.adjust.for._sta
1b40 72 74 46 72 65 71 75 65 6e 63 79 20 6c 61 74 65 72 0a 20 20 20 20 20 20 20 20 5f 70 65 61 6b 46 rtFrequency.later........._peakF
1b60 72 65 71 75 65 6e 63 79 20 3d 20 28 73 74 61 74 69 63 5f 63 61 73 74 3c 66 6c 6f 61 74 3e 28 6e requency.=.(static_cast<float>(n
1b80 75 6d 62 65 72 29 20 2a 20 66 66 74 5f 62 69 6e 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 20 20 umber).*.fft_bin_size);.........
1ba0 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 _peakAmplitude.=._realFFTDataPoi
1bc0 6e 74 73 5b 6e 75 6d 62 65 72 5d 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 5f 70 65 61 6b 42 69 6e nts[number];.........//._peakBin
1be0 20 3d 20 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2f 20 73 75 6d 20 .=.number;.......}.......//.sum.
1c00 28 66 6f 72 20 6d 65 61 6e 29 0a 20 20 20 20 20 20 73 75 6d 4d 65 61 6e 20 2b 3d 20 5f 72 65 61 (for.mean).......sumMean.+=._rea
1c20 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 5d 3b 0a 20 20 20 20 7d 0a 0a 20 lFFTDataPoints[number];.....}...
1c40 20 20 20 2f 2f 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 73 70 65 63 74 72 61 6c 20 6d 65 61 ...//.calculate.the.spectral.mea
1c60 6e 0a 20 20 20 20 2f 2f 20 2b 32 30 20 62 65 63 61 75 73 65 20 66 6f 72 20 74 68 65 20 63 6f 6d n.....//.+20.because.for.the.com
1c80 70 61 72 69 73 6f 6e 20 62 65 6c 6f 77 20 77 65 20 6f 6e 6c 79 20 77 61 6e 74 20 74 6f 20 74 68 parison.below.we.only.want.to.th
1ca0 72 6f 77 20 6f 75 74 20 62 69 6e 73 0a 20 20 20 20 2f 2f 20 74 68 61 74 20 61 72 65 20 73 69 67 row.out.bins.....//.that.are.sig
1cc0 6e 69 66 69 63 61 6e 74 6c 79 20 68 69 67 68 65 72 20 28 61 6e 64 20 77 6f 75 6c 64 2c 20 74 68 nificantly.higher.(and.would,.th
1ce0 75 73 2c 20 61 66 66 65 63 74 20 74 68 65 20 6d 65 61 6e 20 6d 6f 72 65 29 0a 20 20 20 20 63 6f us,.affect.the.mean.more).....co
1d00 6e 73 74 20 64 6f 75 62 6c 65 20 6d 65 61 6e 41 6d 70 6c 69 74 75 64 65 20 3d 20 28 73 75 6d 4d nst.double.meanAmplitude.=.(sumM
1d20 65 61 6e 20 2f 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 20 2b 20 32 30 2e 30 3b 0a ean./.numFFTDataPoints).+.20.0;.
1d40 0a 20 20 20 20 2f 2f 20 6e 6f 77 20 74 68 72 6f 77 20 6f 75 74 20 61 6e 79 20 62 69 6e 73 20 68 .....//.now.throw.out.any.bins.h
1d60 69 67 68 65 72 20 74 68 61 6e 20 74 68 65 20 6d 65 61 6e 0a 20 20 20 20 73 75 6d 4d 65 61 6e 20 igher.than.the.mean.....sumMean.
1d80 3d 20 30 2e 30 3b 0a 20 20 20 20 75 69 6e 74 36 34 5f 74 20 6e 65 77 4e 75 6d 44 61 74 61 50 6f =.0.0;.....uint64_t.newNumDataPo
1da0 69 6e 74 73 20 3d 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 20 66 6f 72 ints.=.numFFTDataPoints;.....for
1dc0 28 75 69 6e 74 36 34 5f 74 20 6e 75 6d 62 65 72 20 3d 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 6e (uint64_t.number.=.0;.number.<.n
1de0 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 20 20 20 20 umFFTDataPoints;.number++){.....
1e00 20 20 69 66 20 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 5d ..if.(_realFFTDataPoints[number]
1e20 20 3c 3d 20 6d 65 61 6e 41 6d 70 6c 69 74 75 64 65 29 0a 20 20 20 20 20 20 20 20 73 75 6d 4d 65 .<=.meanAmplitude).........sumMe
1e40 61 6e 20 2b 3d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 5d an.+=._realFFTDataPoints[number]
1e60 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6e 65 77 4e 75 6d 44 61 74 61 50 ;.......else.........newNumDataP
1e80 6f 69 6e 74 73 2d 2d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 6e 65 77 4e 75 6d 44 61 oints--;.....}......if.(newNumDa
1ea0 74 61 50 6f 69 6e 74 73 20 3d 3d 20 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e taPoints.==.0).............//.in
1ec0 20 74 68 65 20 6f 64 64 20 63 61 73 65 20 74 68 61 74 20 61 6c 6c 0a 20 20 20 20 20 20 5f 6e 6f .the.odd.case.that.all......._no
1ee0 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 3d 20 6d 65 61 6e 41 6d 70 6c 69 74 75 64 iseFloorAmplitude.=.meanAmplitud
1f00 65 3b 20 2f 2f 20 61 6d 70 6c 69 74 75 64 65 73 20 61 72 65 20 65 71 75 61 6c 21 0a 20 20 20 20 e;.//.amplitudes.are.equal!.....
1f20 65 6c 73 65 0a 20 20 20 20 20 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 else......._noiseFloorAmplitude.
1f40 3d 20 73 75 6d 4d 65 61 6e 20 2f 20 6e 65 77 4e 75 6d 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 =.sumMean./.newNumDataPoints;...
1f60 7d 0a 0a 20 20 69 66 28 6c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 61 74 65 73 46 6c 61 }....if(lastOfMultipleUpdatesFla
1f80 67 29 7b 0a 20 20 20 20 69 6e 74 20 74 61 62 69 6e 64 65 78 20 3d 20 53 70 65 63 74 72 75 6d 54 g){.....int.tabindex.=.SpectrumT
1fa0 79 70 65 54 61 62 2d 3e 63 75 72 72 65 6e 74 49 6e 64 65 78 28 29 3b 0a 20 20 20 20 69 66 28 74 ypeTab->currentIndex();.....if(t
1fc0 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 66 66 74 29 20 7b 0a 20 20 20 20 20 20 5f abindex.==.d_plot_fft).{......._
1fe0 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 frequencyDisplayPlot->PlotNewDat
2000 61 28 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 2c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 a(_averagedValues,.numFFTDataPoi
2020 6e 74 73 2c 20 0a 09 09 09 09 09 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 nts,........_noiseFloorAmplitude
2040 2c 20 5f 70 65 61 6b 46 72 65 71 75 65 6e 63 79 2c 20 0a 09 09 09 09 09 20 5f 70 65 61 6b 41 6d ,._peakFrequency,........_peakAm
2060 70 6c 69 74 75 64 65 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 74 61 62 69 6e 64 65 78 20 plitude);.....}.....if(tabindex.
2080 3d 3d 20 64 5f 70 6c 6f 74 5f 74 69 6d 65 29 20 7b 0a 20 20 20 20 20 20 5f 74 69 6d 65 44 6f 6d ==.d_plot_time).{......._timeDom
20a0 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 72 65 61 6c ainDisplayPlot->PlotNewData(real
20c0 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 69 6d TimeDomainDataPoints,.........im
20e0 61 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 agTimeDomainDataPoints,.........
2100 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 7d 0a numTimeDomainDataPoints);.....}.
2120 20 20 20 20 69 66 28 74 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 ....if(tabindex.==.d_plot_conste
2140 6c 6c 61 74 69 6f 6e 29 20 7b 0a 20 20 20 20 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 llation).{......._constellationD
2160 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 72 65 61 6c 54 69 6d 65 isplayPlot->PlotNewData(realTime
2180 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 20 20 69 6d 61 DomainDataPoints,............ima
21a0 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 gTimeDomainDataPoints,..........
21c0 20 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 ..numTimeDomainDataPoints);.....
21e0 7d 0a 0a 20 20 20 20 2f 2f 20 44 6f 6e 27 74 20 75 70 64 61 74 65 20 74 68 65 20 72 65 70 65 61 }......//.Don't.update.the.repea
2200 74 65 64 20 64 61 74 61 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 0a 20 20 20 20 69 ted.data.for.the.waterfall.....i
2220 66 28 21 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 29 7b 0a 20 20 20 20 20 20 69 66 28 74 61 62 f(!repeatDataFlag){.......if(tab
2240 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 29 20 7b 0a 09 5f 77 index.==.d_plot_waterfall).{.._w
2260 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 aterfallDisplayPlot->PlotNewData
2280 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 46 46 54 44 61 74 61 50 (_realFFTDataPoints,.numFFTDataP
22a0 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 74 69 6d 65 50 65 72 46 46 54 2c 20 64 61 74 61 oints,..........timePerFFT,.data
22c0 54 69 6d 65 73 74 61 6d 70 2c 20 0a 09 09 09 09 09 20 20 20 73 70 65 63 74 72 75 6d 55 70 64 61 Timestamp,..........spectrumUpda
22e0 74 65 45 76 65 6e 74 2d 3e 67 65 74 44 72 6f 70 70 65 64 46 46 54 46 72 61 6d 65 73 28 29 29 3b teEvent->getDroppedFFTFrames());
2300 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 .......}.......if((QGLFormat::ha
2320 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 09 69 sOpenGL()).&&.(_useOpenGL)).{..i
2340 66 28 20 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 3d 20 31 20 26 f(._openGLWaterfall3DFlag.==.1.&
2360 26 20 28 74 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 33 &.(tabindex.==.d_plot_waterfall3
2380 64 29 29 20 7b 0a 09 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 d)).{...._waterfall3DDisplayPlot
23a0 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 ->PlotNewData(_realFFTDataPoints
23c0 2c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 20 20 20 ,.numFFTDataPoints,.............
23e0 20 74 69 6d 65 50 65 72 46 46 54 2c 20 64 61 74 61 54 69 6d 65 73 74 61 6d 70 2c 20 0a 09 09 09 .timePerFFT,.dataTimestamp,.....
2400 09 09 20 20 20 20 20 20 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 .........spectrumUpdateEvent->ge
2420 74 44 72 6f 70 70 65 64 46 46 54 46 72 61 6d 65 73 28 29 29 3b 0a 09 7d 0a 20 20 20 20 20 20 7d tDroppedFFTFrames());..}.......}
2440 0a 20 20 20 20 7d 0a 0a 20 20 20 20 0a 20 20 20 20 2f 2f 20 54 65 6c 6c 20 74 68 65 20 73 79 73 .....}...........//.Tell.the.sys
2460 74 65 6d 20 74 68 65 20 47 55 49 20 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 0a 20 20 20 tem.the.GUI.has.been.updated....
2480 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 20 .if(_systemSpecifiedFlag){......
24a0 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 4c 61 73 74 47 55 49 55 70 64 61 74 65 54 69 6d 65 28 67 ._system->SetLastGUIUpdateTime(g
24c0 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 6d 70 29 3b 0a 20 20 20 20 20 20 5f 73 79 73 74 65 eneratedTimestamp);......._syste
24e0 6d 2d 3e 44 65 63 72 65 6d 65 6e 74 50 65 6e 64 69 6e 67 47 55 49 55 70 64 61 74 65 45 76 65 6e m->DecrementPendingGUIUpdateEven
2500 74 73 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d ts();.....}...}.}..void.Spectrum
2520 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 72 65 73 69 7a 65 45 76 65 6e 74 28 20 51 52 65 73 69 7a DisplayForm::resizeEvent(.QResiz
2540 65 45 76 65 6e 74 20 2a 65 20 29 0a 7b 0a 20 20 51 53 69 7a 65 20 73 3b 0a 20 20 73 2e 73 65 74 eEvent.*e.).{...QSize.s;...s.set
2560 57 69 64 74 68 28 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d Width(FrequencyPlotDisplayFrame-
2580 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e 73 65 74 48 65 69 67 68 74 28 46 72 65 71 75 65 6e >width());...s.setHeight(Frequen
25a0 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 cyPlotDisplayFrame->height());..
25c0 20 65 6d 69 74 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 .emit._frequencyDisplayPlot->res
25e0 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 20 73 2e 73 65 74 57 69 64 74 68 28 54 69 6d 65 44 izeSlot(&s);....s.setWidth(TimeD
2600 6f 6d 61 69 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 omainDisplayFrame->width());...s
2620 2e 73 65 74 48 65 69 67 68 74 28 54 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 46 72 61 6d .setHeight(TimeDomainDisplayFram
2640 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 65 6d 69 74 20 5f 74 69 6d 65 44 6f 6d 61 69 6e e->height());...emit._timeDomain
2660 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 20 DisplayPlot->resizeSlot(&s);....
2680 73 2e 73 65 74 57 69 64 74 68 28 57 61 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 73 70 6c 61 79 46 s.setWidth(WaterfallPlotDisplayF
26a0 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e 73 65 74 48 65 69 67 68 74 28 57 61 rame->width());...s.setHeight(Wa
26c0 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 terfallPlotDisplayFrame->height(
26e0 29 29 3b 0a 20 20 65 6d 69 74 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 ));...emit._waterfallDisplayPlot
2700 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d ->resizeSlot(&s);....if((QGLForm
2720 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 at::hasOpenGL()).&&.(_useOpenGL)
2740 29 20 7b 0a 20 20 20 20 73 2e 73 65 74 57 69 64 74 68 28 57 61 74 65 72 66 61 6c 6c 33 44 50 6c ).{.....s.setWidth(Waterfall3DPl
2760 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 20 20 73 2e otDisplayFrame->width());.....s.
2780 73 65 74 48 65 69 67 68 74 28 57 61 74 65 72 66 61 6c 6c 33 44 50 6c 6f 74 44 69 73 70 6c 61 79 setHeight(Waterfall3DPlotDisplay
27a0 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 20 20 65 6d 69 74 20 5f 77 61 74 65 Frame->height());.....emit._wate
27c0 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 rfall3DDisplayPlot->resizeSlot(&
27e0 73 29 3b 0a 20 20 7d 0a 0a 20 20 73 2e 73 65 74 57 69 64 74 68 28 43 6f 6e 73 74 65 6c 6c 61 74 s);...}....s.setWidth(Constellat
2800 69 6f 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e 73 ionDisplayFrame->width());...s.s
2820 65 74 48 65 69 67 68 74 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 46 72 61 etHeight(ConstellationDisplayFra
2840 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 65 6d 69 74 20 5f 63 6f 6e 73 74 65 6c 6c 61 me->height());...emit._constella
2860 74 69 6f 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b tionDisplayPlot->resizeSlot(&s);
2880 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 63 75 .}..void.SpectrumDisplayForm::cu
28a0 73 74 6f 6d 45 76 65 6e 74 28 20 51 45 76 65 6e 74 20 2a 20 65 29 0a 7b 0a 20 20 69 66 28 65 2d stomEvent(.QEvent.*.e).{...if(e-
28c0 3e 74 79 70 65 28 29 20 3d 3d 20 51 45 76 65 6e 74 3a 3a 55 73 65 72 2b 33 29 7b 0a 20 20 20 20 >type().==.QEvent::User+3){.....
28e0 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 20 20 if(_systemSpecifiedFlag){.......
2900 57 69 6e 64 6f 77 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 78 28 WindowComboBox->setCurrentIndex(
2920 5f 73 79 73 74 65 6d 2d 3e 47 65 74 57 69 6e 64 6f 77 54 79 70 65 28 29 29 3b 0a 20 20 20 20 20 _system->GetWindowType());......
2940 20 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 .FFTSizeComboBox->setCurrentInde
2960 78 28 5f 73 79 73 74 65 6d 2d 3e 47 65 74 46 46 54 53 69 7a 65 49 6e 64 65 78 28 29 29 3b 0a 20 x(_system->GetFFTSizeIndex());..
2980 20 20 20 20 20 2f 2f 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 65 .....//FFTSizeComboBox->setCurre
29a0 6e 74 49 6e 64 65 78 28 31 29 3b 0a 20 20 20 20 20 20 50 6f 77 65 72 4c 69 6e 65 45 64 69 74 5f ntIndex(1);.......PowerLineEdit_
29c0 74 65 78 74 43 68 61 6e 67 65 64 28 50 6f 77 65 72 4c 69 6e 65 45 64 69 74 2d 3e 74 65 78 74 28 textChanged(PowerLineEdit->text(
29e0 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 77 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 ));.....}......waterfallMinimumI
2a00 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d ntensityChangedCB(WaterfallMinim
2a20 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 umIntensityWheel->value());.....
2a40 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 waterfallMaximumIntensityChanged
2a60 43 42 28 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 CB(WaterfallMaximumIntensityWhee
2a80 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 0a 20 20 20 20 2f 2f 20 49 66 20 74 68 65 20 76 69 64 65 l->value());......//.If.the.vide
2aa0 6f 20 63 61 72 64 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 4f 70 65 6e 47 4c 20 74 68 o.card.doesn't.support.OpenGL.th
2ac0 65 6e 20 64 6f 6e 27 74 20 64 69 73 70 6c 61 79 20 74 68 65 20 33 44 20 57 61 74 65 72 66 61 6c en.don't.display.the.3D.Waterfal
2ae0 6c 0a 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 l.....if((QGLFormat::hasOpenGL()
2b00 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 20 20 77 61 74 65 72 ).&&.(_useOpenGL)).{.......water
2b20 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 fall3DMinimumIntensityChangedCB(
2b40 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c Waterfall3DMinimumIntensityWheel
2b60 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 20 20 77 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 ->value());.......waterfall3DMax
2b80 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 57 61 74 65 72 66 61 6c 6c imumIntensityChangedCB(Waterfall
2ba0 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 3DMaximumIntensityWheel->value()
2bc0 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 48 61 72 );..............//.Check.for.Har
2be0 64 77 61 72 65 20 41 63 63 65 6c 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 4f 70 65 6e 47 4c dware.Acceleration.of.the.OpenGL
2c00 0a 20 20 20 20 20 20 69 66 28 21 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c .......if(!_waterfall3DDisplayPl
2c20 6f 74 2d 3e 66 6f 72 6d 61 74 28 29 2e 64 69 72 65 63 74 52 65 6e 64 65 72 69 6e 67 28 29 29 7b ot->format().directRendering()){
2c40 0a 09 2f 2f 20 4f 6e 6c 79 20 61 73 6b 20 74 68 69 73 20 6f 6e 63 65 20 77 68 69 6c 65 20 74 68 ..//.Only.ask.this.once.while.th
2c60 65 20 70 72 6f 67 72 61 6d 20 69 73 20 72 75 6e 6e 69 6e 67 2e 2e 2e 0a 09 69 66 28 5f 6f 70 65 e.program.is.running.....if(_ope
2c80 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 3d 20 2d 31 29 7b 0a 09 20 20 5f 6f nGLWaterfall3DFlag.==.-1){...._o
2ca0 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 30 3b 0a 09 20 20 69 66 28 penGLWaterfall3DFlag.=.0;....if(
2cc0 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 77 61 72 6e 69 6e 67 28 74 68 69 73 2c 20 22 4f 70 65 6e QMessageBox::warning(this,."Open
2ce0 47 4c 20 44 69 72 65 63 74 20 52 65 6e 64 65 72 69 6e 67 20 4e 4f 54 20 53 75 70 70 6f 72 74 65 GL.Direct.Rendering.NOT.Supporte
2d00 64 22 2c 20 22 3c 63 65 6e 74 65 72 3e 54 68 65 20 73 79 73 74 65 6d 27 73 20 76 69 64 65 6f 20 d",."<center>The.system's.video.
2d20 63 61 72 64 20 68 61 72 64 77 61 72 65 20 6f 72 20 63 75 72 72 65 6e 74 20 64 72 69 76 65 72 73 card.hardware.or.current.drivers
2d40 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 64 69 72 65 63 74 20 68 61 72 64 77 61 72 65 20 .do.not.support.direct.hardware.
2d60 72 65 6e 64 65 72 69 6e 67 20 6f 66 20 74 68 65 20 4f 70 65 6e 47 4c 20 6d 6f 64 75 6c 65 73 2e rendering.of.the.OpenGL.modules.
2d80 3c 2f 63 65 6e 74 65 72 3e 3c 62 72 3e 3c 63 65 6e 74 65 72 3e 53 6f 66 74 77 61 72 65 20 72 65 </center><br><center>Software.re
2da0 6e 64 65 72 69 6e 67 20 69 73 20 56 45 52 59 20 70 72 6f 63 65 73 73 6f 72 20 69 6e 74 65 6e 73 ndering.is.VERY.processor.intens
2dc0 69 76 65 2e 3c 2f 63 65 6e 74 65 72 3e 3c 62 72 3e 3c 63 65 6e 74 65 72 3e 44 6f 20 79 6f 75 20 ive.</center><br><center>Do.you.
2de0 77 61 6e 74 20 74 6f 20 75 73 65 20 73 6f 66 74 77 61 72 65 20 72 65 6e 64 65 72 69 6e 67 3f 3c want.to.use.software.rendering?<
2e00 2f 63 65 6e 74 65 72 3e 22 2c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 59 65 73 2c 20 51 4d 65 /center>",.QMessageBox::Yes,.QMe
2e20 73 73 61 67 65 42 6f 78 3a 3a 4e 6f 20 7c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 44 65 66 61 ssageBox::No.|.QMessageBox::Defa
2e40 75 6c 74 20 7c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 45 73 63 61 70 65 29 20 3d 3d 20 51 4d ult.|.QMessageBox::Escape).==.QM
2e60 65 73 73 61 67 65 42 6f 78 3a 3a 59 65 73 29 7b 0a 09 20 20 20 20 5f 6f 70 65 6e 47 4c 57 61 74 essageBox::Yes){......_openGLWat
2e80 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 31 3b 0a 09 20 20 7d 0a 09 7d 0a 20 20 20 20 20 20 erfall3DFlag.=.1;....}..}.......
2ea0 7d 0a 20 20 20 20 20 20 65 6c 73 65 7b 0a 09 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 }.......else{.._openGLWaterfall3
2ec0 44 46 6c 61 67 20 3d 20 31 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 DFlag.=.1;.......}.....}........
2ee0 20 20 69 66 28 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 21 3d 20 31 ..if(_openGLWaterfall3DFlag.!=.1
2f00 29 7b 0a 20 20 20 20 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c 33 44 28 66 61 ){.......ToggleTabWaterfall3D(fa
2f20 6c 73 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 43 6c 65 61 72 20 61 6e 79 20 70 72 lse);.....}......//.Clear.any.pr
2f40 65 76 69 6f 75 73 20 64 69 73 70 6c 61 79 0a 20 20 20 20 52 65 73 65 74 28 29 3b 0a 20 20 7d 0a evious.display.....Reset();...}.
2f60 20 20 65 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 30 35 29 7b 0a 20 ..else.if(e->type().==.10005){..
2f80 20 20 20 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2a 20 73 70 65 63 74 72 75 6d ...SpectrumUpdateEvent*.spectrum
2fa0 55 70 64 61 74 65 45 76 65 6e 74 20 3d 20 28 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 UpdateEvent.=.(SpectrumUpdateEve
2fc0 6e 74 2a 29 65 3b 0a 20 20 20 20 6e 65 77 46 72 65 71 75 65 6e 63 79 44 61 74 61 28 73 70 65 63 nt*)e;.....newFrequencyData(spec
2fe0 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 28 trumUpdateEvent);...}...else.if(
3000 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 30 38 29 7b 0a 20 20 20 20 73 65 74 57 69 6e 64 e->type().==.10008){.....setWind
3020 6f 77 54 69 74 6c 65 28 28 28 53 70 65 63 74 72 75 6d 57 69 6e 64 6f 77 43 61 70 74 69 6f 6e 45 owTitle(((SpectrumWindowCaptionE
3040 76 65 6e 74 2a 29 65 29 2d 3e 67 65 74 4c 61 62 65 6c 28 29 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 vent*)e)->getLabel());...}...els
3060 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 30 39 29 7b 0a 20 20 20 20 52 65 e.if(e->type().==.10009){.....Re
3080 73 65 74 28 29 3b 0a 20 20 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c set();.....if(_systemSpecifiedFl
30a0 61 67 29 7b 0a 20 20 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e 52 65 73 65 74 50 65 6e 64 69 6e 67 ag){......._system->ResetPending
30c0 47 55 49 55 70 64 61 74 65 45 76 65 6e 74 73 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 GUIUpdateEvents();.....}...}...e
30e0 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 31 30 29 7b 0a 20 20 20 20 lse.if(e->type().==.10010){.....
3100 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 20 3d 20 28 28 53 70 65 63 74 72 75 6d 46 72 65 71 _startFrequency.=.((SpectrumFreq
3120 75 65 6e 63 79 52 61 6e 67 65 45 76 65 6e 74 2a 29 65 29 2d 3e 47 65 74 53 74 61 72 74 46 72 65 uencyRangeEvent*)e)->GetStartFre
3140 71 75 65 6e 63 79 28 29 3b 0a 20 20 20 20 5f 73 74 6f 70 46 72 65 71 75 65 6e 63 79 20 3d 20 28 quency();....._stopFrequency.=.(
3160 28 53 70 65 63 74 72 75 6d 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 45 76 65 6e 74 2a 29 65 29 (SpectrumFrequencyRangeEvent*)e)
3180 2d 3e 47 65 74 53 74 6f 70 46 72 65 71 75 65 6e 63 79 28 29 3b 0a 20 20 20 20 5f 63 65 6e 74 65 ->GetStopFrequency();....._cente
31a0 72 46 72 65 71 75 65 6e 63 79 20 20 3d 20 28 28 53 70 65 63 74 72 75 6d 46 72 65 71 75 65 6e 63 rFrequency..=.((SpectrumFrequenc
31c0 79 52 61 6e 67 65 45 76 65 6e 74 2a 29 65 29 2d 3e 47 65 74 43 65 6e 74 65 72 46 72 65 71 75 65 yRangeEvent*)e)->GetCenterFreque
31e0 6e 63 79 28 29 3b 0a 0a 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 42 28 55 ncy();......UseRFFrequenciesCB(U
3200 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 69 73 43 68 65 63 6b seRFFrequenciesCheckBox->isCheck
3220 65 64 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c ed());...}.}..void.SpectrumDispl
3240 61 79 46 6f 72 6d 3a 3a 41 76 67 4c 69 6e 65 45 64 69 74 5f 76 61 6c 75 65 43 68 61 6e 67 65 64 ayForm::AvgLineEdit_valueChanged
3260 28 20 69 6e 74 20 76 61 6c 75 65 20 29 0a 7b 0a 20 20 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e (.int.value.).{...SetAverageCoun
3280 74 28 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c t(value);.}...void.SpectrumDispl
32a0 61 79 46 6f 72 6d 3a 3a 4d 61 78 48 6f 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 ayForm::MaxHoldCheckBox_toggled(
32c0 20 62 6f 6f 6c 20 6e 65 77 53 74 61 74 65 20 29 0a 7b 0a 20 20 4d 61 78 48 6f 6c 64 52 65 73 65 .bool.newState.).{...MaxHoldRese
32e0 74 42 74 6e 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 6e 65 77 53 74 61 74 65 29 3b 0a 20 20 5f 66 tBtn->setEnabled(newState);..._f
3300 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 4d 61 78 46 46 54 56 69 requencyDisplayPlot->SetMaxFFTVi
3320 73 69 62 6c 65 28 6e 65 77 53 74 61 74 65 29 3b 0a 20 20 4d 61 78 48 6f 6c 64 52 65 73 65 74 42 sible(newState);...MaxHoldResetB
3340 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 tn_clicked();.}...void.SpectrumD
3360 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 69 6e 48 6f 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 isplayForm::MinHoldCheckBox_togg
3380 6c 65 64 28 20 62 6f 6f 6c 20 6e 65 77 53 74 61 74 65 20 29 0a 7b 0a 20 20 4d 69 6e 48 6f 6c 64 led(.bool.newState.).{...MinHold
33a0 52 65 73 65 74 42 74 6e 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 6e 65 77 53 74 61 74 65 29 3b 0a ResetBtn->setEnabled(newState);.
33c0 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 4d 69 6e 46 .._frequencyDisplayPlot->SetMinF
33e0 46 54 56 69 73 69 62 6c 65 28 6e 65 77 53 74 61 74 65 29 3b 0a 20 20 4d 69 6e 48 6f 6c 64 52 65 FTVisible(newState);...MinHoldRe
3400 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 setBtn_clicked();.}...void.Spect
3420 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 69 6e 48 6f 6c 64 52 65 73 65 74 42 74 6e 5f rumDisplayForm::MinHoldResetBtn_
3440 63 6c 69 63 6b 65 64 28 29 0a 7b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 clicked().{..._frequencyDisplayP
3460 6c 6f 74 2d 3e 43 6c 65 61 72 4d 69 6e 44 61 74 61 28 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 lot->ClearMinData();..._frequenc
3480 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 70 6c 6f 74 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 yDisplayPlot->replot();.}...void
34a0 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 61 78 48 6f 6c 64 52 65 73 .SpectrumDisplayForm::MaxHoldRes
34c0 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 0a 7b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 etBtn_clicked().{..._frequencyDi
34e0 73 70 6c 61 79 50 6c 6f 74 2d 3e 43 6c 65 61 72 4d 61 78 44 61 74 61 28 29 3b 0a 20 20 5f 66 72 splayPlot->ClearMaxData();..._fr
3500 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 70 6c 6f 74 28 29 3b 0a 7d 0a equencyDisplayPlot->replot();.}.
3520 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 61 62 43 ..void.SpectrumDisplayForm::TabC
3540 68 61 6e 67 65 64 28 69 6e 74 20 69 6e 64 65 78 29 0a 7b 0a 20 20 2f 2f 20 54 68 69 73 20 6d 69 hanged(int.index).{...//.This.mi
3560 67 68 74 20 62 65 20 64 61 6e 67 65 72 6f 75 73 20 74 6f 20 63 61 6c 6c 20 74 68 69 73 20 77 69 ght.be.dangerous.to.call.this.wi
3580 74 68 20 4e 55 4c 4c 0a 20 20 72 65 73 69 7a 65 45 76 65 6e 74 28 4e 55 4c 4c 29 3b 20 20 0a 7d th.NULL...resizeEvent(NULL);...}
35a0 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 50 6f 77 65 ..void.SpectrumDisplayForm::Powe
35c0 72 4c 69 6e 65 45 64 69 74 5f 74 65 78 74 43 68 61 6e 67 65 64 28 20 63 6f 6e 73 74 20 51 53 74 rLineEdit_textChanged(.const.QSt
35e0 72 69 6e 67 20 26 76 61 6c 75 65 53 74 72 69 6e 67 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 74 ring.&valueString.).{...if(_syst
3600 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 69 66 28 21 76 61 6c 75 65 53 emSpecifiedFlag){.....if(!valueS
3620 74 72 69 6e 67 2e 69 73 45 6d 70 74 79 28 29 29 7b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 76 tring.isEmpty()){.......double.v
3640 61 6c 75 65 20 3d 20 76 61 6c 75 65 53 74 72 69 6e 67 2e 74 6f 44 6f 75 62 6c 65 28 29 3b 0a 20 alue.=.valueString.toDouble();..
3660 20 20 20 20 20 69 66 28 76 61 6c 75 65 20 3c 20 31 2e 30 29 7b 0a 09 76 61 6c 75 65 20 3d 20 31 .....if(value.<.1.0){..value.=.1
3680 2e 30 3b 0a 09 50 6f 77 65 72 4c 69 6e 65 45 64 69 74 2d 3e 73 65 74 54 65 78 74 28 22 31 22 29 .0;..PowerLineEdit->setText("1")
36a0 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 50 6f 77 65 ;.......}......._system->SetPowe
36c0 72 56 61 6c 75 65 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 5f 73 79 rValue(value);.....}......if(_sy
36e0 73 74 65 6d 2d 3e 47 65 74 50 6f 77 65 72 56 61 6c 75 65 28 29 20 3e 20 31 29 7b 0a 20 20 20 20 stem->GetPowerValue().>.1){.....
3700 20 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 73 65 74 43 ..UseRFFrequenciesCheckBox->setC
3720 68 65 63 6b 65 64 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 hecked(false);.......UseRFFreque
3740 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 66 61 6c 73 65 29 nciesCheckBox->setEnabled(false)
3760 3b 0a 20 20 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 42 28 66 61 6c 73 65 ;.......UseRFFrequenciesCB(false
3780 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 20 20 55 73 65 52 46 46 72 );.....}.....else{.......UseRFFr
37a0 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 74 72 equenciesCheckBox->setEnabled(tr
37c0 75 65 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 ue);.....}...}.}..void.SpectrumD
37e0 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 63 6f isplayForm::SetFrequencyRange(co
3800 6e 73 74 20 64 6f 75 62 6c 65 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 2c 0a 09 nst.double.newCenterFrequency,..
3820 09 09 09 20 20 20 20 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 6e 65 77 53 74 61 72 74 46 ..........const.double.newStartF
3840 72 65 71 75 65 6e 63 79 2c 20 0a 09 09 09 09 20 20 20 20 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 requency,.............const.doub
3860 6c 65 20 6e 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 le.newStopFrequency).{...double.
3880 66 64 69 66 66 3b 0a 20 20 69 66 28 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 fdiff;...if(UseRFFrequenciesChec
38a0 6b 42 6f 78 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 29 20 7b 0a 20 20 20 20 66 64 69 66 66 20 3d kBox->isChecked()).{.....fdiff.=
38c0 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 .newCenterFrequency;...}...else.
38e0 7b 0a 20 20 20 20 66 64 69 66 66 20 3d 20 73 74 64 3a 3a 6d 61 78 28 66 61 62 73 28 6e 65 77 53 {.....fdiff.=.std::max(fabs(newS
3900 74 61 72 74 46 72 65 71 75 65 6e 63 79 29 2c 20 66 61 62 73 28 6e 65 77 53 74 6f 70 46 72 65 71 tartFrequency),.fabs(newStopFreq
3920 75 65 6e 63 79 29 29 3b 0a 20 20 7d 0a 0a 20 20 69 66 28 66 64 69 66 66 20 3e 20 30 29 20 7b 0a uency));...}....if(fdiff.>.0).{.
3940 20 20 20 20 73 74 64 3a 3a 73 74 72 69 6e 67 20 73 74 72 75 6e 69 74 73 5b 34 5d 20 3d 20 7b 22 ....std::string.strunits[4].=.{"
3960 48 7a 22 2c 20 22 6b 48 7a 22 2c 20 22 4d 48 7a 22 2c 20 22 47 48 7a 22 7d 3b 0a 20 20 20 20 64 Hz",."kHz",."MHz",."GHz"};.....d
3980 6f 75 62 6c 65 20 75 6e 69 74 73 31 30 20 3d 20 66 6c 6f 6f 72 28 6c 6f 67 31 30 28 66 64 69 66 ouble.units10.=.floor(log10(fdif
39a0 66 29 29 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 75 6e 69 74 73 33 20 20 3d 20 73 74 64 3a 3a 6d f));.....double.units3..=.std::m
39c0 61 78 28 66 6c 6f 6f 72 28 75 6e 69 74 73 31 30 20 2f 20 33 2e 30 29 2c 20 30 2e 30 29 3b 0a 20 ax(floor(units10./.3.0),.0.0);..
39e0 20 20 20 64 6f 75 62 6c 65 20 75 6e 69 74 73 20 3d 20 70 6f 77 28 31 30 2c 20 28 75 6e 69 74 73 ...double.units.=.pow(10,.(units
3a00 31 30 2d 66 6d 6f 64 28 75 6e 69 74 73 31 30 2c 20 33 2e 30 29 29 29 3b 0a 20 20 20 20 69 6e 74 10-fmod(units10,.3.0)));.....int
3a20 20 69 75 6e 69 74 20 3d 20 73 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 75 6e 69 74 73 33 .iunit.=.static_cast<int>(units3
3a40 29 3b 0a 20 20 20 20 0a 20 20 20 20 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 20 3d 20 6e 65 );.........._startFrequency.=.ne
3a60 77 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 3b 0a 20 20 20 20 5f 73 74 6f 70 46 72 65 71 75 65 wStartFrequency;....._stopFreque
3a80 6e 63 79 20 3d 20 6e 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 3b 0a 20 20 20 20 5f 63 65 6e ncy.=.newStopFrequency;....._cen
3aa0 74 65 72 46 72 65 71 75 65 6e 63 79 20 3d 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 terFrequency.=.newCenterFrequenc
3ac0 79 3b 0a 0a 20 20 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 y;......_frequencyDisplayPlot->S
3ae0 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 6e 65 77 53 74 61 72 74 46 72 65 71 75 65 6e etFrequencyRange(newStartFrequen
3b00 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 6e 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 2c 0a cy,...........newStopFrequency,.
3b20 09 09 09 09 09 20 20 20 20 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 ..........newCenterFrequency,...
3b40 09 09 09 20 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 ........UseRFFrequenciesCheckBox
3b60 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 75 6e 69 74 73 2c 20 ->isChecked(),...........units,.
3b80 73 74 72 75 6e 69 74 73 5b 69 75 6e 69 74 5d 29 3b 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c strunits[iunit]);....._waterfall
3ba0 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 6e DisplayPlot->SetFrequencyRange(n
3bc0 65 77 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 6e 65 77 53 ewStartFrequency,...........newS
3be0 74 6f 70 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 6e 65 77 43 65 6e 74 65 topFrequency,...........newCente
3c00 72 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 55 73 65 52 46 46 72 65 71 75 rFrequency,...........UseRFFrequ
3c20 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 2c 0a 09 09 09 enciesCheckBox->isChecked(),....
3c40 09 09 20 20 20 20 20 75 6e 69 74 73 2c 20 73 74 72 75 6e 69 74 73 5b 69 75 6e 69 74 5d 29 3b 0a .......units,.strunits[iunit]);.
3c60 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 ....if((QGLFormat::hasOpenGL()).
3c80 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 20 20 5f 77 61 74 65 72 66 &&.(_useOpenGL)).{......._waterf
3ca0 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 all3DDisplayPlot->SetFrequencyRa
3cc0 6e 67 65 28 6e 65 77 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 09 20 6e 65 nge(newStartFrequency,........ne
3ce0 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 09 20 6e 65 77 43 65 6e 74 65 72 wStopFrequency,........newCenter
3d00 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 09 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 Frequency,........UseRFFrequenci
3d20 65 73 43 68 65 63 6b 42 6f 78 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 2c 0a 09 09 09 09 09 09 20 esCheckBox->isChecked(),........
3d40 75 6e 69 74 73 2c 20 73 74 72 75 6e 69 74 73 5b 69 75 6e 69 74 5d 29 3b 0a 20 20 20 20 7d 0a 20 units,.strunits[iunit]);.....}..
3d60 20 7d 0a 7d 0a 0a 69 6e 74 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 47 .}.}..int.SpectrumDisplayForm::G
3d80 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 28 29 0a 7b 0a 20 20 72 65 74 75 72 6e 20 5f 68 69 73 etAverageCount().{...return._his
3da0 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 toryVector->size();.}..void.Spec
3dc0 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 trumDisplayForm::SetAverageCount
3de0 28 63 6f 6e 73 74 20 69 6e 74 20 6e 65 77 43 6f 75 6e 74 29 0a 7b 0a 20 20 69 66 28 6e 65 77 43 (const.int.newCount).{...if(newC
3e00 6f 75 6e 74 20 3e 20 2d 31 29 7b 0a 20 20 20 20 69 66 28 6e 65 77 43 6f 75 6e 74 20 21 3d 20 73 ount.>.-1){.....if(newCount.!=.s
3e20 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e tatic_cast<int>(_historyVector->
3e40 73 69 7a 65 28 29 29 29 7b 0a 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 64 6f 75 62 size())){.......std::vector<doub
3e60 6c 65 2a 3e 3a 3a 69 74 65 72 61 74 6f 72 20 70 6f 73 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 28 le*>::iterator.pos;.......while(
3e80 6e 65 77 43 6f 75 6e 74 20 3c 20 73 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 newCount.<.static_cast<int>(_his
3ea0 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 29 29 7b 0a 09 70 6f 73 20 3d 20 5f 68 69 toryVector->size())){..pos.=._hi
3ec0 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 62 65 67 69 6e 28 29 3b 0a 09 64 65 6c 65 74 65 5b 5d 20 storyVector->begin();..delete[].
3ee0 28 2a 70 6f 73 29 3b 0a 09 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 65 72 61 73 65 28 70 (*pos);.._historyVector->erase(p
3f00 6f 73 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 77 68 69 6c 65 28 6e 65 77 43 6f 75 os);.......}........while(newCou
3f20 6e 74 20 3e 20 73 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 nt.>.static_cast<int>(_historyVe
3f40 63 74 6f 72 2d 3e 73 69 7a 65 28 29 29 29 7b 0a 09 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d ctor->size())){.._historyVector-
3f60 3e 70 75 73 68 5f 62 61 63 6b 28 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 >push_back(new.double[_numRealDa
3f80 74 61 50 6f 69 6e 74 73 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 41 76 65 72 61 67 taPoints]);.......}.......Averag
3fa0 65 44 61 74 61 52 65 73 65 74 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a eDataReset();.....}...}.}..void.
3fc0 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 5f 41 76 65 72 61 67 65 48 69 73 SpectrumDisplayForm::_AverageHis
3fe0 74 6f 72 79 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 2a 20 6e 65 77 42 75 66 66 65 72 29 0a 7b 0a tory(const.double*.newBuffer).{.
4000 20 20 69 66 28 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 3e 20 30 29 7b 0a 20 20 ..if(_numRealDataPoints.>.0){...
4020 20 20 69 66 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 20 3e 20 30 29 ..if(_historyVector->size().>.0)
4040 7b 0a 20 20 20 20 20 20 6d 65 6d 63 70 79 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 6f {.......memcpy(_historyVector->o
4060 70 65 72 61 74 6f 72 5b 5d 28 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 29 2c 20 6e 65 77 42 75 66 perator[](_historyEntry),.newBuf
4080 66 65 72 2c 0a 09 20 20 20 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 2a 73 69 fer,......._numRealDataPoints*si
40a0 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 0a 20 20 20 20 20 20 2f 2f 20 49 6e 63 72 65 6d 65 zeof(double));........//.Increme
40c0 6e 74 20 74 68 65 20 6e 65 78 74 20 6c 6f 63 61 74 69 6f 6e 20 74 6f 20 73 74 6f 72 65 20 64 61 nt.the.next.location.to.store.da
40e0 74 61 0a 20 20 20 20 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 2b 2b 3b 0a 20 ta......._historyEntryCount++;..
4100 20 20 20 20 20 69 66 28 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3e 20 73 74 61 .....if(_historyEntryCount.>.sta
4120 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 tic_cast<int>(_historyVector->si
4140 7a 65 28 29 29 29 7b 0a 09 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3d 20 5f 68 ze())){.._historyEntryCount.=._h
4160 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 istoryVector->size();.......}...
4180 20 20 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 20 3d 20 28 2b 2b 5f 68 69 73 74 6f 72 79 45 ...._historyEntry.=.(++_historyE
41a0 6e 74 72 79 29 25 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 0a 20 ntry)%_historyVector->size();...
41c0 20 20 20 20 20 2f 2f 20 54 6f 74 61 6c 20 75 70 20 61 6e 64 20 74 68 65 6e 20 61 76 65 72 61 67 .....//.Total.up.and.then.averag
41e0 65 20 74 68 65 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 73 75 6d 3b 0a 20 e.the.values.......double.sum;..
4200 20 20 20 20 20 66 6f 72 28 75 69 6e 74 36 34 5f 74 20 6c 6f 63 61 74 69 6f 6e 20 3d 20 30 3b 20 .....for(uint64_t.location.=.0;.
4220 6c 6f 63 61 74 69 6f 6e 20 3c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 3b 20 6c location.<._numRealDataPoints;.l
4240 6f 63 61 74 69 6f 6e 2b 2b 29 7b 0a 09 73 75 6d 20 3d 20 30 3b 0a 09 66 6f 72 28 69 6e 74 20 6e ocation++){..sum.=.0;..for(int.n
4260 75 6d 62 65 72 20 3d 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 umber.=.0;.number.<._historyEntr
4280 79 43 6f 75 6e 74 3b 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 09 20 20 73 75 6d 20 2b 3d 20 5f 68 69 yCount;.number++){....sum.+=._hi
42a0 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 6f 70 65 72 61 74 6f 72 5b 5d 28 6e 75 6d 62 65 72 29 5b storyVector->operator[](number)[
42c0 6c 6f 63 61 74 69 6f 6e 5d 3b 0a 09 7d 0a 20 09 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 5b location];..}..._averagedValues[
42e0 6c 6f 63 61 74 69 6f 6e 5d 20 3d 20 73 75 6d 2f 73 74 61 74 69 63 5f 63 61 73 74 3c 64 6f 75 62 location].=.sum/static_cast<doub
4300 6c 65 3e 28 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 7d le>(_historyEntryCount);.......}
4320 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 20 20 6d 65 6d 63 70 79 28 5f 61 .....}.....else{.......memcpy(_a
4340 76 65 72 61 67 65 64 56 61 6c 75 65 73 2c 20 6e 65 77 42 75 66 66 65 72 2c 20 5f 6e 75 6d 52 65 veragedValues,.newBuffer,._numRe
4360 61 6c 44 61 74 61 50 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 20 20 alDataPoints*sizeof(double));...
4380 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 ..}...}.}..void.SpectrumDisplayF
43a0 6f 72 6d 3a 3a 52 65 73 69 7a 65 42 75 66 66 65 72 73 28 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 orm::ResizeBuffers(.const.uint64
43c0 5f 74 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 0a 09 09 09 09 20 20 20 20 63 6f 6e _t.numFFTDataPoints,.........con
43e0 73 74 20 75 69 6e 74 36 34 5f 74 20 2f 2a 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 st.uint64_t./*numTimeDomainDataP
4400 6f 69 6e 74 73 2a 2f 20 29 0a 7b 0a 20 20 2f 2f 20 43 6f 6e 76 65 72 74 20 66 72 6f 6d 20 43 6f oints*/.).{...//.Convert.from.Co
4420 6d 70 6c 65 78 20 74 6f 20 52 65 61 6c 20 66 6f 72 20 63 65 72 74 61 69 6e 20 44 69 73 70 6c 61 mplex.to.Real.for.certain.Displa
4440 79 73 0a 20 20 69 66 28 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 21 3d 20 6e 75 ys...if(_numRealDataPoints.!=.nu
4460 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 7b 0a 20 20 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 mFFTDataPoints){....._numRealDat
4480 61 50 6f 69 6e 74 73 20 3d 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 20 aPoints.=.numFFTDataPoints;.....
44a0 64 65 6c 65 74 65 5b 5d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 delete[]._realFFTDataPoints;....
44c0 20 64 65 6c 65 74 65 5b 5d 20 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 3b 0a 20 20 20 20 0a .delete[]._averagedValues;......
44e0 20 20 20 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 6e 65 77 20 64 6f 75 ...._realFFTDataPoints.=.new.dou
4500 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 5d 3b 0a 20 20 20 20 5f 61 76 ble[_numRealDataPoints];....._av
4520 65 72 61 67 65 64 56 61 6c 75 65 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 eragedValues.=.new.double[_numRe
4540 61 6c 44 61 74 61 50 6f 69 6e 74 73 5d 3b 0a 20 20 20 20 6d 65 6d 73 65 74 28 5f 72 65 61 6c 46 alDataPoints];.....memset(_realF
4560 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 30 78 30 2c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 FTDataPoints,.0x0,._numRealDataP
4580 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 20 20 20 20 0a 20 20 20 20 oints*sizeof(double));..........
45a0 63 6f 6e 73 74 20 69 6e 74 20 68 69 73 74 6f 72 79 53 69 7a 65 20 3d 20 5f 68 69 73 74 6f 72 79 const.int.historySize.=._history
45c0 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 20 20 20 20 53 65 74 41 76 65 72 61 67 65 43 6f Vector->size();.....SetAverageCo
45e0 75 6e 74 28 30 29 3b 20 2f 2f 20 43 6c 65 61 72 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 68 69 unt(0);.//.Clear.the.existing.hi
4600 73 74 6f 72 79 0a 20 20 20 20 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 28 68 69 73 74 6f 72 story.....SetAverageCount(histor
4620 79 53 69 7a 65 29 3b 0a 20 20 20 20 0a 20 20 20 20 52 65 73 65 74 28 29 3b 0a 20 20 7d 0a 7d 0a ySize);..........Reset();...}.}.
4640 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 52 65 73 65 74 .void.SpectrumDisplayForm::Reset
4660 28 29 0a 7b 0a 20 20 41 76 65 72 61 67 65 44 61 74 61 52 65 73 65 74 28 29 3b 0a 0a 20 20 5f 77 ().{...AverageDataReset();...._w
4680 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 52 65 73 65 74 28 29 3b 0a 20 20 aterfallDisplayPlot->Reset();...
46a0 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 if((QGLFormat::hasOpenGL()).&&.(
46c0 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 _useOpenGL)).{....._waterfall3DD
46e0 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 52 65 73 65 74 28 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 isplayPlot->Reset();...}.}...voi
4700 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 41 76 65 72 61 67 65 44 61 d.SpectrumDisplayForm::AverageDa
4720 74 61 52 65 73 65 74 28 29 0a 7b 0a 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 20 3d 20 30 3b taReset().{..._historyEntry.=.0;
4740 0a 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3d 20 30 3b 0a 0a 20 20 6d 65 ..._historyEntryCount.=.0;....me
4760 6d 73 65 74 28 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 2c 20 30 78 30 2c 20 5f 6e 75 6d 52 mset(_averagedValues,.0x0,._numR
4780 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 0a ealDataPoints*sizeof(double));..
47a0 20 20 4d 61 78 48 6f 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 20 20 4d ..MaxHoldResetBtn_clicked();...M
47c0 69 6e 48 6f 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 6f inHoldResetBtn_clicked();.}...vo
47e0 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 63 6c 6f 73 65 45 76 65 id.SpectrumDisplayForm::closeEve
4800 6e 74 28 20 51 43 6c 6f 73 65 45 76 65 6e 74 20 2a 65 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 nt(.QCloseEvent.*e.).{...if(_sys
4820 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e temSpecifiedFlag){....._system->
4840 53 65 74 57 69 6e 64 6f 77 4f 70 65 6e 46 6c 61 67 28 66 61 6c 73 65 29 3b 0a 20 20 7d 0a 0a 20 SetWindowOpenFlag(false);...}...
4860 20 71 41 70 70 2d 3e 70 72 6f 63 65 73 73 45 76 65 6e 74 73 28 29 3b 0a 0a 20 20 51 57 69 64 67 .qApp->processEvents();....QWidg
4880 65 74 3a 3a 63 6c 6f 73 65 45 76 65 6e 74 28 65 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 et::closeEvent(e);.}...void.Spec
48a0 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 57 69 6e 64 6f 77 54 79 70 65 43 68 61 6e 67 trumDisplayForm::WindowTypeChang
48c0 65 64 28 20 69 6e 74 20 6e 65 77 49 74 65 6d 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 74 65 6d ed(.int.newItem.).{...if(_system
48e0 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 57 SpecifiedFlag){...._system->SetW
4900 69 6e 64 6f 77 54 79 70 65 28 6e 65 77 49 74 65 6d 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 indowType(newItem);...}.}...void
4920 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 55 73 65 52 46 46 72 65 71 75 .SpectrumDisplayForm::UseRFFrequ
4940 65 6e 63 69 65 73 43 42 28 20 62 6f 6f 6c 20 75 73 65 52 46 46 6c 61 67 20 29 0a 7b 0a 20 20 53 enciesCB(.bool.useRFFlag.).{...S
4960 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 5f 63 65 6e 74 65 72 46 72 65 71 75 65 6e 63 etFrequencyRange(_centerFrequenc
4980 79 2c 20 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 2c 20 5f 73 74 6f 70 46 72 65 71 75 65 6e y,._startFrequency,._stopFrequen
49a0 63 79 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 cy);.}...void.SpectrumDisplayFor
49c0 6d 3a 3a 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e m::waterfallMaximumIntensityChan
49e0 67 65 64 43 42 28 20 64 6f 75 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 gedCB(.double.newValue.).{...if(
4a00 6e 65 77 56 61 6c 75 65 20 3e 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e newValue.>.WaterfallMinimumInten
4a20 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 57 61 74 65 72 66 61 sityWheel->value()){.....Waterfa
4a40 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 llMaximumIntensityLabel->setText
4a60 28 51 53 74 72 69 6e 67 28 22 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 (QString("%1.dB").arg(newValue,.
4a80 30 2c 20 27 66 27 2c 20 30 29 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 7b 0a 20 20 20 20 57 61 74 0,.'f',.0));...}...else{.....Wat
4aa0 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 erfallMaximumIntensityWheel->set
4ac0 56 61 6c 75 65 28 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 Value(WaterfallMinimumIntensityW
4ae0 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 7d 0a 0a 20 20 5f 77 61 74 65 72 66 61 6c heel->value());...}...._waterfal
4b00 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 lDisplayPlot->SetIntensityRange(
4b20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e WaterfallMinimumIntensityWheel->
4b40 76 61 6c 75 65 28 29 2c 0a 09 09 09 09 09 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 value(),.........WaterfallMaximu
4b60 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 7d 0a 0a 0a 76 mIntensityWheel->value());.}...v
4b80 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 61 74 65 72 66 61 oid.SpectrumDisplayForm::waterfa
4ba0 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 20 64 6f 75 llMinimumIntensityChangedCB(.dou
4bc0 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 6e 65 77 56 61 6c 75 65 20 3c ble.newValue.).{...if(newValue.<
4be0 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d .WaterfallMaximumIntensityWheel-
4c00 3e 76 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 >value()){.....WaterfallMinimumI
4c20 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 51 53 74 72 69 6e 67 28 22 ntensityLabel->setText(QString("
4c40 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c 20 30 29 %1.dB").arg(newValue,.0,.'f',.0)
4c60 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 );...}...else{.....WaterfallMini
4c80 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 61 74 65 mumIntensityWheel->setValue(Wate
4ca0 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 rfallMaximumIntensityWheel->valu
4cc0 65 28 29 29 3b 0a 20 20 7d 0a 0a 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c e());...}...._waterfallDisplayPl
4ce0 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 61 6c 6c 4d ot->SetIntensityRange(WaterfallM
4d00 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 2c 0a 09 inimumIntensityWheel->value(),..
4d20 09 09 09 09 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 .......WaterfallMaximumIntensity
4d40 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 Wheel->value());.}..void.Spectru
4d60 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d mDisplayForm::waterfall3DMaximum
4d80 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 20 64 6f 75 62 6c 65 20 6e 65 77 56 61 IntensityChangedCB(.double.newVa
4da0 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e lue.).{...if((QGLFormat::hasOpen
4dc0 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 69 66 28 GL()).&&.(_useOpenGL)).{.....if(
4de0 6e 65 77 56 61 6c 75 65 20 3e 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 newValue.>.Waterfall3DMinimumInt
4e00 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 57 61 74 ensityWheel->value()){.......Wat
4e20 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 erfall3DMaximumIntensityLabel->s
4e40 65 74 54 65 78 74 28 51 53 74 72 69 6e 67 28 22 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 etText(QString("%1.dB").arg(newV
4e60 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c 20 30 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 alue,.0,.'f',.0));.....}.....els
4e80 65 7b 0a 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e e{.......Waterfall3DMaximumInten
4ea0 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d sityWheel->setValue(Waterfall3DM
4ec0 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a inimumIntensityWheel->value());.
4ee0 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c ....}.........._waterfall3DDispl
4f00 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 ayPlot->SetIntensityRange(Waterf
4f20 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 all3DMinimumIntensityWheel->valu
4f40 65 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 e(),.............Waterfall3DMaxi
4f60 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 7d mumIntensityWheel->value());...}
4f80 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 .}...void.SpectrumDisplayForm::w
4fa0 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 aterfall3DMinimumIntensityChange
4fc0 64 43 42 28 20 64 6f 75 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 28 51 dCB(.double.newValue.).{...if((Q
4fe0 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f GLFormat::hasOpenGL()).&&.(_useO
5000 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 69 66 28 6e 65 77 56 61 6c 75 65 20 3c 20 57 61 74 65 penGL)).{.....if(newValue.<.Wate
5020 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 rfall3DMaximumIntensityWheel->va
5040 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d lue()){.......Waterfall3DMinimum
5060 49 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 51 53 74 72 69 6e 67 28 IntensityLabel->setText(QString(
5080 22 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c 20 30 "%1.dB").arg(newValue,.0,.'f',.0
50a0 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 20 20 57 61 74 65 72 66 ));.....}.....else{.......Waterf
50c0 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 all3DMinimumIntensityWheel->setV
50e0 61 6c 75 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 alue(Waterfall3DMaximumIntensity
5100 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 Wheel->value());.....}..........
5120 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 _waterfall3DDisplayPlot->SetInte
5140 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 nsityRange(Waterfall3DMinimumInt
5160 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 ensityWheel->value(),...........
5180 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 ..Waterfall3DMaximumIntensityWhe
51a0 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 el->value());...}.}...void.Spect
51c0 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 46 46 54 43 6f 6d 62 6f 42 6f 78 53 65 6c 65 63 rumDisplayForm::FFTComboBoxSelec
51e0 74 65 64 43 42 28 20 63 6f 6e 73 74 20 51 53 74 72 69 6e 67 20 26 66 66 74 53 69 7a 65 53 74 72 tedCB(.const.QString.&fftSizeStr
5200 69 6e 67 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 ing.).{...if(_systemSpecifiedFla
5220 67 29 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 46 46 54 53 69 7a 65 28 66 66 74 53 g){....._system->SetFFTSize(fftS
5240 69 7a 65 53 74 72 69 6e 67 2e 74 6f 4c 6f 6e 67 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 izeString.toLong());...}.}...voi
5260 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 57 61 74 65 72 66 61 6c 6c d.SpectrumDisplayForm::Waterfall
5280 41 75 74 6f 53 63 61 6c 65 42 74 6e 43 42 28 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 6d 69 6e 69 AutoScaleBtnCB().{...double.mini
52a0 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 mumIntensity.=._noiseFloorAmplit
52c0 75 64 65 20 2d 20 35 3b 0a 20 20 69 66 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3c ude.-.5;...if(minimumIntensity.<
52e0 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d .WaterfallMinimumIntensityWheel-
5300 3e 6d 69 6e 56 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 >minValue()){.....minimumIntensi
5320 74 79 20 3d 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 ty.=.WaterfallMinimumIntensityWh
5340 65 65 6c 2d 3e 6d 69 6e 56 61 6c 75 65 28 29 3b 0a 20 20 7d 0a 20 20 57 61 74 65 72 66 61 6c 6c eel->minValue();...}...Waterfall
5360 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 MinimumIntensityWheel->setValue(
5380 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a 20 20 64 6f 75 62 6c 65 20 6d 61 78 69 minimumIntensity);...double.maxi
53a0 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 2b 20 mumIntensity.=._peakAmplitude.+.
53c0 31 30 3b 0a 20 20 69 66 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3e 20 57 61 74 65 10;...if(maximumIntensity.>.Wate
53e0 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 rfallMaximumIntensityWheel->maxV
5400 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 alue()){.....maximumIntensity.=.
5420 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e WaterfallMaximumIntensityWheel->
5440 6d 61 78 56 61 6c 75 65 28 29 3b 0a 20 20 7d 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d maxValue();...}...WaterfallMaxim
5460 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 61 78 69 6d umIntensityWheel->setValue(maxim
5480 75 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a 20 20 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d umIntensity);...waterfallMaximum
54a0 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 IntensityChangedCB(maximumIntens
54c0 69 74 79 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 ity);.}..void.SpectrumDisplayFor
54e0 6d 3a 3a 57 61 74 65 72 66 61 6c 6c 33 44 41 75 74 6f 53 63 61 6c 65 42 74 6e 43 42 28 29 0a 7b m::Waterfall3DAutoScaleBtnCB().{
5500 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 ...if((QGLFormat::hasOpenGL()).&
5520 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e &.(_useOpenGL)).{.....double.min
5540 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 imumIntensity.=._noiseFloorAmpli
5560 74 75 64 65 20 2d 20 35 3b 0a 20 20 20 20 69 66 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 tude.-.5;.....if(minimumIntensit
5580 79 20 3c 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 y.<.Waterfall3DMinimumIntensityW
55a0 68 65 65 6c 2d 3e 6d 69 6e 56 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 6d 69 6e 69 6d 75 6d heel->minValue()){.......minimum
55c0 49 6e 74 65 6e 73 69 74 79 20 3d 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e Intensity.=.Waterfall3DMinimumIn
55e0 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 69 6e 56 61 6c 75 65 28 29 3b 0a 20 20 20 20 7d 0a tensityWheel->minValue();.....}.
5600 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 ....Waterfall3DMinimumIntensityW
5620 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 29 heel->setValue(minimumIntensity)
5640 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 ;.....double.maximumIntensity.=.
5660 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 2b 20 31 30 3b 0a 20 20 20 20 69 66 28 6d 61 78 69 _peakAmplitude.+.10;.....if(maxi
5680 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3e 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 mumIntensity.>.Waterfall3DMaximu
56a0 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 65 28 29 29 7b 0a 20 20 mIntensityWheel->maxValue()){...
56c0 20 20 20 20 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 57 61 74 65 72 66 61 6c 6c ....maximumIntensity.=.Waterfall
56e0 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 3DMaximumIntensityWheel->maxValu
5700 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 e();.....}.....Waterfall3DMaximu
5720 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 61 78 69 6d 75 mIntensityWheel->setValue(maximu
5740 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a 20 20 20 20 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 mIntensity);.....waterfallMaximu
5760 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e mIntensityChangedCB(maximumInten
5780 73 69 74 79 29 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c sity);...}.}..void.SpectrumDispl
57a0 61 79 46 6f 72 6d 3a 3a 57 61 74 65 72 66 61 6c 6c 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 54 ayForm::WaterfallIntensityColorT
57c0 79 70 65 43 68 61 6e 67 65 64 28 20 69 6e 74 20 6e 65 77 54 79 70 65 20 29 0a 7b 0a 20 20 51 43 ypeChanged(.int.newType.).{...QC
57e0 6f 6c 6f 72 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 51 43 6f 6c 6f 72 olor.lowIntensityColor;...QColor
5800 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 69 66 28 6e 65 77 54 79 70 .highIntensityColor;...if(newTyp
5820 65 20 3d 3d 20 57 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 3a 3a 49 4e 54 45 4e e.==.WaterfallDisplayPlot::INTEN
5840 53 49 54 59 5f 43 4f 4c 4f 52 5f 4d 41 50 5f 54 59 50 45 5f 55 53 45 52 5f 44 45 46 49 4e 45 44 SITY_COLOR_MAP_TYPE_USER_DEFINED
5860 29 7b 0a 20 20 20 20 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 4c 6f 77 20 49 6e 74 65 6e 73 69 ){.....//.Select.the.Low.Intensi
5880 74 79 20 43 6f 6c 6f 72 0a 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d ty.Color.....lowIntensityColor.=
58a0 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 44 ._waterfallDisplayPlot->GetUserD
58c0 65 66 69 6e 65 64 4c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 69 efinedLowIntensityColor();.....i
58e0 66 28 21 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 7b f(!lowIntensityColor.isValid()){
5900 0a 20 20 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 3a 3a 62 .......lowIntensityColor.=.Qt::b
5920 6c 61 63 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 69 6e 66 lack;.....}.....QMessageBox::inf
5940 6f 72 6d 61 74 69 6f 6e 28 74 68 69 73 2c 20 22 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 43 6f ormation(this,."Low.Intensity.Co
5960 6c 6f 72 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 20 77 69 6e lor.Selection",."In.the.next.win
5980 64 6f 77 2c 20 73 65 6c 65 63 74 20 74 68 65 20 6c 6f 77 20 69 6e 74 65 6e 73 69 74 79 20 63 6f dow,.select.the.low.intensity.co
59a0 6c 6f 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 2c 20 lor.for.the.waterfall.display",.
59c0 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 .QMessageBox::Ok);.....lowIntens
59e0 69 74 79 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f ityColor.=.QColorDialog::getColo
5a00 72 28 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 r(lowIntensityColor,.this);.....
5a20 0a 20 20 20 20 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 48 69 67 68 20 49 6e 74 65 6e 73 69 74 .....//.Select.the.High.Intensit
5a40 79 20 43 6f 6c 6f 72 0a 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d y.Color.....highIntensityColor.=
5a60 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 44 ._waterfallDisplayPlot->GetUserD
5a80 65 66 69 6e 65 64 48 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 efinedHighIntensityColor();.....
5aa0 69 66 28 21 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 if(!highIntensityColor.isValid()
5ac0 29 7b 0a 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 ){.......highIntensityColor.=.Qt
5ae0 3a 3a 77 68 69 74 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a ::white;.....}.....QMessageBox::
5b00 69 6e 66 6f 72 6d 61 74 69 6f 6e 28 74 68 69 73 2c 20 22 48 69 67 68 20 49 6e 74 65 6e 73 69 74 information(this,."High.Intensit
5b20 79 20 43 6f 6c 6f 72 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 y.Color.Selection",."In.the.next
5b40 20 77 69 6e 64 6f 77 2c 20 73 65 6c 65 63 74 20 74 68 65 20 68 69 67 68 20 69 6e 74 65 6e 73 69 .window,.select.the.high.intensi
5b60 74 79 20 63 6f 6c 6f 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c ty.color.for.the.waterfall.displ
5b80 61 79 22 2c 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 68 69 67 68 ay",..QMessageBox::Ok);.....high
5ba0 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 IntensityColor.=.QColorDialog::g
5bc0 65 74 43 6f 6c 6f 72 28 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 etColor(highIntensityColor,.this
5be0 29 3b 0a 20 20 7d 0a 20 20 0a 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f );...}......_waterfallDisplayPlo
5c00 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 4d 61 70 54 79 70 65 28 6e 65 77 54 t->SetIntensityColorMapType(newT
5c20 79 70 65 2c 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 68 69 67 68 49 6e 74 65 ype,.lowIntensityColor,.highInte
5c40 6e 73 69 74 79 43 6f 6c 6f 72 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 nsityColor);.}..void.SpectrumDis
5c60 70 6c 61 79 46 6f 72 6d 3a 3a 57 61 74 65 72 66 61 6c 6c 33 44 49 6e 74 65 6e 73 69 74 79 43 6f playForm::Waterfall3DIntensityCo
5c80 6c 6f 72 54 79 70 65 43 68 61 6e 67 65 64 28 20 69 6e 74 20 6e 65 77 54 79 70 65 20 29 0a 7b 0a lorTypeChanged(.int.newType.).{.
5ca0 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 ..if((QGLFormat::hasOpenGL()).&&
5cc0 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 51 43 6f 6c 6f 72 20 6c 6f 77 49 .(_useOpenGL)).{.....QColor.lowI
5ce0 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 20 20 51 43 6f 6c 6f 72 20 68 69 67 68 49 6e ntensityColor;.....QColor.highIn
5d00 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 20 20 69 66 28 6e 65 77 54 79 70 65 20 3d 3d 20 tensityColor;.....if(newType.==.
5d20 57 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 3a 3a 49 4e 54 45 4e 53 49 54 Waterfall3DDisplayPlot::INTENSIT
5d40 59 5f 43 4f 4c 4f 52 5f 4d 41 50 5f 54 59 50 45 5f 55 53 45 52 5f 44 45 46 49 4e 45 44 29 7b 0a Y_COLOR_MAP_TYPE_USER_DEFINED){.
5d60 20 20 20 20 20 20 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 4c 6f 77 20 49 6e 74 65 6e 73 69 74 ......//.Select.the.Low.Intensit
5d80 79 20 43 6f 6c 6f 72 0a 20 20 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 y.Color.......lowIntensityColor.
5da0 3d 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 =._waterfallDisplayPlot->GetUser
5dc0 44 65 66 69 6e 65 64 4c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 DefinedLowIntensityColor();.....
5de0 20 20 69 66 28 21 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 ..if(!lowIntensityColor.isValid(
5e00 29 29 7b 0a 09 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 3a 3a 62 6c 61 )){..lowIntensityColor.=.Qt::bla
5e20 63 6b 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 69 ck;.......}.......QMessageBox::i
5e40 6e 66 6f 72 6d 61 74 69 6f 6e 28 74 68 69 73 2c 20 22 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 nformation(this,."Low.Intensity.
5e60 43 6f 6c 6f 72 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 20 77 Color.Selection",."In.the.next.w
5e80 69 6e 64 6f 77 2c 20 73 65 6c 65 63 74 20 74 68 65 20 6c 6f 77 20 69 6e 74 65 6e 73 69 74 79 20 indow,.select.the.low.intensity.
5ea0 63 6f 6c 6f 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 color.for.the.waterfall.display"
5ec0 2c 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 20 20 6c 6f 77 49 6e ,..QMessageBox::Ok);.......lowIn
5ee0 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 tensityColor.=.QColorDialog::get
5f00 43 6f 6c 6f 72 28 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a Color(lowIntensityColor,.this);.
5f20 20 20 20 20 20 20 0a 20 20 20 20 20 20 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 48 69 67 68 20 .............//.Select.the.High.
5f40 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 0a 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 Intensity.Color.......highIntens
5f60 69 74 79 43 6f 6c 6f 72 20 3d 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 ityColor.=._waterfallDisplayPlot
5f80 2d 3e 47 65 74 55 73 65 72 44 65 66 69 6e 65 64 48 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c ->GetUserDefinedHighIntensityCol
5fa0 6f 72 28 29 3b 0a 20 20 20 20 20 20 69 66 28 21 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c or();.......if(!highIntensityCol
5fc0 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 7b 0a 09 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c or.isValid()){..highIntensityCol
5fe0 6f 72 20 3d 20 51 74 3a 3a 77 68 69 74 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 51 4d or.=.Qt::white;.......}.......QM
6000 65 73 73 61 67 65 42 6f 78 3a 3a 69 6e 66 6f 72 6d 61 74 69 6f 6e 28 74 68 69 73 2c 20 22 48 69 essageBox::information(this,."Hi
6020 67 68 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 gh.Intensity.Color.Selection",."
6040 49 6e 20 74 68 65 20 6e 65 78 74 20 77 69 6e 64 6f 77 2c 20 73 65 6c 65 63 74 20 74 68 65 20 68 In.the.next.window,.select.the.h
6060 69 67 68 20 69 6e 74 65 6e 73 69 74 79 20 63 6f 6c 6f 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 igh.intensity.color.for.the.wate
6080 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 2c 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b rfall.display",..QMessageBox::Ok
60a0 29 3b 0a 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 43 );.......highIntensityColor.=.QC
60c0 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f 72 28 68 69 67 68 49 6e 74 65 6e 73 69 olorDialog::getColor(highIntensi
60e0 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 5f 77 61 74 65 72 tyColor,.this);.....}....._water
6100 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 43 fall3DDisplayPlot->SetIntensityC
6120 6f 6c 6f 72 4d 61 70 54 79 70 65 28 6e 65 77 54 79 70 65 2c 20 6c 6f 77 49 6e 74 65 6e 73 69 74 olorMapType(newType,.lowIntensit
6140 79 43 6f 6c 6f 72 2c 0a 09 09 09 09 09 09 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 yColor,.............highIntensit
6160 79 43 6f 6c 6f 72 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 yColor);...}.}...void.SpectrumDi
6180 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 46 72 65 71 75 65 6e 63 79 28 63 6f splayForm::ToggleTabFrequency(co
61a0 6e 73 74 20 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 nst.bool.state).{...if(state.==.
61c0 74 72 75 65 29 20 7b 0a 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 66 66 74 20 3d 3d 20 2d 31 29 true).{.....if(d_plot_fft.==.-1)
61e0 20 7b 0a 20 20 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 .{.......SpectrumTypeTab->addTab
6200 28 46 72 65 71 75 65 6e 63 79 50 61 67 65 2c 20 22 46 72 65 71 75 65 6e 63 79 20 44 69 73 70 6c (FrequencyPage,."Frequency.Displ
6220 61 79 22 29 3b 0a 20 20 20 20 20 20 64 5f 70 6c 6f 74 5f 66 66 74 20 3d 20 53 70 65 63 74 72 75 ay");.......d_plot_fft.=.Spectru
6240 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 mTypeTab->count()-1;.....}...}..
6260 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d .else.{.....SpectrumTypeTab->rem
6280 6f 76 65 54 61 62 28 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 oveTab(SpectrumTypeTab->indexOf(
62a0 46 72 65 71 75 65 6e 63 79 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 66 66 74 20 FrequencyPage));.....d_plot_fft.
62c0 3d 20 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 =.-1;...}.}..void.SpectrumDispla
62e0 79 46 6f 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c 28 63 6f 6e 73 74 20 yForm::ToggleTabWaterfall(const.
6300 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 bool.state).{...if(state.==.true
6320 29 20 7b 0a 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 20 3d 3d 20 2d ).{.....if(d_plot_waterfall.==.-
6340 31 29 20 7b 0a 20 20 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 1).{.......SpectrumTypeTab->addT
6360 61 62 28 57 61 74 65 72 66 61 6c 6c 50 61 67 65 2c 20 22 57 61 74 65 72 66 61 6c 6c 20 44 69 73 ab(WaterfallPage,."Waterfall.Dis
6380 70 6c 61 79 22 29 3b 0a 20 20 20 20 20 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 20 3d play");.......d_plot_waterfall.=
63a0 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 .SpectrumTypeTab->count()-1;....
63c0 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 .}...}...else.{.....SpectrumType
63e0 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e Tab->removeTab(SpectrumTypeTab->
6400 69 6e 64 65 78 4f 66 28 57 61 74 65 72 66 61 6c 6c 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 indexOf(WaterfallPage));.....d_p
6420 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 20 3d 20 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a lot_waterfall.=.-1;...}.}..void.
6440 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 57 61 SpectrumDisplayForm::ToggleTabWa
6460 74 65 72 66 61 6c 6c 33 44 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 terfall3D(const.bool.state).{...
6480 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 20 69 66 28 28 51 47 4c 46 if(state.==.true).{.....if((QGLF
64a0 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e ormat::hasOpenGL()).&&.(_useOpen
64c0 47 4c 29 29 20 7b 0a 20 20 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c GL)).{.......if(d_plot_waterfall
64e0 33 64 20 3d 3d 20 2d 31 29 20 7b 0a 09 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 3d.==.-1).{..SpectrumTypeTab->ad
6500 64 54 61 62 28 57 61 74 65 72 66 61 6c 6c 33 44 50 61 67 65 2c 20 22 33 44 20 57 61 74 65 72 66 dTab(Waterfall3DPage,."3D.Waterf
6520 61 6c 6c 20 44 69 73 70 6c 61 79 22 29 3b 0a 09 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c all.Display");..d_plot_waterfall
6540 33 64 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 3d.=.SpectrumTypeTab->count()-1;
6560 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 .......}.....}...}...else.{.....
6580 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 70 65 63 74 SpectrumTypeTab->removeTab(Spect
65a0 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 57 61 74 65 72 66 61 6c 6c 33 44 50 rumTypeTab->indexOf(Waterfall3DP
65c0 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 33 64 20 3d 20 age));.....d_plot_waterfall3d.=.
65e0 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 -1;...}.}..void.SpectrumDisplayF
6600 6f 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 54 69 6d 65 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 orm::ToggleTabTime(const.bool.st
6620 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 ate).{...if(state.==.true).{....
6640 20 69 66 28 64 5f 70 6c 6f 74 5f 74 69 6d 65 20 3d 3d 20 2d 31 29 20 7b 0a 20 20 20 20 20 20 53 .if(d_plot_time.==.-1).{.......S
6660 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 54 69 6d 65 44 6f 6d 61 69 pectrumTypeTab->addTab(TimeDomai
6680 6e 50 61 67 65 2c 20 22 54 69 6d 65 20 44 6f 6d 61 69 6e 20 44 69 73 70 6c 61 79 22 29 3b 0a 20 nPage,."Time.Domain.Display");..
66a0 20 20 20 20 20 64 5f 70 6c 6f 74 5f 74 69 6d 65 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 .....d_plot_time.=.SpectrumTypeT
66c0 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 ab->count()-1;.....}...}...else.
66e0 7b 0a 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 {.....SpectrumTypeTab->removeTab
6700 28 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 54 69 6d 65 44 6f (SpectrumTypeTab->indexOf(TimeDo
6720 6d 61 69 6e 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 74 69 6d 65 20 3d 20 2d 31 mainPage));.....d_plot_time.=.-1
6740 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 ;...}.}..void.SpectrumDisplayFor
6760 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 28 63 6f 6e 73 74 20 m::ToggleTabConstellation(const.
6780 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 bool.state).{...if(state.==.true
67a0 29 20 7b 0a 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 20 ).{.....if(d_plot_constellation.
67c0 3d 3d 20 2d 31 29 20 7b 0a 20 20 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e ==.-1).{.......SpectrumTypeTab->
67e0 61 64 64 54 61 62 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 50 61 67 65 2c 20 22 43 6f 6e 73 74 addTab(ConstellationPage,."Const
6800 65 6c 6c 61 74 69 6f 6e 20 44 69 73 70 6c 61 79 22 29 3b 0a 20 20 20 20 20 20 64 5f 70 6c 6f 74 ellation.Display");.......d_plot
6820 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 _constellation.=.SpectrumTypeTab
6840 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a ->count()-1;.....}...}...else.{.
6860 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 ....SpectrumTypeTab->removeTab(S
6880 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 43 6f 6e 73 74 65 6c 6c pectrumTypeTab->indexOf(Constell
68a0 61 74 69 6f 6e 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 6c 6c ationPage));.....d_plot_constell
68c0 61 74 69 6f 6e 20 3d 20 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 ation.=.-1;...}.}...void.Spectru
68e0 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 54 69 6d 65 44 6f 6d 61 69 6e 41 78 69 73 28 mDisplayForm::SetTimeDomainAxis(
6900 64 6f 75 62 6c 65 20 6d 69 6e 2c 20 64 6f 75 62 6c 65 20 6d 61 78 29 0a 7b 0a 20 20 5f 74 69 6d double.min,.double.max).{..._tim
6920 65 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 79 61 78 69 73 28 6d 69 eDomainDisplayPlot->set_yaxis(mi
6940 6e 2c 20 6d 61 78 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 n,.max);.}..void.SpectrumDisplay
6960 46 6f 72 6d 3a 3a 53 65 74 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 41 78 69 73 28 64 6f 75 62 6c Form::SetConstellationAxis(doubl
6980 65 20 78 6d 69 6e 2c 20 64 6f 75 62 6c 65 20 78 6d 61 78 2c 0a 09 09 09 09 09 09 64 6f 75 62 6c e.xmin,.double.xmax,.......doubl
69a0 65 20 79 6d 69 6e 2c 20 64 6f 75 62 6c 65 20 79 6d 61 78 29 0a 7b 0a 20 20 5f 63 6f 6e 73 74 65 e.ymin,.double.ymax).{..._conste
69c0 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 61 78 69 73 28 78 6d 69 llationDisplayPlot->set_axis(xmi
69e0 6e 2c 20 78 6d 61 78 2c 20 79 6d 69 6e 2c 20 79 6d 61 78 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 n,.xmax,.ymin,.ymax);.}..void.Sp
6a00 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 43 6f 6e 73 74 65 6c 6c 61 74 ectrumDisplayForm::SetConstellat
6a20 69 6f 6e 50 65 6e 53 69 7a 65 28 69 6e 74 20 73 69 7a 65 29 0a 7b 0a 20 20 5f 63 6f 6e 73 74 65 ionPenSize(int.size).{..._conste
6a40 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 70 65 6e 5f 73 69 7a 65 llationDisplayPlot->set_pen_size
6a60 28 20 73 69 7a 65 20 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 (.size.);.}..void.SpectrumDispla
6a80 79 46 6f 72 6d 3a 3a 53 65 74 46 72 65 71 75 65 6e 63 79 41 78 69 73 28 64 6f 75 62 6c 65 20 6d yForm::SetFrequencyAxis(double.m
6aa0 69 6e 2c 20 64 6f 75 62 6c 65 20 6d 61 78 29 0a 7b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 in,.double.max).{..._frequencyDi
6ac0 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 79 61 78 69 73 28 6d 69 6e 2c 20 6d 61 78 29 3b 0a splayPlot->set_yaxis(min,.max);.
6ae0 7d 0a }.