Ksetiwatch API Documentation


seticontainer.h

Go to the documentation of this file.
00001 /***************************************************************************/
00020 #ifndef SETICONTAINER_H
00021 #define SETICONTAINER_H
00022 
00023 #include <qobject.h>
00024 
00025 #include "setidefs.h"
00026 
00117 class SetiContainer : public QObject
00118 {
00119 Q_OBJECT
00120 
00121 public:
00129   SetiContainer(const QString& dir, int refresh=30);
00131   ~SetiContainer();
00136   void setRefreshInterval(int refresh);
00138   QString directory() const {return setiDirectory;}
00140   void setDirectory(const QString& d);
00142   int refreshInterval() {return(refreshIval/1000);}
00146   int fftNumber() {return(stfData.ncfft);}
00150   int fftLength() {return(stfData.fl);}
00152   double chirpRate() {return(stfData.cr);}
00154   double cpuTime() {return(stfData.cpu);}
00159   int outfileSize() {return(stfData.outfilepos);}
00161   int potFrequency() {return(stfData.potfreq);}
00163   int potActivity() {return(stfData.potactivity);}
00165   double progress() {return(100.0*(stfData.prog < 0.0 ? 0.0 : stfData.prog));}
00169   double progressRate();
00173   double remainingTime();
00177   QString remainingTimeAsString();
00182   WUScore wuScore() {return(stfData.max);}
00187   SpikeScore spikeScore() {return(stfData.max.spike);}
00192   GaussianScore gaussianScore() {return(stfData.max.gaussian);}
00197   PulseScore pulseScore() {return(stfData.max.pulse);}
00202   TripletScore tripletScore() {return(stfData.max.triplet);}
00204   int userID() {return(uifData.id);}
00206   int key() {return(uifData.key);}
00208   QString userEmailAddress() {return(uifData.email_addr);}
00210   QString userName() {return(uifData.name);}
00212   QString userHomepage() {return(uifData.url);}
00214   QString userCountry() {return(uifData.country);}
00216   int userPostalCode() {return(uifData.postal_code);}
00220   bool showName() {return(uifData.show_name);}
00224   bool showEmail() {return(uifData.show_email);}
00226   int venue() {return(uifData.venue);}
00230   QString registerTime() {return(uifData.register_time);}
00235   QString registerTimeString();
00240   QString lastWUTime() {return(uifData.last_wu_time);}
00245   QString lastResultTime() {return(uifData.last_result_time);}
00250   QString lastResultTimeString();
00254   int numberOfWUs() {return(uifData.nwus);}
00258   int numberOfResults() {return(uifData.nresults);}
00261   double totalCPUTime() {return(uifData.total_cpu);}
00265   double averageCPUTime();
00267   double paramsIndex() {return(uifData.params_index);}
00271   QString task() {return(wufData.task);}
00275   int wuVersion() {return(wufData.version);}
00277   QString wuName() {return(wufData.name);}
00279   QString wuDataType() {return(wufData.data_type);}
00281   int wuDataClass() {return(wufData.data_class);}
00283   QString splitterVersion() {return(wufData.splitter_version);}
00287   double startRA() {return(wufData.start_ra);}
00291   double startDec() {return(wufData.start_dec);}
00295   double endRA() {return(wufData.end_ra);}
00299   double endDec() {return(wufData.end_dec);}
00303   double angleRange() {return(wufData.angle_range);}
00315   double teraFlops(double ar, int version=0);
00317   double megaFlopsPerSecond();
00321   QString timeRecorded() {return(wufData.time_recorded);}
00326   QString timeRecordedString();
00328   double centerFrequency() {return(wufData.subband_center/1.0e9);}
00330   double baseFrequency() {return(wufData.subband_base/1.0e9);}
00332   double sampleRate() {return(wufData.subband_sample_rate);}
00334   int wuFFTLength() {return(wufData.fft_len);};
00336   int wuIFFTLength() {return(wufData.ifft_len);}
00338   int subbandNumber() {return(wufData.subband_number);}
00342   QString receiver() {return(wufData.receiver);}
00344   int numberOfSamples() {return(wufData.nsamples);}
00346   QString tapeVersion() {return(wufData.tape_version);}
00350   int numberOfCoords() {return(wufData.num_positions);}
00355   QStringList coords() {return(wufData.coordinates);}
00361   int clientVersion() {return(sahVersion);}
00368   bool exists(int sah);
00380   bool isClientRunning(bool checkCmdLine = false);
00382   int clientState() const {return cltState;}
00385   void setClientState(int st) {cltState = st;}
00395   QString readEntry(int sah, const QString& e);
00400   static void initWUScore(WUScore* score);
00408   static QString convertTime(double time, bool hms);
00416   static QString convertRAToString(double ra);
00424   static QString convertDecToString(double dec);
00428   enum SetiStatus {Stopped, Running, Finished, Loading, Connecting};
00432   enum sahID {SC_StateFile, SC_UserInfoFile,
00433               SC_WorkUnitFile, SC_ResultFile,
00434               SC_ResultHeaderFile, SC_WtempFile};
00435 
00436 public slots:
00444   int updateSahData(bool sig=true);
00445 
00446 protected:
00447   int      refreshIval;
00448   int      sahVersion;
00449   bool     versionRead;
00450   QString  setiDirectory;
00451   QString  stfFileName;
00452   QString  wufFileName;
00453   QString  uifFileName;
00454   QString  rsfFileName;
00455   QString  rhdFileName;
00456   QString  wtpFileName;
00457   QStringList stateFile;
00458   QStringList workunitFile;
00459   QStringList userinfoFile;
00460   QString  stfTimeStamp;
00461   QString  wufTimeStamp;
00462   QString  uifTimeStamp;
00463   QString  pidTimeStamp;
00464   StateFileData stfData;
00465   UserInfoData  uifData;
00466   WorkUnitData  wufData;
00467   int cltState;
00468   int cltPid;
00469   bool localClt;
00470 
00471 protected: // Protected methods
00479   int readStateFile(bool sig=true);
00487   int readWorkUnitFile(bool sig=true);
00495   int readUserInfoFile(bool sig=true);
00506   int readSahFile(const QString& file, QStringList& list,
00507                   const QString& endId=0);
00517   QString readEntry(const QString& fn, const QString& e);
00526   static QString readEntry(QStringList& list, const QString& e);
00528   void initStateFileData();
00530   void initWorkUnitData();
00532   void initUserInfoData();
00539   void scanStateFile(bool sig=true);
00545   void scanSpikeData(bool sig=true);
00551   void scanGaussianData(bool sig=true);
00557   void scanPulseData(bool sig=true);
00563   void scanTripletData(bool sig=true);
00565   void scanGaussianGraphData();
00567   bool scanPulseGraphData();
00569   bool scanTripletGraphData();
00576   void scanUserInfoData(bool sig=true);
00583   void scanWorkUnitData(bool sig=true);
00589   int readClientVersion();
00596   void initAllData(bool sig=false);
00601   virtual void timerEvent(QTimerEvent* e);
00607   int checkClientState();
00612   int getClientPid();
00621   int checkClientStatePassive();
00630   static int readDataString(unsigned short int data[], QString& str, int cnt);
00632   void checkFileExistence();
00633 
00634 private:
00635   int    refTimer;
00636   int    sttTimer1;
00637   int    sttTimer2;
00638   double oldProgress;
00639   bool   fastCheck;
00640 
00641 signals: // Signals
00645   void progressIncreased();
00652   void progressDecreased();
00658   void newSpike(SpikeScore sps);
00664   void newGaussian(GaussianScore gas);
00670   void newPulse(PulseScore pus);
00676   void newTriplet(TripletScore trs);
00680   void newWorkUnit(WorkUnitData wud);
00685   void updatedWorkUnitData();
00690   void updatedUserInfoData();
00698   void stateChanged(int state, int loadsize=0);
00699 };
00700 
00701 #endif
KDE Logo
This file is part of the documentation for Ksetiwatch API Version 2.6.1.
Documentation copyright © 2000-2003 Gordon Machel.
Generated on Fri Jun 6 00:28:15 2003 by doxygen 1.2.18, written by Dimitri van Heesch, © 1997-2002