[hamradio-commits] [gnss-sdr] 46/303: Add control thread to TTFF test

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:35:46 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 0a74ad17bee4e5787705012ab793f1ef2e6c4f25
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Thu Sep 29 19:06:17 2016 +0200

    Add control thread to TTFF test
---
 src/tests/system-tests/ttff_gps_l1.cc | 94 +++++++++++++++++++++++------------
 1 file changed, 62 insertions(+), 32 deletions(-)

diff --git a/src/tests/system-tests/ttff_gps_l1.cc b/src/tests/system-tests/ttff_gps_l1.cc
index 0fd3886..49232bb 100644
--- a/src/tests/system-tests/ttff_gps_l1.cc
+++ b/src/tests/system-tests/ttff_gps_l1.cc
@@ -31,10 +31,16 @@
  */
 
 #include <gtest/gtest.h>
+#include <ctime>
+#include <chrono>
 #include <string>
+#include <thread>
 #include "in_memory_configuration.h"
 #include "concurrent_queue.h"
 #include "concurrent_map.h"
+#include "concurrent_map.h"
+#include "control_thread.h"
+#include "control_message_factory.h"
 #include "gps_acq_assist.h"
 #include "gnss_flowgraph.h"
 #include <glog/logging.h>
@@ -46,7 +52,7 @@ concurrent_map<Gps_Acq_Assist> global_gps_acq_assist_map;
 class TTFF_GPS_L1_CA_Test: public ::testing::Test
 {
 public:
-  std::shared_ptr<InMemoryConfiguration> config;
+    std::shared_ptr<InMemoryConfiguration> config;
 };
 
 TEST_F(TTFF_GPS_L1_CA_Test, ColdStart)
@@ -58,14 +64,14 @@ TEST_F(TTFF_GPS_L1_CA_Test, ColdStart)
 
     // Set the Signal Source
     config->set_property("GNSS-SDR.internal_fs_hz", std::to_string(4000000.0));
-    config->set_property("SignalSource.item_type", "gr_complex");
+    config->set_property("SignalSource.item_type", "cshort");
     config->set_property("SignalSource.implementation", "UHD_Signal_Source");
     config->set_property("SignalSource.freq", std::to_string(1575420000));
     config->set_property("SignalSource.gain", std::to_string(40));
-    config->set_property("SignalSource.subdevice", "A:0");
+    config->set_property("SignalSource.subdevice", "B:0");
     config->set_property("SignalSource.samples", std::to_string(0));
     config->set_property("SignalSource.device_address", "192.168.40.2");
-    config->set_property("SignalSource.item_type", "cshort");
+    //config->set_property("SignalSource.item_type", "cshort");
 
     // Set the Signal Conditioner
     config->set_property("SignalConditioner.implementation", "Signal_Conditioner");
@@ -151,35 +157,59 @@ TEST_F(TTFF_GPS_L1_CA_Test, ColdStart)
     config->set_property("PVT.dump", "false");
 
 
-bool valid_pvt_received = false;
-
-int n = 0;
-for(n=0; n<4; n++) //    - for t > time_ obs || stop
-{
-    // reset start( hot /warm / cold )
-    // COLD START
-    config->set_property("GNSS-SDR.SUPL_gps_enabled", "false");
-    config->set_property("GNSS-SDR.SUPL_read_gps_assistance_xml", "false");
-    std::shared_ptr<GNSSFlowgraph> flowgraph = std::make_shared<GNSSFlowgraph>(config, gr::msg_queue::make(0));
-    EXPECT_NO_THROW(flowgraph->connect());
-    EXPECT_TRUE(flowgraph->connected());
-    EXPECT_FALSE(flowgraph->running());
-
-    //  - start clock
-    //      - start receiver
-    EXPECT_NO_THROW(flowgraph->start());
-    EXPECT_TRUE(flowgraph->running());
-    //    - if (pvt_fix | max_waiting_time)
-    //        - stop_clock
-    flowgraph->stop();
-    EXPECT_FALSE(flowgraph->running());
-    num_measurements = num_measurements + 1;
-    std::cout << "Measurement " << num_measurements << std::endl;
-    // if (pvt_fix) num_valid_measurements = num_valid_measurements + 1;
-}
+    bool valid_pvt_received = false;
+
+    int n = 0;
+    for(n=0; n<4; n++) //    - for t > time_ obs || stop
+        {
+            // reset start( hot /warm / cold )
+            // COLD START
+            config->set_property("GNSS-SDR.SUPL_gps_enabled", "false");
+            config->set_property("GNSS-SDR.SUPL_read_gps_assistance_xml", "false");
+
+            std::shared_ptr<ControlThread> control_thread = std::make_shared<ControlThread>(config);
+
+            gr::msg_queue::sptr control_queue = gr::msg_queue::make(0);
+
+            std::unique_ptr<ControlMessageFactory> control_msg_factory(new ControlMessageFactory());
+
+
+            control_thread->set_control_queue(control_queue);
+            try
+            {
+                    control_thread->run();
+            }
+            catch( boost::exception & e )
+            {
+                    std::cout << "Boost exception: " << boost::diagnostic_information(e);
+            }
+            catch(std::exception const&  ex)
+            {
+                    std::cout  << "STD exception: " << ex.what();
+            }
+
+            std::shared_ptr<GNSSFlowgraph> flowgraph = std::make_shared<GNSSFlowgraph>(config, control_queue);
+            EXPECT_NO_THROW(flowgraph->connect());
+            EXPECT_TRUE(flowgraph->connected());
+            EXPECT_FALSE(flowgraph->running());
+
+            //  - start clock
+            //      - start receiver
+            EXPECT_NO_THROW(flowgraph->start());
+            EXPECT_TRUE(flowgraph->running());
+            //    - if (pvt_fix | max_waiting_time)
+            //        - stop_clock
+            std::this_thread::sleep_until(std::chrono::system_clock::now() + std::chrono::seconds(90));
+            //flowgraph->stop();
+            control_queue->handle(control_msg_factory->GetQueueMessage(200,0));
+            EXPECT_FALSE(flowgraph->running());
+            num_measurements = num_measurements + 1;
+            std::cout << "Measurement " << num_measurements << std::endl;
+            // if (pvt_fix) num_valid_measurements = num_valid_measurements + 1;
+        }
     std::cout << "BYE " << num_measurements << std::endl;
- // Compute min, max, mean, stdev,
+    // Compute min, max, mean, stdev,
 
- // Print TTFF report
+    // Print TTFF report
 
 }

-- 
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