1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-10-29 22:42:59 +00:00

Thowards A-GNSS-SDR: New classes to store GPS SV orbital, clock, and ionosphere parameters. Work in progress...

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@342 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Javier Arribas
2013-03-11 18:29:33 +00:00
parent 0c5b294e7d
commit 175a143c61
20 changed files with 658 additions and 21 deletions

View File

@@ -30,4 +30,5 @@ include_directories(
${GNURADIO_GRUEL_INCLUDE_DIRS}
)
add_library(telemetry_decoder_lib ${TELEMETRY_DECODER_LIB_SOURCES})
add_library(telemetry_decoder_lib ${TELEMETRY_DECODER_LIB_SOURCES})
target_link_libraries(telemetry_decoder_lib gnss_system_parameters)

View File

@@ -250,7 +250,6 @@ void GpsL1CaSubframeFsm::gps_subframe_to_nav_msg()
int subframe_ID;
// NEW GPS SUBFRAME HAS ARRIVED!
subframe_ID = d_nav.subframe_decoder(this->d_subframe); //decode the subframe
//std::cout<<"Detected PRN: " << d_nav.i_satellite_PRN << " for satellite " <<
std::cout << "NAVIGATION FSM: received subframe " << subframe_ID << " for satellite " << Gnss_Satellite(std::string("GPS"), i_satellite_PRN) << std::endl;
d_nav.i_satellite_PRN = i_satellite_PRN;
d_nav.i_channel_ID = i_channel_ID;
@@ -259,31 +258,39 @@ void GpsL1CaSubframeFsm::gps_subframe_to_nav_msg()
/*!
* \todo change satellite validation to subframe 5 because it will have a complete set of ephemeris parameters
*/
// if (subframe_ID == 3)
// { // if the subframe is the 5th, then
// if (d_nav.satellite_validation()) // if all the satellite ephemeris parameters are good, then
// {
// // Send the procesed satellite ephemeris packet
// d_nav_queue->push(d_nav);
if (d_nav.satellite_validation()==true)
{
// get ephemeris object for this SV (mandatory)
// Gps_Ephemeris ephemeris=d_nav.get_ephemeris();
// d_ephemeris_queue->push(ephemeris);
//
// }
// }
d_nav.satellite_validation();
d_nav_queue->push(d_nav);
// // get ionospheric parameters (if available)
// if (d_nav.flag_iono_valid==true)
// {
// Gps_Iono iono=d_nav.get_iono();
// d_iono_queue->push(iono);
// }
//
// // get almanac (if available)
// //TODO: implement almanac reader in navigation_message
//
// // get UTC model
// if (d_nav.flag_utc_model_valid==true)
// {
// Gps_Utc_Model utc_model=d_nav.get_utc_model();
// d_utc_model_queue->push(utc_model);
//
// }
// old nav queue
d_nav_queue->push(d_nav);
}
}
void GpsL1CaSubframeFsm::Event_gps_word_valid()
{
this->process_event(Ev_gps_word_valid());
}
void GpsL1CaSubframeFsm::Event_gps_word_invalid()
{
this->process_event(Ev_gps_word_invalid());

View File

@@ -46,6 +46,10 @@
#include <cstring>
#include "GPS_L1_CA.h"
#include "gps_navigation_message.h"
#include "gps_ephemeris.h"
#include "gps_iono.h"
#include "gps_almanac.h"
#include "gps_utc_model.h"
namespace sc = boost::statechart;
namespace mpl = boost::mpl;
@@ -71,10 +75,25 @@ public:
unsigned int i_satellite_PRN;
// ephemeris queue
concurrent_queue<Gps_Ephemeris> *d_ephemeris_queue;
// ionospheric parameters queue
concurrent_queue<Gps_Iono> *d_iono_queue;
// UTC model parameters queue
concurrent_queue<Gps_Utc_Model> *d_utc_model_queue;
// Almanac queue
concurrent_queue<Gps_Almanac> *d_almanac_queue;
// Old navigation message queue
concurrent_queue<Gps_Navigation_Message> *d_nav_queue;
// navigation message class
Gps_Navigation_Message d_nav;
// GPS SV and System parameters
Gps_Ephemeris ephemeris;
Gps_Almanac almanac;
Gps_Utc_Model utc_model;
Gps_Iono iono;
char d_subframe[GPS_SUBFRAME_LENGTH];
char d_GPS_frame_4bytes[GPS_WORD_LENGTH];