mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 04:00:34 +00:00
GSoC 2013 commit from Mara Branzanti
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@405 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
parent
367105f666
commit
c4508f875f
@ -39,11 +39,15 @@
|
|||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
#include "control_message_factory.h"
|
#include "control_message_factory.h"
|
||||||
|
#include "galileo_navigation_message.h"
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
|
|
||||||
#include "convolutional.h"
|
#include "convolutional.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
|
|
||||||
@ -286,15 +290,18 @@ int galileo_e1b_telemetry_decoder_cc::general_work (int noutput_items, gr_vector
|
|||||||
{
|
{
|
||||||
std::cout<<"Page Odd"<<std::endl;
|
std::cout<<"Page Odd"<<std::endl;
|
||||||
d_nav.split_page(page_String.c_str(), flag_even_word_arrived);
|
d_nav.split_page(page_String.c_str(), flag_even_word_arrived);
|
||||||
|
//decode_page.split_page(page_String, flag_even_word_arrived);
|
||||||
flag_even_word_arrived=0;
|
flag_even_word_arrived=0;
|
||||||
std::cout<<"Page type ="<< page_part_bits[1]<<std::endl;
|
std::cout << "page odd" << page_String << std::endl;
|
||||||
|
//std::cout<<"Page type ="<< page_part_bits[1]<<std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::cout<<"Page Even"<<std::endl;
|
std::cout<<"Page Even"<<std::endl;
|
||||||
d_nav.split_page(page_String.c_str(), flag_even_word_arrived);
|
d_nav.split_page(page_String.c_str(), flag_even_word_arrived);
|
||||||
flag_even_word_arrived=1;
|
flag_even_word_arrived=1;
|
||||||
std::cout<<"Page type ="<< page_part_bits[1]<<std::endl;
|
std::cout << "page even" << std::endl << page_String << std::endl;
|
||||||
|
//std::cout<<"Page type ="<< page_part_bits[1]<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Push the new navigation data to the queues
|
// 4. Push the new navigation data to the queues
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -50,6 +50,9 @@
|
|||||||
#include "galileo_utc_model.h"
|
#include "galileo_utc_model.h"
|
||||||
|
|
||||||
#include "Galileo_E1.h"
|
#include "Galileo_E1.h"
|
||||||
|
#include "galileo_ephemeris.h"
|
||||||
|
#include "galileo_iono.h"
|
||||||
|
#include "galileo_utc_model.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -134,81 +137,92 @@ public:
|
|||||||
double spare_5;
|
double spare_5;
|
||||||
/*Word type 6: GST-UTC conversion parameters*/
|
/*Word type 6: GST-UTC conversion parameters*/
|
||||||
|
|
||||||
double A0_6;
|
double A0_6;
|
||||||
double A1_6;
|
double A1_6;
|
||||||
double Delta_tLS_6;
|
double Delta_tLS_6;
|
||||||
double t0t_6;
|
double t0t_6;
|
||||||
double WNot_6;
|
double WNot_6;
|
||||||
double WN_LSF_6;
|
double WN_LSF_6;
|
||||||
double DN_6;
|
double DN_6;
|
||||||
double Delta_tLSF_6;
|
double Delta_tLSF_6;
|
||||||
double TOW_6;
|
double TOW_6;
|
||||||
|
|
||||||
/*Word type 7: Almanac for SVID1 (1/2), almanac reference time and almanac reference week number*/
|
/*Word type 7: Almanac for SVID1 (1/2), almanac reference time and almanac reference week number*/
|
||||||
int IOD_a_7;
|
int IOD_a_7;
|
||||||
double WN_a_7;
|
double WN_a_7;
|
||||||
double t0a_7;
|
double t0a_7;
|
||||||
int SVID1_7;
|
int SVID1_7;
|
||||||
double Delta_alpha_7;
|
double DELTA_A_7;
|
||||||
double e_7;
|
double e_7;
|
||||||
double omega_7;
|
double omega_7;
|
||||||
double delta_i_7;
|
double delta_i_7;
|
||||||
double Omega0_7;
|
double Omega0_7;
|
||||||
double Omega_dot_7;
|
double Omega_dot_7;
|
||||||
double M0_7;
|
double M0_7;
|
||||||
|
|
||||||
/*Word type 8: Almanac for SVID1 (2/2) and SVID2 (1/2)*/
|
/*Word type 8: Almanac for SVID1 (2/2) and SVID2 (1/2)*/
|
||||||
int IOD_a_8;
|
int IOD_a_8;
|
||||||
double af0_8;
|
double af0_8;
|
||||||
double af1_8;
|
double af1_8;
|
||||||
double E5b_HS_8;
|
double E5b_HS_8;
|
||||||
double E1B_HS_8;
|
double E1B_HS_8;
|
||||||
int SVID2_8;
|
int SVID2_8;
|
||||||
double DELTA_A_8;
|
double DELTA_A_8;
|
||||||
double e_8;
|
double e_8;
|
||||||
double omega_8;
|
double omega_8;
|
||||||
double delta_i_8;
|
double delta_i_8;
|
||||||
double Omega0_8;
|
double Omega0_8;
|
||||||
double Omega_dot_8;
|
double Omega_dot_8;
|
||||||
|
|
||||||
/*Word type 9: Almanac for SVID2 (2/2) and SVID3 (1/2)*/
|
/*Word type 9: Almanac for SVID2 (2/2) and SVID3 (1/2)*/
|
||||||
|
int IOD_a_9;
|
||||||
int IOD_a_9;
|
double WN_a_9;
|
||||||
double WN_a_9;
|
double t0a_9;
|
||||||
double t0a_9;
|
double M0_9;
|
||||||
double M0_9;
|
double af0_9;
|
||||||
double af0_9;
|
double af1_9;
|
||||||
double af1_9;
|
double E5b_HS_9;
|
||||||
double E5b_HS_9;
|
double E1B_HS_9;
|
||||||
double E1B_HS_9;
|
int SVID3_9;
|
||||||
int SVID3_9;
|
double DELTA_A_9;
|
||||||
double DELTA_A_9;
|
double e_9;
|
||||||
double e_9;
|
double omega_9;
|
||||||
double omega_9;
|
double delta_i_9;
|
||||||
double delta_i_9;
|
|
||||||
|
|
||||||
|
|
||||||
/*Word type 10: Almanac for SVID3 (2/2) and GST-GPS conversion parameters*/
|
/*Word type 10: Almanac for SVID3 (2/2) and GST-GPS conversion parameters*/
|
||||||
|
int IOD_a_10;
|
||||||
|
double Omega0_10;
|
||||||
|
double Omega_dot_10;
|
||||||
|
double M0_10;
|
||||||
|
double af0_10;
|
||||||
|
double af1_10;
|
||||||
|
double E5b_HS_10;
|
||||||
|
double E1B_HS_10;
|
||||||
|
// GST-GPS conversion
|
||||||
|
double A_0G_10; //constant term of the offset Δt systems
|
||||||
|
double A_1G_10; //rate of change of the offset Δt systems
|
||||||
|
double t_0G_10; //reference time for GGTO data
|
||||||
|
double WN_0G_10; //Week Number of GGTO reference
|
||||||
|
|
||||||
int IOD_a_10;
|
/*Word type 0: I/NAV Spare Word*/
|
||||||
double Omega0_10;
|
double Time_0;
|
||||||
double Omega_dot_10;
|
double WN_0;
|
||||||
double M0_10;
|
double TOW_0;
|
||||||
double af0_10;
|
|
||||||
double af1_10;
|
|
||||||
double E5b_HS_10;
|
|
||||||
double E1B_HS_10;
|
|
||||||
double A_0G_10;
|
|
||||||
double A_1G_10;
|
|
||||||
double t_0G_10;
|
|
||||||
double WN_0G_10;
|
|
||||||
|
|
||||||
|
|
||||||
|
double Galileo_satClkDrift;
|
||||||
|
double Galileo_dtr; // relativistic clock correction term
|
||||||
|
|
||||||
|
// satellite positions
|
||||||
|
double galileo_satpos_X; //!< Earth-fixed coordinate x of the satellite [m]. Intersection of the IERS Reference Meridian (IRM) and the plane passing through the origin and normal to the Z-axis.
|
||||||
|
double galileo_satpos_Y; //!< Earth-fixed coordinate y of the satellite [m]. Completes a right-handed, Earth-Centered, Earth-Fixed orthogonal coordinate system.
|
||||||
|
double galileo_satpos_Z; //!< Earth-fixed coordinate z of the satellite [m]. The direction of the IERS (International Earth Rotation and Reference Systems Service) Reference Pole (IRP).
|
||||||
|
// Satellite velocity
|
||||||
|
double galileo_satvel_X; //!< Earth-fixed velocity coordinate x of the satellite [m]
|
||||||
|
double galileo_satvel_Y; //!< Earth-fixed velocity coordinate y of the satellite [m]
|
||||||
|
double galileo_satvel_Z; //!< Earth-fixed velocity coordinate z of the satellite [m]
|
||||||
|
|
||||||
/*Word type 0: I/NAV Spare Word*/
|
|
||||||
double Time_0;
|
|
||||||
double WN_0;
|
|
||||||
double TOW_0;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -218,12 +232,7 @@ public:
|
|||||||
/*
|
/*
|
||||||
* \brief Takes in input Data_jk (128 bit) and split it in ephemeris parameters according ICD 4.3.5
|
* \brief Takes in input Data_jk (128 bit) and split it in ephemeris parameters according ICD 4.3.5
|
||||||
*/
|
*/
|
||||||
int page_jk_decoder(char *data_jk);
|
int page_jk_decoder(const char *data_jk); /* Takes in input Data_jk (128 bit) and split it in ephemeris parameters according ICD 4.3.5*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* \brief Write doxigen function description here
|
|
||||||
*/
|
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
@ -266,6 +275,15 @@ public:
|
|||||||
*/
|
*/
|
||||||
Galileo_Almanac get_almanac();
|
Galileo_Almanac get_almanac();
|
||||||
|
|
||||||
|
void satellitePosition(double transmitTime);
|
||||||
|
|
||||||
|
double Galileo_System_Time(double WN, double TOW); // Galileo System Time (GST), ICD paragraph 5.1.2
|
||||||
|
|
||||||
|
double sv_clock_drift(double transmitTime); //Satellite Time Correction Algorithm, ICD 5.1.4
|
||||||
|
|
||||||
|
double sv_clock_relativistic_term(double transmitTime); //Satellite Time Correction Algorithm, ICD 5.1.4
|
||||||
|
|
||||||
|
double GST_to_UTC_time(double t_e, int WN); //GST-UTC Conversion Algorithm and Parameters
|
||||||
|
|
||||||
Galileo_Navigation_Message();
|
Galileo_Navigation_Message();
|
||||||
};
|
};
|
||||||
|
@ -42,6 +42,8 @@ Gps_Utc_Model::Gps_Utc_Model()
|
|||||||
i_DN = 0;
|
i_DN = 0;
|
||||||
d_DeltaT_LSF = 0;
|
d_DeltaT_LSF = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double Gps_Utc_Model::utc_time(double gpstime_corrected, int i_GPS_week)
|
double Gps_Utc_Model::utc_time(double gpstime_corrected, int i_GPS_week)
|
||||||
|
Loading…
Reference in New Issue
Block a user