Skip to content
Snippets Groups Projects
Commit 6c1bda38 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

SBAS bug fixed

parent 2b6a0367
No related branches found
No related tags found
2 merge requests!20new tag,!19new tag
This commit is part of merge request !20. Comments created here will be created in the context of that merge request.
Subproject commit 3f0bb15ea844df97592a5d0c96222da5db6566ae Subproject commit c28e43077f2fb431ce3e1cc306155342e7307c66
...@@ -132,11 +132,6 @@ inline bool Navigation::addFcb(const fcbd_t& fcb) ...@@ -132,11 +132,6 @@ inline bool Navigation::addFcb(const fcbd_t& fcb)
return addToArray<fcbd_t>(fcb, nav_.fcb, nav_.nf, nav_.nfmax); return addToArray<fcbd_t>(fcb, nav_.fcb, nav_.nf, nav_.nfmax);
} }
inline void Navigation::addSbasMessage(const sbsmsg_t& sbas_msg)
{
sbsupdatecorr(&sbas_msg, &nav_);
}
inline void Navigation::freeEphemeris() inline void Navigation::freeEphemeris()
{ {
freeEph(nav_); freeEph(nav_);
......
...@@ -158,6 +158,25 @@ void Navigation::loadFromRinex(const std::string& rnx_file, gtime_t t_start, gti ...@@ -158,6 +158,25 @@ void Navigation::loadFromRinex(const std::string& rnx_file, gtime_t t_start, gti
<< std::endl; << std::endl;
} }
void Navigation::addSbasMessage(const sbsmsg_t& sbas_msg)
{
// init seph with array of size NSATSBS*2
if (nav_.seph == NULL)
{
std::cout << "Navigation::addSbasMessage: initializing sbas ephemerides array...\n";
if (!(nav_.seph =(seph_t *)malloc(sizeof(seph_t)*NSATSBS*2)))
{
std::cout << "Navigation::addSbasMessage: could not malloc sbas ephemerides!\n";
return;
}
nav_.ns=NSATSBS*2;
nav_.nsmax=NSATSBS*2;
for (auto i=0; i<NSATSBS*2; i++)
nav_.seph[i]=seph_t{0};
}
sbsupdatecorr(&sbas_msg, &nav_);
}
void Navigation::copyAllArrays(const nav_t& nav) void Navigation::copyAllArrays(const nav_t& nav)
{ {
// GPS/QZS/GAL ephemeris // GPS/QZS/GAL ephemeris
...@@ -182,11 +201,18 @@ void Navigation::copyAllArrays(const nav_t& nav) ...@@ -182,11 +201,18 @@ void Navigation::copyAllArrays(const nav_t& nav)
void Navigation::copyEphemeris(const nav_t& nav) void Navigation::copyEphemeris(const nav_t& nav)
{ {
copyArray<eph_t>(nav.eph, nav.n, nav_.eph, nav_.n, nav_.nmax); // Not SBAS ephemeris!
copyArray<geph_t>(nav.geph, nav.ng, nav_.geph, nav_.ng, nav_.ngmax);
copyArray<seph_t>(nav.seph, nav.ns, nav_.seph, nav_.ns, nav_.nsmax);
uniqueNavigation(); // copy
copyArray<eph_t>(nav.eph, nav.n, nav_.eph, nav_.n, nav_.nmax);
copyArray<geph_t>(nav.geph, nav.ng, nav_.geph, nav_.ng, nav_.ngmax);
// unique
uniqeph (&nav_);
uniqgeph(&nav_);
// wavelengths
updatenav(&nav_);
} }
void Navigation::copyAlmanac(const nav_t& nav) void Navigation::copyAlmanac(const nav_t& nav)
......
...@@ -29,7 +29,7 @@ RawDataType UBloxRaw::addDataStream(const std::vector<uint8_t>& data_stream) ...@@ -29,7 +29,7 @@ RawDataType UBloxRaw::addDataStream(const std::vector<uint8_t>& data_stream)
break; break;
case NAV_EPH: // Ephemeris case NAV_EPH: // Ephemeris
//std::cout << "Ephemeris received!\n"; std::cout << "Ephemeris received!\n";
nav_.copyEphemeris(raw_data_.nav); nav_.copyEphemeris(raw_data_.nav);
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment