Statistics
| Branch: | Tag: | Revision:

root / gr-qtgui / src / lib / SpectrumGUIClass.h @ 6606af99

History | View | Annotate | Download (2.8 kB)

1
#ifndef SPECTRUM_GUI_CLASS_HPP
2
#define SPECTRUM_GUI_CLASS_HPP
3
4
//#include <mutexClass.hpp>
5
#include <qwidget.h>
6
#include <qapplication.h>
7
#include <qlabel.h>
8
#include <qslider.h>
9
#include <spectrumUpdateEvents.h>
10
11
//#include <Windowing.hpp>
12
13
class SpectrumDisplayForm;
14
#include <spectrumdisplayform.h>
15
16
#include <cmath>
17
18
#include <complex>
19
#include <vector>
20
#include <string>
21
22
class SpectrumGUIClass
23
{
24
public:
25
  SpectrumGUIClass(const uint64_t maxDataSize, const uint64_t fftSize,
26
                   const double newCenterFrequency,
27
                   const double newStartFrequency, 
28
                   const double newStopFrequency);
29
  ~SpectrumGUIClass();
30
  void Reset();
31
32
  void OpenSpectrumWindow(QWidget*,
33
                          const bool frequency=true, const bool waterfall=true,
34
                          const bool waterfall3d=true, const bool time=true,
35
                          const bool constellation=true,
36
                          const bool use_openGL=true);
37
  void SetDisplayTitle(const std::string);
38
39
  bool GetWindowOpenFlag();
40
  void SetWindowOpenFlag(const bool);
41
42
  void SetFrequencyRange(const double, const double, const double);
43
  double GetStartFrequency()const;
44
  double GetStopFrequency()const;
45
  double GetCenterFrequency()const;
46
47
  void UpdateWindow(const bool, const std::complex<float>*,
48
                    const uint64_t, const float*,
49
                    const uint64_t, const float*,
50
                    const uint64_t,
51
                    const timespec, const bool);
52
53
  float GetPowerValue()const;
54
  void SetPowerValue(const float);
55
56
  int GetWindowType()const;
57
  void SetWindowType(const int);
58
59
  int GetFFTSize()const;
60
  int GetFFTSizeIndex()const;
61
  void SetFFTSize(const int);
62
63
  timespec GetLastGUIUpdateTime()const;
64
  void SetLastGUIUpdateTime(const timespec);
65
66
  unsigned int GetPendingGUIUpdateEvents()const;
67
  void IncrementPendingGUIUpdateEvents();
68
  void DecrementPendingGUIUpdateEvents();
69
  void ResetPendingGUIUpdateEvents();
70
71
  static const long MAX_FFT_SIZE = /*1048576*/32768;
72
  static const long MIN_FFT_SIZE = 1024;
73
74
  QWidget* qwidget();
75
76
  void SetTimeDomainAxis(double min, double max);
77
  void SetConstellationAxis(double xmin, double xmax,
78
                            double ymin, double ymax);
79
  void SetConstellationPenSize(int size);
80
  void SetFrequencyAxis(double min, double max);
81
82
  void SetUpdateTime(double t);
83
84
protected:
85
86
private:
87
88
  //MutexClass* _windowStateLock;
89
  int64_t _dataPoints;
90
  std::string _title;
91
  double _centerFrequency;
92
  double _startFrequency;
93
  double _stopFrequency;
94
  float _powerValue;
95
  bool _windowOpennedFlag;
96
  int _windowType;
97
  int64_t _lastDataPointCount;
98
  int _fftSize;
99
  timespec _lastGUIUpdateTime;
100
  unsigned int _pendingGUIUpdateEventsCount;
101
  int _droppedEntriesCount;
102
  bool _fftBuffersCreatedFlag;
103
  double _updateTime;
104
105
  SpectrumDisplayForm* _spectrumDisplayForm;
106
107
  std::complex<float>* _fftPoints;
108
  double* _realTimeDomainPoints;
109
  double* _imagTimeDomainPoints;
110
};
111
112
#endif /* SPECTRUM_GUI_CLASS_HPP */