UltraScan III
us_buoyancy.h
Go to the documentation of this file.
1 #ifndef US_BUOYANCY_H
2 #define US_BUOYANCY_H
3 
4 #include <QtGui>
5 
6 #include "qwt_plot_marker.h"
7 
8 #include "us_extern.h"
9 #include "us_widgets.h"
10 #include "us_help.h"
11 #include "us_plot.h"
12 #include "us_dataIO.h"
13 #include "us_simparms.h"
14 #include "us_editor.h"
15 
16 struct DataPoint
17 {
21 };
22 
23 
24 class US_Buoyancy : public US_Widgets
25 {
26  Q_OBJECT
27 
28  public:
29  US_Buoyancy();
30 
31  private:
32 
33 
35  QList < US_DataIO::SpeedData > sData;
36  QVector < US_DataIO::RawData > allData;
37  QVector < double > meniscus;
38  QVector < DataPoint > dpoint;
39 
40 
41  QRadioButton* rb_meniscus;
42  QRadioButton* rb_datapoint;
44 
48  int dbg_level;
49 
51 
52  double bottom;
53  double bottom_calc;
54  double current_rpm;
56  double current_point; // contains x coordinate picked by the user
57 
58  QList< int > sd_offs; // speed data offsets, ea. triple
59  QList< int > sd_knts; // speed data counts, ea. triple
60 
63 
64  QVector <US_SimulationParameters> simparams;
65 
66  QString workingDir;
67  QString runID;
68  QString editID;
69  QString dataType;
70  QString expType;
71  QStringList files;
72  QStringList triples;
73  QStringList trip_rpms;
74 
75  QPushButton* pb_details;
76 
77  QwtPlot* data_plot;
78  QwtPlotCurve* v_line;
79  QwtPlotCurve* minimum_curve;
80  QwtPlotGrid* grid;
81  QwtPlotMarker* marker;
84 
85  QLabel* lbl_rpms;
86  QLabel* lbl_stretch;
87  QLabel* lbl_dens_0;
88  QLabel* lbl_bottom;
89  QLabel* lbl_bottom_calc;
90  QLabel* lbl_vbar;
91  QLabel* lbl_MW;
92  QLabel* lbl_meniscus;
93  QLabel* lbl_temperature;
94  QLabel* lbl_peakVbar;
96  QLabel* lbl_peakDensity;
97  QLabel* lbl_peakName;
99 
100  QLineEdit* le_info;
101  QLineEdit* le_stretch;
102  QLineEdit* le_investigator;
103  QLineEdit* le_dens_0;
104  QLineEdit* le_bottom;
105  QLineEdit* le_bottom_calc;
106  QLineEdit* le_vbar;
107  QLineEdit* le_MW;
108  QLineEdit* le_meniscus;
109  QLineEdit* le_temperature;
110  QLineEdit* le_peakVbar;
111  QLineEdit* le_peakPosition;
112  QLineEdit* le_peakDensity;
113  QLineEdit* le_peakName;
114  QLineEdit* le_buffer_density;
115 
117 
118  QComboBox* cb_triple;
119  QComboBox* cb_rpms;
120 
121  QPushButton* pb_write;
122  QPushButton* pb_save;
123 
124  QwtCounter* ct_selectScan;
125 
126 private slots:
127  double calc_stretch ( void );
128  void draw_vline ( double );
129  void mouse ( const QwtDoublePoint& );
130  void sel_investigator ( void );
131  void update_disk_db ( bool );
132  void load ( void );
133  void details ( void );
134  void new_triple ( int );
135  void plot_scan ( double );
136  void write ( void );
137  void save ( void );
138  void reset ( void );
139  void calc_points ( void );
140  void new_rpmval ( int );
141  void update_fields ( void );
142  void update_speedData ( void );
143  void update_dens_0 ( void );
144  void update_bufferDensity ( void );
145  void update_bottom ( void );
146  void update_bottom_calc ( void );
147  void update_vbar ( void );
148  void update_MW ( void );
149  void update_peakName ( void );
150  void update_meniscus ( void );
151  void help ( void )
152  { showHelp.show_help( "manual/us_buoyancy.html" ); };
153 };
154 #endif