[hamradio-commits] [gnss-sdr] 22/303: Now the block factory automatically detects the input data type
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:35:44 UTC 2017
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.
commit 62e1e6f81aaca74749e7fe7a807a447356b883c1
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Mon Aug 15 11:57:12 2016 +0200
Now the block factory automatically detects the input data type
So it is no longer required to specify Channel.input_type=cshort in the
configuration. An error raises if Acquisition and Tracking Blocks are
not configured with the same input data type.
---
src/core/receiver/gnss_block_factory.cc | 47 ++++++++++++++++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc
index 70b3da8..f5b3772 100644
--- a/src/core/receiver/gnss_block_factory.cc
+++ b/src/core/receiver/gnss_block_factory.cc
@@ -41,6 +41,7 @@
#include <boost/lexical_cast.hpp>
#include <glog/logging.h>
#include "configuration_interface.h"
+#include "in_memory_configuration.h"
#include "gnss_block_interface.h"
#include "pass_through.h"
#include "file_signal_source.h"
@@ -285,8 +286,19 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1C(
{
appendix3 = "";
}
+ // Automatically detect input data type
+ std::shared_ptr<InMemoryConfiguration> config;
+ config = std::make_shared<InMemoryConfiguration>();
+ std::string default_item_type = "gr_complex";
+ std::string acq_item_type = configuration->property("Acquisition_1C" + appendix1 + ".item_type", default_item_type);
+ std::string trk_item_type = configuration->property("Tracking_1C" + appendix2 + ".item_type", default_item_type);
+ if(acq_item_type.compare(trk_item_type))
+ {
+ LOG(ERROR) << "Acquisition and Tracking blocks must have the same input data type!";
+ }
+ config->set_property("Channel.item_type", acq_item_type);
- std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue);
+ std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(config, "Channel", "Pass_Through", 1, 1, queue);
std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_1C" + appendix1, acq, 1, 0);
std::unique_ptr<TrackingInterface> trk_ = GetTrkBlock(configuration, "Tracking_1C"+ appendix2, trk, 1, 1);
std::unique_ptr<TelemetryDecoderInterface> tlm_ = GetTlmBlock(configuration, "TelemetryDecoder_1C" + appendix3, tlm, 1, 1);
@@ -339,6 +351,17 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_2S(
{
appendix3 = "";
}
+ // Automatically detect input data type
+ std::shared_ptr<InMemoryConfiguration> config;
+ config = std::make_shared<InMemoryConfiguration>();
+ std::string default_item_type = "gr_complex";
+ std::string acq_item_type = configuration->property("Acquisition_2S" + appendix1 + ".item_type", default_item_type);
+ std::string trk_item_type = configuration->property("Tracking_2S" + appendix2 + ".item_type", default_item_type);
+ if(acq_item_type.compare(trk_item_type))
+ {
+ LOG(ERROR) << "Acquisition and Tracking blocks must have the same input data type!";
+ }
+ config->set_property("Channel.item_type", acq_item_type);
std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue);
std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_2S" + appendix1 , acq, 1, 0);
@@ -395,6 +418,17 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1B(
{
appendix3 = "";
}
+ // Automatically detect input data type
+ std::shared_ptr<InMemoryConfiguration> config;
+ config = std::make_shared<InMemoryConfiguration>();
+ std::string default_item_type = "gr_complex";
+ std::string acq_item_type = configuration->property("Acquisition_1B" + appendix1 + ".item_type", default_item_type);
+ std::string trk_item_type = configuration->property("Tracking_1B" + appendix2 + ".item_type", default_item_type);
+ if(acq_item_type.compare(trk_item_type))
+ {
+ LOG(ERROR) << "Acquisition and Tracking blocks must have the same input data type!";
+ }
+ config->set_property("Channel.item_type", acq_item_type);
std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue);
std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_1B" + appendix1, acq, 1, 0);
@@ -451,6 +485,17 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_5X(
{
appendix3 = "";
}
+ // Automatically detect input data type
+ std::shared_ptr<InMemoryConfiguration> config;
+ config = std::make_shared<InMemoryConfiguration>();
+ std::string default_item_type = "gr_complex";
+ std::string acq_item_type = configuration->property("Acquisition_5X" + appendix1 + ".item_type", default_item_type);
+ std::string trk_item_type = configuration->property("Tracking_5X" + appendix2 + ".item_type", default_item_type);
+ if(acq_item_type.compare(trk_item_type))
+ {
+ LOG(ERROR) << "Acquisition and Tracking blocks must have the same input data type!";
+ }
+ config->set_property("Channel.item_type", acq_item_type);
std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue);
std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_5X" + appendix1, acq, 1, 0);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list