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:
@@ -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)
|
||||
@@ -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());
|
||||
|
||||
@@ -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];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user