Index: trunk/BNC/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 2769)
+++ trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 2770)
@@ -78,4 +78,6 @@
   connect(this, SIGNAL(newGlonassEph(glonassephemeris*)), 
           (bncApp*) qApp, SLOT(slotNewGlonassEph(glonassephemeris*)));
+  connect(this, SIGNAL(newGalileoEph(galileoephemeris*)), 
+          (bncApp*) qApp, SLOT(slotNewGalileoEph(galileoephemeris*)));
 
   // Sub-Decoder for Clock and Orbit Corrections
@@ -426,4 +428,11 @@
             emit newGlonassEph(new glonassephemeris(parser.ephemerisGLONASS));
           }
+
+          // Galileo Ephemeris
+          // -----------------
+          else if (rr == 1045) {
+            decoded = true;
+            emit newGalileoEph(new galileoephemeris(parser.ephemerisGALILEO));
+          }
         }
       }
Index: trunk/BNC/RTCM3/RTCM3Decoder.h
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.h	(revision 2769)
+++ trunk/BNC/RTCM3/RTCM3Decoder.h	(revision 2770)
@@ -56,4 +56,5 @@
   void newGPSEph(gpsephemeris* gpseph);
   void newGlonassEph(glonassephemeris* glonasseph);
+  void newGalileoEph(galileoephemeris* galileoeph);
 
  private:
Index: trunk/BNC/RTCM3/ephemeris.h
===================================================================
--- trunk/BNC/RTCM3/ephemeris.h	(revision 2769)
+++ trunk/BNC/RTCM3/ephemeris.h	(revision 2770)
@@ -127,3 +127,45 @@
 };
 
+class t_ephGal : public t_eph {
+ public:
+  t_ephGal() { }
+  virtual ~t_ephGal() {}
+  double TOC() const {return _TOC;}
+
+  void set(const galileoephemeris* ee);
+
+  virtual void position(int GPSweek, double GPSweeks, 
+                        double* xc,
+                        double* vv) const;
+
+  virtual int  IOD() const { return static_cast<int>(_IODnav); }
+
+ private:
+  double  _IODnav;             
+  double  _TOC;              //  [s]    
+  double  _TOE;              //  [s]    
+  double  _clock_bias;       //  [s]    
+  double  _clock_drift;      //  [s/s]  
+  double  _clock_driftrate;  //  [s/s^2]
+  double  _Crs;              //  [m]    
+  double  _Delta_n;          //  [rad/s]
+  double  _M0;               //  [rad]  
+  double  _Cuc;              //  [rad]  
+  double  _e;                //         
+  double  _Cus;              //  [rad]  
+  double  _sqrt_A;           //  [m^0.5]
+  double  _Cic;              //  [rad]  
+  double  _OMEGA0;           //  [rad]  
+  double  _Cis;              //  [rad]  
+  double  _i0;               //  [rad]  
+  double  _Crc;              //  [m]    
+  double  _omega;            //  [rad]  
+  double  _OMEGADOT;         //  [rad/s]
+  double  _IDOT;             //  [rad/s]
+  double  _BGD_1_5A;         //  group delay [s] 
+  int     _SISA;             //  Signal In Space Accuracy
+  int     _E5aHS;            //  E5a Health Status
+
+};
+
 #endif
Index: trunk/BNC/bncapp.cpp
===================================================================
--- trunk/BNC/bncapp.cpp	(revision 2769)
+++ trunk/BNC/bncapp.cpp	(revision 2770)
@@ -70,4 +70,7 @@
     _glonassEph[ii-PRN_GLONASS_START] = 0;
   }
+  for (int ii = PRN_GALILEO_START; ii <= PRN_GALILEO_END; ii++) {
+    _galileoEph[ii-PRN_GALILEO_START] = 0;
+  }
 
   // Eph file(s)
@@ -78,4 +81,6 @@
   _ephFileGlonass   = 0;
   _ephStreamGlonass = 0;
+  _ephFileGalileo   = 0;
+  _ephStreamGalileo = 0;
 
   _port    = 0;
@@ -127,4 +132,7 @@
   for (int ii = PRN_GLONASS_START; ii <= PRN_GLONASS_END; ii++) {
     delete _glonassEph[ii-PRN_GLONASS_START];
+  }
+  for (int ii = PRN_GALILEO_START; ii <= PRN_GALILEO_END; ii++) {
+    delete _galileoEph[ii-PRN_GALILEO_START];
   }
 
@@ -244,4 +252,12 @@
 }
 
+// New Galileo Ephemeris
+////////////////////////////////////////////////////////////////////////////
+void bncApp::slotNewGalileoEph(galileoephemeris* galileoeph) {
+
+  QMutexLocker locker(&_mutex);
+
+}
+
 // Print Header of the output File(s)
 ////////////////////////////////////////////////////////////////////////////
@@ -305,4 +321,8 @@
       _glonassEph[ii-PRN_GLONASS_START] = 0;
     }
+    for (int ii = PRN_GALILEO_START; ii <= PRN_GALILEO_END; ii++) {
+      delete _galileoEph[ii-PRN_GALILEO_START];
+      _galileoEph[ii-PRN_GALILEO_START] = 0;
+    }
 
     delete _ephStreamGPS;
@@ -311,4 +331,5 @@
     QFlags<QIODevice::OpenModeFlag> appendFlagGPS;
     QFlags<QIODevice::OpenModeFlag> appendFlagGlonass;
+    QFlags<QIODevice::OpenModeFlag> appendFlagGalileo;
 
     if ( Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked &&
@@ -325,4 +346,6 @@
       _ephFileGlonass   = _ephFileGPS;
       _ephStreamGlonass = _ephStreamGPS;
+      _ephFileGalileo   = _ephFileGPS;
+      _ephStreamGalileo = _ephStreamGPS;
     }
     else if (_rinexVers == 2) {
@@ -531,4 +554,9 @@
 
   printOutput(printFile, _ephStreamGlonass, lineV2, lineV3, allLines);
+}
+
+// Print One Galileo Ephemeris
+////////////////////////////////////////////////////////////////////////////
+void bncApp::printGalileoEph(galileoephemeris* ep, bool printFile) {
 }
 
Index: trunk/BNC/bncapp.h
===================================================================
--- trunk/BNC/bncapp.h	(revision 2769)
+++ trunk/BNC/bncapp.h	(revision 2770)
@@ -54,4 +54,5 @@
     void slotNewGPSEph(gpsephemeris* gpseph);
     void slotNewGlonassEph(glonassephemeris* glonasseph);
+    void slotNewGalileoEph(galileoephemeris* galileoeph);
     void slotNewCorrLine(QString line, QString staID, long coTime);
     void slotQuit();
@@ -61,4 +62,5 @@
     void newEphGPS(gpsephemeris gpseph);
     void newEphGlonass(glonassephemeris glonasseph);
+    void newEphGalileo(galileoephemeris galileoeph);
     void newCorrections(QList<QString>);
     
@@ -70,4 +72,5 @@
     void printGPSEph(gpsephemeris* ep, bool printFile);
     void printGlonassEph(glonassephemeris* ep, bool printFile);
+    void printGalileoEph(galileoephemeris* ep, bool printFile);
     void printOutput(bool printFile, QTextStream* stream, 
                      const QString& lineV2, 
@@ -89,6 +92,9 @@
     QFile*            _ephFileGlonass;
     QTextStream*      _ephStreamGlonass;
+    QFile*            _ephFileGalileo;
+    QTextStream*      _ephStreamGalileo;
     gpsephemeris*     _gpsEph[PRN_GPS_END - PRN_GPS_START + 1];
     glonassephemeris* _glonassEph[PRN_GLONASS_END - PRN_GLONASS_START + 1];
+    galileoephemeris* _galileoEph[PRN_GALILEO_END - PRN_GALILEO_START + 1];
     QString           _userName;
     QString           _pgmName;
Index: trunk/BNC/ppp.gpt
===================================================================
--- trunk/BNC/ppp.gpt	(revision 2769)
+++ trunk/BNC/ppp.gpt	(revision 2770)
@@ -25,5 +25,5 @@
 
 set ylabel "meters"
-set yrange [-1.5:1.5]
+###set yrange [-1.5:1.5]
 
 set ytics nomirror
