Index: trunk/BNC/src/rinex/reqcanalyze.cpp
===================================================================
--- trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 4571)
+++ trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 4572)
@@ -68,16 +68,24 @@
   _currEpo = 0;
 
-  connect(this, SIGNAL(displayGraph(const QString&, 
+  connect(this, SIGNAL(dspSkyPlot(const QString&, 
+                                  const QByteArray&,
+                                  QVector<t_polarPoint*>*, 
+                                  const QByteArray&,
+                                  QVector<t_polarPoint*>*,
+                                  const QByteArray&, double)), 
+          this, SLOT(slotDspSkyPlot(const QString&, 
                                     const QByteArray&,
                                     QVector<t_polarPoint*>*, 
                                     const QByteArray&,
                                     QVector<t_polarPoint*>*,
-                                    const QByteArray&, double)), 
-          this, SLOT(slotDisplayGraph(const QString&, 
+                                    const QByteArray&, double)));
+
+  connect(this, SIGNAL(dspAvailPlot(const QString&, 
+                                    const QByteArray&,
+                                    QMap<QString, QVector<int> >*)),
+          this, SLOT(slotDspAvailPlot(const QString&, 
                                       const QByteArray&,
-                                      QVector<t_polarPoint*>*, 
-                                      const QByteArray&,
-                                      QVector<t_polarPoint*>*,
-                                      const QByteArray&, double)));
+                                      QMap<QString, QVector<int> >*)));
+
 }
 
@@ -101,11 +109,11 @@
 //  
 ////////////////////////////////////////////////////////////////////////////
-void t_reqcAnalyze::slotDisplayGraph(const QString& fileName, 
-                                     const QByteArray& title1,
-                                     QVector<t_polarPoint*>* data1, 
-                                     const QByteArray& title2,
-                                     QVector<t_polarPoint*>* data2,
-                                     const QByteArray& scaleTitle,
-                                     double maxValue) {
+void t_reqcAnalyze::slotDspSkyPlot(const QString& fileName, 
+                                   const QByteArray& title1,
+                                   QVector<t_polarPoint*>* data1, 
+                                   const QByteArray& title2,
+                                   QVector<t_polarPoint*>* data2,
+                                   const QByteArray& scaleTitle,
+                                   double maxValue) {
 
   bncApp* app = dynamic_cast<bncApp*>(qApp);
@@ -247,8 +255,10 @@
   // Analyze the Multipath
   // ---------------------
-  QVector<t_polarPoint*>* dataMP1  = new QVector<t_polarPoint*>;
-  QVector<t_polarPoint*>* dataMP2  = new QVector<t_polarPoint*>;
-  QVector<t_polarPoint*>* dataSNR1 = new QVector<t_polarPoint*>;
-  QVector<t_polarPoint*>* dataSNR2 = new QVector<t_polarPoint*>;
+  QVector<t_polarPoint*>*       dataMP1  = new QVector<t_polarPoint*>;
+  QVector<t_polarPoint*>*       dataMP2  = new QVector<t_polarPoint*>;
+  QVector<t_polarPoint*>*       dataSNR1 = new QVector<t_polarPoint*>;
+  QVector<t_polarPoint*>*       dataSNR2 = new QVector<t_polarPoint*>;
+  QMap<QString, QVector<int> >* availL1  = new QMap<QString, QVector<int> >;
+
 
   QMapIterator<QString, t_satStat> it(_satStat);
@@ -257,12 +267,16 @@
     QString          prn     = it.key();
     const t_satStat& satStat = it.value();
-    analyzeMultipathAndSNR(prn, satStat, xyz, obsFile->interval(), 
-                           dataMP1, dataMP2, dataSNR1, dataSNR2);
-  }
-
-  emit displayGraph(obsFile->fileName(), "MP1", dataMP1, "MP2", dataMP2, 
-                    "Meters", 2.0);
-  emit displayGraph(obsFile->fileName(), "SNR1", dataSNR1, "SNR2", dataSNR2, 
-                    "", 9.0);
+    QVector<int>&    dataL1  = (*availL1)[prn];
+    preparePlotData(prn, satStat, xyz, obsFile->interval(), 
+                    dataMP1, dataMP2, dataSNR1, dataSNR2, dataL1);
+  }
+
+  emit dspSkyPlot(obsFile->fileName(), "MP1", dataMP1, "MP2", dataMP2, 
+                  "Meters", 2.0);
+
+  emit dspSkyPlot(obsFile->fileName(), "SNR1", dataSNR1, "SNR2", dataSNR2, 
+                  "", 9.0);
+
+  emit dspAvailPlot(obsFile->fileName(), "Availability L1", availL1);
 
   if (_log) {
@@ -356,12 +370,13 @@
 //  
 ////////////////////////////////////////////////////////////////////////////
-void t_reqcAnalyze::analyzeMultipathAndSNR(const QString& prn, 
-                                           const t_satStat& satStat,
-                                           const ColumnVector& xyz,
-                                           double obsInterval,
-                                           QVector<t_polarPoint*>* dataMP1, 
-                                           QVector<t_polarPoint*>* dataMP2,
-                                           QVector<t_polarPoint*>* dataSNR1, 
-                                           QVector<t_polarPoint*>* dataSNR2) {
+void t_reqcAnalyze::preparePlotData(const QString& prn, 
+                                    const t_satStat& satStat,
+                                    const ColumnVector& xyz,
+                                    double obsInterval,
+                                    QVector<t_polarPoint*>* dataMP1, 
+                                    QVector<t_polarPoint*>* dataMP2,
+                                    QVector<t_polarPoint*>* dataSNR1, 
+                                    QVector<t_polarPoint*>* dataSNR2,
+                                    QVector<int>&           dataL1) {
 
   const int chunkStep = int( 30.0 / obsInterval); // chunk step (30 sec)  
@@ -370,4 +385,6 @@
   for (int chunkStart = 0; chunkStart + numEpo < satStat.anaObs.size();
        chunkStart += chunkStep) {
+
+    bncTime firstEpoch;
 
     // Compute Mean
@@ -379,8 +396,12 @@
     double SNR2     = 0.0;
 
-
     for (int ii = 0; ii < numEpo; ii++) {
       int iEpo = chunkStart + ii;
       const t_anaObs* anaObs = satStat.anaObs[iEpo];
+
+      if (ii == 0) {
+        firstEpoch.set(anaObs->_GPSWeek, anaObs->_GPSWeeks);
+      }
+
       mean1 += anaObs->_MP1;
       mean2 += anaObs->_MP2;
@@ -462,4 +483,6 @@
     (*dataSNR2) << (new t_polarPoint(az, zen, SNR2));
 
+    dataL1 << int(firstEpoch.gpssec());
+
     if (_log) {
       _log->setRealNumberNotation(QTextStream::FixedNotation);
@@ -479,2 +502,10 @@
   }
 }
+
+//  
+////////////////////////////////////////////////////////////////////////////
+void t_reqcAnalyze::slotDspAvailPlot(const QString& fileName, 
+                                     const QByteArray& title,
+                                     QMap<QString, QVector<int> >* prnAvail){
+
+}
Index: trunk/BNC/src/rinex/reqcanalyze.h
===================================================================
--- trunk/BNC/src/rinex/reqcanalyze.h	(revision 4571)
+++ trunk/BNC/src/rinex/reqcanalyze.h	(revision 4572)
@@ -45,18 +45,24 @@
  signals:
   void finished();
-  void displayGraph(const QString& fileName, 
-                    const QByteArray&, 
-                    QVector<t_polarPoint*>*, 
-                    const QByteArray&, 
-                    QVector<t_polarPoint*>*,
-                    const QByteArray&, double);
+  void dspSkyPlot(const QString&, 
+                  const QByteArray&, 
+                  QVector<t_polarPoint*>*, 
+                  const QByteArray&, 
+                  QVector<t_polarPoint*>*,
+                  const QByteArray&, double);
+
+  void dspAvailPlot(const QString&, const QByteArray&,
+                    QMap<QString, QVector<int> >*);
    
  private slots:
-  void slotDisplayGraph(const QString& fileName, 
-                        const QByteArray& title1, 
-                        QVector<t_polarPoint*>* data1, 
-                        const QByteArray& title2, 
-                        QVector<t_polarPoint*>* data2,
-                        const QByteArray& scaleTitle, double maxValue);
+  void slotDspSkyPlot(const QString& fileName, 
+                      const QByteArray& title1, 
+                      QVector<t_polarPoint*>* data1, 
+                      const QByteArray& title2, 
+                      QVector<t_polarPoint*>* data2,
+                      const QByteArray& scaleTitle, double maxValue);
+
+  void slotDspAvailPlot(const QString& fileName, const QByteArray& title,
+                        QMap<QString, QVector<int> >* prnAvail);
 
  public:
@@ -99,12 +105,11 @@
 
   void analyzeFile(t_rnxObsFile* obsFile);
-  void analyzeMultipathAndSNR(const QString& prn, 
-                              const t_satStat& satStat,
-                              const ColumnVector& xyz,
-                              double obsInterval,
-                              QVector<t_polarPoint*>* dataMP1, 
-                              QVector<t_polarPoint*>* dataMP2,
-                              QVector<t_polarPoint*>* dataSNR1, 
-                              QVector<t_polarPoint*>* dataSNR2);
+  void preparePlotData(const QString& prn, const t_satStat& satStat,
+                       const ColumnVector& xyz, double obsInterval,
+                       QVector<t_polarPoint*>* dataMP1, 
+                       QVector<t_polarPoint*>* dataMP2,
+                       QVector<t_polarPoint*>* dataSNR1, 
+                       QVector<t_polarPoint*>* dataSNR2,
+                       QVector<int>&           dataL1);
 
   QString                  _logFileName;
