Merge "Support PQWP7 parsing without NAVIC"
This commit is contained in:
commit
948f22d23c
2 changed files with 12 additions and 3 deletions
|
@ -660,6 +660,7 @@ private:
|
||||||
{
|
{
|
||||||
eTalker = 0,
|
eTalker = 0,
|
||||||
eUtcTime = 1,
|
eUtcTime = 1,
|
||||||
|
eMin = 2 + SV_ALL_NUM_MIN*3,
|
||||||
eMax = 2 + SV_ALL_NUM*3
|
eMax = 2 + SV_ALL_NUM*3
|
||||||
};
|
};
|
||||||
SystemStatusPQWP7 mP7;
|
SystemStatusPQWP7 mP7;
|
||||||
|
@ -668,11 +669,18 @@ public:
|
||||||
SystemStatusPQWP7parser(const char *str_in, uint32_t len_in)
|
SystemStatusPQWP7parser(const char *str_in, uint32_t len_in)
|
||||||
: SystemStatusNmeaBase(str_in, len_in)
|
: SystemStatusNmeaBase(str_in, len_in)
|
||||||
{
|
{
|
||||||
if (mField.size() < eMax) {
|
uint32_t svLimit = SV_ALL_NUM;
|
||||||
|
if (mField.size() < eMin) {
|
||||||
LOC_LOGE("PQWP7parser - invalid size=%zu", mField.size());
|
LOC_LOGE("PQWP7parser - invalid size=%zu", mField.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (uint32_t i=0; i<SV_ALL_NUM; i++) {
|
if (mField.size() < eMax) {
|
||||||
|
// Try reducing limit, accounting for possibly missing NAVIC support
|
||||||
|
svLimit = SV_ALL_NUM_MIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(mP7.mNav, 0, sizeof(mP7.mNav));
|
||||||
|
for (uint32_t i=0; i<svLimit; i++) {
|
||||||
mP7.mNav[i].mType = GnssEphemerisType(atoi(mField[i*3+2].c_str()));
|
mP7.mNav[i].mType = GnssEphemerisType(atoi(mField[i*3+2].c_str()));
|
||||||
mP7.mNav[i].mSource = GnssEphemerisSource(atoi(mField[i*3+3].c_str()));
|
mP7.mNav[i].mSource = GnssEphemerisSource(atoi(mField[i*3+3].c_str()));
|
||||||
mP7.mNav[i].mAgeSec = atoi(mField[i*3+4].c_str());
|
mP7.mNav[i].mAgeSec = atoi(mField[i*3+4].c_str());
|
||||||
|
|
|
@ -59,7 +59,8 @@
|
||||||
#define BDS_NUM (37)
|
#define BDS_NUM (37)
|
||||||
#define GAL_NUM (36)
|
#define GAL_NUM (36)
|
||||||
#define NAVIC_NUM (14)
|
#define NAVIC_NUM (14)
|
||||||
#define SV_ALL_NUM (GPS_NUM+GLO_NUM+QZSS_NUM+BDS_NUM+GAL_NUM+NAVIC_NUM) //=148
|
#define SV_ALL_NUM_MIN (GPS_NUM + GLO_NUM + QZSS_NUM + BDS_NUM + GAL_NUM) //=134
|
||||||
|
#define SV_ALL_NUM (SV_ALL_NUM_MIN + NAVIC_NUM) //=148
|
||||||
|
|
||||||
namespace loc_core
|
namespace loc_core
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue