UltraScan III
us_mwl_data.h
Go to the documentation of this file.
1 #ifndef US_MWL_DATA_H
2 #define US_MWL_DATA_H
3 
4 #include <QtCore>
5 #include <QtGui>
6 
7 #include "us_extern.h"
8 #include "us_dataIO.h"
9 #include "us_simparms.h"
10 
11 #ifndef SP_SPEEDPROFILE
12 #define SP_SPEEDPROFILE US_SimulationParameters::SpeedProfile
13 #endif
14 
15 #ifndef DbgLv
16 #define DbgLv(a) if(dbg_level>=a)qDebug()
17 #endif
18 
21 class US_GUI_EXTERN US_MwlData : public QObject
22 {
23  Q_OBJECT
24 
25  public:
26  US_MwlData( );
27 
30  class DataHdr
31  {
32  public:
33  double temperature;
34  double omega2t;
35  double radius_start;
36  double radius_step;
37  int icell;
38  int ichan;
39  int iscan;
40  int set_speed;
42  int elaps_time;
43  int npoint;
44  int nlambda;
45  QChar cell;
46  QChar channel;
47  };
48 
53  bool import_data ( QString&, QLineEdit* );
54 
57  void load_mwl ( QVector< US_DataIO::RawData >& );
58 
64  int rvalues ( int&, int&, QVector< double >& );
65 
70  int lambdas ( QVector< int >&, int = -1 );
71 
75  int lambdas_raw ( QVector< int >& );
76 
82  int set_lambdas ( int = 0, int = 0, int = -1 );
83 
88  int set_lambdas ( QVector< int >&, int = -1 );
89 
93  int indexOfLambda ( int );
94 
98  int cellchannels ( QStringList& );
99 
103  int build_rawData ( QVector< US_DataIO::RawData >& );
104 
108  int countOf ( QString );
109 
113  QString cc_description( QString );
114 
118  void run_values ( QString&, QString& );
119 
121  void clear ( void );
122 
126  int set_celchnx ( int = 0 );
127 
132  int data_index ( int = 0, int = -1 );
133 
138  int data_index ( QString, int = -1 );
139 
144  int data_index ( QString, QString );
145 
149  int update_speedsteps( QVector< SP_SPEEDPROFILE >& );
150 
154  int raw_speeds( QVector< double >& );
155 
156  private:
157  QVector< QVector< double > > ri_readings;
158  QVector< int > ri_wavelns;
159  QVector< QVector< int > > ex_wavelns;
160 
161  QVector< double > r_rpms;
162  QVector< double > s_rpms;
163  QVector< double > a_rpms;
164  QVector< double > d_rpms;
165 
166  QList< DataHdr > headers;
167 
168  QStringList fpaths;
169  QStringList fnames;
170  QStringList cells;
171  QStringList cellchans;
172 
173  QStringList ccdescs;
174  QStringList triples;
175  QStringList trnodes;
176 
177  QLineEdit* le_status;
178 
179  QMap< QString, int > counts;
180 
181  int nfile;
182  int nscan;
183  int ncell;
184  int nchan;
185  int ncelchn;
186  int nlambda;
187  int nlamb_i;
188  int ntriple;
189  int ntrip_i;
190  int npoint;
191  int npointt;
192  int curccx;
193  int slambda;
194  int elambda;
195  int dbg_level;
196 
197  bool is_absorb;
198 
199  double evers;
200 
201  QString cur_dir;
202  QString runID;
203  QString runType;
204 
205  private slots:
206 
207  int hword ( char* );
208  int iword ( char* );
209  float fword ( char* );
210  double dword ( char* );
211  void read_header ( QDataStream&, DataHdr& );
212  void read_lambdas( QDataStream&, QVector< int >&, int& );
213  void read_rdata ( QDataStream&, QVector< double >&, int&, int& );
214  void read_runxml ( QDir, QString );
215  void mapCounts ( void );
216 
217 };
218 #endif