diff --git a/src/algorithms/PVT/adapters/CMakeLists.txt b/src/algorithms/PVT/adapters/CMakeLists.txt
index f2f8e4c0d..e9c5682cb 100644
--- a/src/algorithms/PVT/adapters/CMakeLists.txt
+++ b/src/algorithms/PVT/adapters/CMakeLists.txt
@@ -16,7 +16,10 @@
# along with GNSS-SDR. If not, see .
#
-set(PVT_ADAPTER_SOURCES gps_l1_ca_pvt.cc)
+set(PVT_ADAPTER_SOURCES
+ gps_l1_ca_pvt.cc
+ galileo_e1_pvt.cc
+)
include_directories(
$(CMAKE_CURRENT_SOURCE_DIR)
diff --git a/src/algorithms/PVT/adapters/galileo_e1_pvt.cc b/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
new file mode 100644
index 000000000..39e449d58
--- /dev/null
+++ b/src/algorithms/PVT/adapters/galileo_e1_pvt.cc
@@ -0,0 +1,109 @@
+/*!
+ * \file galileo_e1_pvt.cc
+ * \brief Implementation of an adapter of a GALILEO E1 PVT solver block to a
+ * PvtInterface
+ * \author Javier Arribas, 2011. jarribas(at)cttc.es
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+
+#include "galileo_e1_pvt.h"
+#include "configuration_interface.h"
+#include "galileo_e1_pvt_cc.h"
+#include
+#include
+
+using google::LogMessage;
+
+GalileoE1Pvt::GalileoE1Pvt(ConfigurationInterface* configuration,
+ std::string role,
+ unsigned int in_streams,
+ unsigned int out_streams,
+ boost::shared_ptr queue) :
+ role_(role),
+ in_streams_(in_streams),
+ out_streams_(out_streams),
+ queue_(queue)
+{
+ // dump parameters
+ std::string default_dump_filename = "./pvt.dat";
+ std::string default_nmea_dump_filename = "./nmea_pvt.nmea";
+ std::string default_nmea_dump_devname = "/dev/tty1";
+ DLOG(INFO) << "role " << role;
+ dump_ = configuration->property(role + ".dump", false);
+ dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename);
+ // moving average depth parameters
+ int averaging_depth;
+ averaging_depth = configuration->property(role + ".averaging_depth", 10);
+ bool flag_averaging;
+ flag_averaging = configuration->property(role + ".flag_averaging", false);
+ // output rate
+ int output_rate_ms;
+ output_rate_ms = configuration->property(role + ".output_rate_ms", 500);
+ // display rate
+ int display_rate_ms;
+ display_rate_ms = configuration->property(role + ".display_rate_ms", 500);
+ // NMEA Printer settings
+ bool flag_nmea_tty_port;
+ flag_nmea_tty_port = configuration->property(role + ".flag_nmea_tty_port", false);
+ std::string nmea_dump_filename;
+ nmea_dump_filename = configuration->property(role + ".nmea_dump_filename", default_nmea_dump_filename);
+ std::string nmea_dump_devname;
+ nmea_dump_devname = configuration->property(role + ".nmea_dump_devname", default_nmea_dump_devname);
+ // make PVT object
+ pvt_ = galileo_e1_make_pvt_cc(in_streams_, queue_, dump_, dump_filename_, averaging_depth, flag_averaging, output_rate_ms, display_rate_ms, flag_nmea_tty_port, nmea_dump_filename, nmea_dump_devname);
+ DLOG(INFO) << "pvt(" << pvt_->unique_id() << ")";
+}
+
+
+GalileoE1Pvt::~GalileoE1Pvt()
+{}
+
+
+void GalileoE1Pvt::connect(gr::top_block_sptr top_block)
+{
+ // Nothing to connect internally
+ DLOG(INFO) << "nothing to connect internally";
+}
+
+
+void GalileoE1Pvt::disconnect(gr::top_block_sptr top_block)
+{
+ // Nothing to disconnect
+}
+
+gr::basic_block_sptr GalileoE1Pvt::get_left_block()
+{
+ return pvt_;
+}
+
+
+gr::basic_block_sptr GalileoE1Pvt::get_right_block()
+{
+ return pvt_;
+}
+
diff --git a/src/algorithms/PVT/adapters/galileo_e1_pvt.h b/src/algorithms/PVT/adapters/galileo_e1_pvt.h
new file mode 100644
index 000000000..db6296a6c
--- /dev/null
+++ b/src/algorithms/PVT/adapters/galileo_e1_pvt.h
@@ -0,0 +1,97 @@
+/*!
+ * \file galileo_e1_pvt.h
+ * \brief Interface of an adapter of a GALILEO E1 PVT solver block to a
+ * PvtInterface
+ * Position Velocity and Time
+ * \author Javier Arribas, 2011. jarribas(at)cttc.es
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+
+
+#ifndef GNSS_SDR_GALILEO_E1_PVT_H_
+#define GNSS_SDR_GALILEO_E1_PVT_H_
+
+#include "pvt_interface.h"
+#include "galileo_e1_pvt_cc.h"
+#include
+
+class ConfigurationInterface;
+
+/*!
+ * \brief This class implements a PvtInterface for GPS L1 C/A
+ */
+class GalileoE1Pvt : public PvtInterface
+{
+public:
+ GalileoE1Pvt(ConfigurationInterface* configuration,
+ std::string role,
+ unsigned int in_streams,
+ unsigned int out_streams,
+ boost::shared_ptr queue);
+
+ virtual ~GalileoE1Pvt();
+
+ std::string role()
+ {
+ return role_;
+ }
+
+ //! Returns "GPS_L1_CA_PVT"
+ std::string implementation()
+ {
+ return "GALILEO_E1_PVT";
+ }
+
+ void connect(gr::top_block_sptr top_block);
+ void disconnect(gr::top_block_sptr top_block);
+ gr::basic_block_sptr get_left_block();
+ gr::basic_block_sptr get_right_block();
+
+ void reset()
+ {
+ return;
+ }
+
+ //! All blocks must have an item_size() function implementation. Returns sizeof(gr_complex)
+ size_t item_size()
+ {
+ return sizeof(gr_complex);
+ }
+
+private:
+ galileo_e1_pvt_cc_sptr pvt_;
+ bool dump_;
+ unsigned int fs_in_;
+ std::string dump_filename_;
+ std::string role_;
+ unsigned int in_streams_;
+ unsigned int out_streams_;
+ boost::shared_ptr queue_;
+};
+
+#endif
diff --git a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
index fa0484b9c..131fddc55 100644
--- a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
@@ -16,7 +16,10 @@
# along with GNSS-SDR. If not, see .
#
-set(PVT_GR_BLOCKS_SOURCES gps_l1_ca_pvt_cc.cc)
+set(PVT_GR_BLOCKS_SOURCES
+ gps_l1_ca_pvt_cc.cc
+ galileo_e1_pvt_cc.cc
+)
include_directories(
$(CMAKE_CURRENT_SOURCE_DIR)
diff --git a/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
new file mode 100644
index 000000000..9047582fa
--- /dev/null
+++ b/src/algorithms/PVT/gnuradio_blocks/galileo_e1_pvt_cc.cc
@@ -0,0 +1,250 @@
+/*!
+ * \file galileo_e1_pvt_cc.cc
+ * \brief Implementation of a Position Velocity and Time computation block for GPS L1 C/A
+ * \author Javier Arribas, 2011. jarribas(at)cttc.es
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#include "galileo_e1_pvt_cc.h"
+#include
+#include
+#include
+#include