mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 12:10:34 +00:00
adding data fields
This commit is contained in:
parent
6c9a90abe4
commit
f6632141a7
@ -1414,6 +1414,13 @@ std::string Rtcm::get_MSM_1_content_signal_data(const std::map<int, Gnss_Synchro
|
||||
}
|
||||
|
||||
|
||||
// **********************************************
|
||||
//
|
||||
// MESSAGE TYPE MSM2 (COMPACT PHASERANGES)
|
||||
//
|
||||
// **********************************************
|
||||
|
||||
|
||||
std::string Rtcm::get_MSM_4_content_sat_data(const std::map<int, Gnss_Synchro> & pseudoranges)
|
||||
{
|
||||
//std::map<int, Gnss_Synchro>::const_iterator gnss_synchro_iter;
|
||||
@ -1711,7 +1718,7 @@ unsigned int Rtcm::msm_extended_lock_time_indicator(unsigned int lock_time_perio
|
||||
if( 131072 <= lock_time_period_s && lock_time_period_s < 262144 ) return (416 + (lock_time_period_s - 131072 ) / 4096 );
|
||||
if( 262144 <= lock_time_period_s && lock_time_period_s < 524288 ) return (448 + (lock_time_period_s - 262144 ) / 8192 );
|
||||
if( 524288 <= lock_time_period_s && lock_time_period_s < 1048576 ) return (480 + (lock_time_period_s - 524288 ) / 16384 );
|
||||
if( 1048576 <= lock_time_period_s && lock_time_period_s < 2097152 ) return (512 + (lock_time_period_s - 1048576 ) /32768 );
|
||||
if( 1048576 <= lock_time_period_s && lock_time_period_s < 2097152 ) return (512 + (lock_time_period_s - 1048576 ) / 32768 );
|
||||
if( 2097152 <= lock_time_period_s && lock_time_period_s < 4194304 ) return (544 + (lock_time_period_s - 2097152 ) / 65536 );
|
||||
if( 4194304 <= lock_time_period_s && lock_time_period_s < 8388608 ) return (576 + (lock_time_period_s - 4194304 ) / 131072 );
|
||||
if( 8388608 <= lock_time_period_s && lock_time_period_s < 16777216 ) return (608 + (lock_time_period_s - 8388608 ) / 262144 );
|
||||
@ -1824,12 +1831,12 @@ int Rtcm::reset_data_fields()
|
||||
DF399.reset();
|
||||
DF400.reset();
|
||||
DF401.reset();
|
||||
|
||||
DF402.reset();
|
||||
DF403.reset();
|
||||
DF404.reset();
|
||||
DF405.reset();
|
||||
DF406.reset();
|
||||
|
||||
DF407.reset();
|
||||
DF408.reset();
|
||||
DF409.reset();
|
||||
DF411.reset();
|
||||
@ -2993,28 +3000,28 @@ int Rtcm::set_DF401(const Gnss_Synchro & gnss_synchro)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//int Rtcm::set_DF402(const Gnss_Synchro & gnss_synchro)
|
||||
//{
|
||||
// unsigned indicator = 15;
|
||||
// // Table 3.5-74
|
||||
// if (lock < 32 ) indicator = 0;
|
||||
// if (lock < 64 ) indicator = 1;
|
||||
// if (lock < 128 ) indicator = 2;
|
||||
// if (lock < 256 ) indicator = 3;
|
||||
// if (lock < 512 ) indicator = 4;
|
||||
// if (lock < 1024 ) indicator = 5;
|
||||
// if (lock < 2048 ) indicator = 6;
|
||||
// if (lock < 4096 ) indicator = 7;
|
||||
// if (lock < 8192 ) indicator = 8;
|
||||
// if (lock < 16384 ) indicator = 9;
|
||||
// if (lock < 32768 ) indicator = 10;
|
||||
// if (lock < 65536 ) indicator = 11;
|
||||
// if (lock < 131072) indicator = 12;
|
||||
// if (lock < 262144) indicator = 13;
|
||||
// if (lock < 524288) indicator = 14;
|
||||
// return 0;
|
||||
//}
|
||||
|
||||
int Rtcm::set_DF402(const Gps_Ephemeris & ephNAV, const Gps_CNAV_Ephemeris & ephCNAV, const Galileo_Ephemeris & ephFNAV, double obs_time, const Gnss_Synchro & gnss_synchro)
|
||||
{
|
||||
unsigned int lock_time_period_s = 0;
|
||||
unsigned int lock_time_indicator;
|
||||
std::string sig_(gnss_synchro.Signal);
|
||||
if(sig_.compare("1C"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
if(sig_.compare("2S"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephCNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
if(sig_.compare("1B") || sig_.compare("5X") || sig_.compare("7X") || sig_.compare("8X"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephFNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
lock_time_indicator = Rtcm::msm_lock_time_indicator(lock_time_period_s);
|
||||
DF402 = std::bitset<4>(lock_time_indicator);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int Rtcm::set_DF403(const Gnss_Synchro & gnss_synchro)
|
||||
@ -3150,6 +3157,31 @@ int Rtcm::set_DF406(const Gnss_Synchro & gnss_synchro)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int Rtcm::set_DF407(const Gps_Ephemeris & ephNAV, const Gps_CNAV_Ephemeris & ephCNAV, const Galileo_Ephemeris & ephFNAV, double obs_time, const Gnss_Synchro & gnss_synchro)
|
||||
{
|
||||
unsigned int lock_time_indicator;
|
||||
unsigned int lock_time_period_s = 0;
|
||||
|
||||
std::string sig_(gnss_synchro.Signal);
|
||||
if(sig_.compare("1C"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
if(sig_.compare("2S"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephCNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
if(sig_.compare("1B") || sig_.compare("5X") || sig_.compare("7X") || sig_.compare("8X"))
|
||||
{
|
||||
lock_time_period_s = Rtcm::lock_time(ephFNAV, obs_time, gnss_synchro);
|
||||
}
|
||||
lock_time_indicator = Rtcm::msm_extended_lock_time_indicator(lock_time_period_s);
|
||||
DF407 = std::bitset<10>(lock_time_indicator);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int Rtcm::set_DF408(const Gnss_Synchro & gnss_synchro)
|
||||
{
|
||||
unsigned int cnr_dB_Hz;
|
||||
|
@ -498,7 +498,8 @@ private:
|
||||
std::bitset<22> DF401;
|
||||
int set_DF401(const Gnss_Synchro & gnss_synchro);
|
||||
|
||||
// TODO: DF402 for MSM2+
|
||||
std::bitset<4> DF402;
|
||||
int set_DF402(const Gps_Ephemeris & ephNAV, const Gps_CNAV_Ephemeris & ephCNAV, const Galileo_Ephemeris & ephFNAV, double obs_time, const Gnss_Synchro & gnss_synchro);
|
||||
|
||||
std::bitset<6> DF403;
|
||||
int set_DF403(const Gnss_Synchro & gnss_synchro);
|
||||
@ -512,7 +513,8 @@ private:
|
||||
std::bitset<24> DF406;
|
||||
int set_DF406(const Gnss_Synchro & gnss_synchro);
|
||||
|
||||
// TODO: DF407 for MSM6+
|
||||
std::bitset<10> DF407;
|
||||
int set_DF407(const Gps_Ephemeris & ephNAV, const Gps_CNAV_Ephemeris & ephCNAV, const Galileo_Ephemeris & ephFNAV, double obs_time, const Gnss_Synchro & gnss_synchro);
|
||||
|
||||
std::bitset<10> DF408;
|
||||
int set_DF408(const Gnss_Synchro & gnss_synchro);
|
||||
|
Loading…
Reference in New Issue
Block a user