diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..8ae397c5fba281f4455a6042d5d6727a96e94f25 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +#Ignore build, bin and lib folders +bin/ +build/ +lib/ diff --git a/include/navigation.h b/include/navigation.h index c0fed77669fb446003a38954e0b9f364e218a22d..1a528af072bd6f6086f87d6627188717a8e914f1 100644 --- a/include/navigation.h +++ b/include/navigation.h @@ -35,19 +35,19 @@ namespace GNSSUtils // Ephemeris - void allocateEphemeris(); + void allocateEphemeris(int n_sat = MAXSAT); void deleteEphemeris(); - void allocateGLONASSEphemeris(); + void allocateGLONASSEphemeris(int n_sat = NSATGLO); void deleteGLONASSEphemeris(); - void allocateSBASEphemeris(); //SBAS + void allocateSBASEphemeris(int n_sat = NSATSBS*2); //SBAS void deleteSBASEphemeris(); - void allocateAlmanac(); + void allocateAlmanac(int n_sat = MAXSAT); void deleteAlmanac(); diff --git a/src/navigation.cpp b/src/navigation.cpp index ed20c224fb7a28fea7cfc550fff56a92a3b58530..65cc8f1fdeaab96f49bc174046fb9bf1d8bc2f0a 100644 --- a/src/navigation.cpp +++ b/src/navigation.cpp @@ -47,7 +47,7 @@ void Navigation::clearNavigation() this->deletewlbias(); this->deleteglocpbias(); this->deleteglofcn(); - + this->deletepcv(); this->deletesbsion(); */ @@ -56,13 +56,13 @@ void Navigation::clearNavigation() void Navigation::setNavigation(nav_t nav) { /* - allocateEphemeris(); + allocateEphemeris(); allocateGLONASSEphemeris(); allocateSBASEphemeris(); allocateAlmanac(); - + this->allocateUTCGPS(4); this->allocateUTCGlo(4); this->allocateUTCGal(4); @@ -81,11 +81,11 @@ void Navigation::setNavigation(nav_t nav) this->allocatewlbias(MAXSAT); this->allocateglocpbias(4); this->allocateglofcn(MAXPRNGLO+1); - + this->allocatepcv(MAXSAT); this->allocatesbsion(MAXBAND+1); */ - + _nav = nav; } @@ -99,19 +99,19 @@ nav_t Navigation::getNavigation() /****************** Array memory management ******************/ -void Navigation::allocateEphemeris() +void Navigation::allocateEphemeris(int n_sat) { - + eph_t eph0 ={0,-1,-1}; int i; - _nav.eph = (eph_t *) malloc(sizeof(eph_t)*MAXSAT); - for (i=0;i<MAXSAT;i++) _nav.eph[i] = eph0; + _nav.eph = (eph_t *) malloc(sizeof(eph_t)*n_sat); + for (i=0;i<n_sat;i++) _nav.eph[i] = eph0; /* if (this->_nav->eph) { //_nav->eph = (eph_t *)realloc(_nav->eph, 2 * MAXSAT * sizeof(eph_t)); } - + else { this->_nav->eph = (eph_t *) malloc(2 * MAXSAT * sizeof(eph_t)); @@ -136,32 +136,32 @@ void Navigation::deleteEphemeris() } -void Navigation::allocateGLONASSEphemeris() +void Navigation::allocateGLONASSEphemeris(int n_sat) { geph_t geph0={0,-1}; int i; - _nav.geph = (geph_t *)malloc(sizeof(geph_t)*NSATGLO); + _nav.geph = (geph_t *)malloc(sizeof(geph_t)*n_sat); /* for (i=0;i<NSATGLO ;i++) _nav.geph[i] = geph0; - + if (this->_nav->geph) { //_nav->geph = (geph_t *)realloc(_nav->geph, NSATGLO * sizeof(geph_t)); } - + else { this->_nav->geph = (geph_t *) malloc(2 * NSATGLO * sizeof(geph_t)); } */ - + } void Navigation::deleteGLONASSEphemeris() { /* free(_nav->geph); - + if (_nav->geph) { free(_nav->geph); @@ -174,18 +174,19 @@ void Navigation::deleteGLONASSEphemeris() */ } -void Navigation::allocateSBASEphemeris() +void Navigation::allocateSBASEphemeris(int n_sat) { seph_t seph0={0}; int i; - _nav.seph = (seph_t *)malloc(sizeof(seph_t)*NSATSBS*2); - for (i=0;i<NSATSBS ;i++) _nav.seph[i] = seph0; + + _nav.seph = (seph_t *)malloc(sizeof(seph_t)*n_sat); + for (i=0; i<n_sat; i++) _nav.seph[i] = seph0; /* if (this->_nav->seph) { //_nav->seph = (seph_t *)realloc(_nav->seph, NSATSBS * sizeof(seph_t)); } - + else { this->_nav->seph = (seph_t *) malloc(2 * NSATSBS * sizeof(seph_t)); @@ -197,7 +198,7 @@ void Navigation::deleteSBASEphemeris() { /* free(_nav->seph); - + if (_nav->seph) { free(_nav->seph); @@ -210,18 +211,19 @@ void Navigation::deleteSBASEphemeris() */ } -void Navigation::allocateAlmanac() +void Navigation::allocateAlmanac(int n_sat) { alm_t alm0 ={0,-1}; int i; - _nav.alm = (alm_t *)malloc(sizeof(alm_t)*MAXSAT); - for (i=0;i<MAXSAT ;i++) _nav.alm[i] = alm0; + + _nav.alm = (alm_t *)malloc(sizeof(alm_t)*n_sat); + for (i=0; i<n_sat; i++) _nav.alm[i] = alm0; /* if (this->_nav->alm) { //_nav->alm = (alm_t *)realloc(_nav->alm, MAXSAT * sizeof(alm_t)); } - + else { this->_nav->alm = (alm_t *) malloc(2 * MAXSAT * sizeof(alm_t)); @@ -233,7 +235,7 @@ void Navigation::deleteAlmanac() { /* free(_nav->alm); - + if (_nav->alm) { free(_nav->alm); @@ -255,7 +257,7 @@ void Navigation::allocateUTCGPS(int n) //GPS { _nav->utc_gps = (double *)realloc(_nav->utc_gps, n * sizeof(double)); } - + else { _nav->utc_gps = (double *) malloc(n * sizeof(double)); @@ -284,7 +286,7 @@ void Navigation::allocateUTCGlo(int n) //GLONASS { _nav->utc_glo = (double *)realloc(_nav->utc_glo, n * sizeof(double)); } - + else { _nav->utc_glo = (double *) malloc(n * sizeof(double)); @@ -312,7 +314,7 @@ void Navigation::allocateUTCGal(int n) //Galileo { _nav->utc_gal = (double *)realloc(_nav->utc_gal, n * sizeof(double)); } - + else { _nav->utc_gal = (double *) malloc(n * sizeof(double)); @@ -340,7 +342,7 @@ void Navigation::allocateUTCQZS(int n) //QZS { _nav->utc_qzs = (double *)realloc(_nav->utc_qzs, n * sizeof(double)); } - + else { _nav->utc_qzs = (double *) malloc(n * sizeof(double)); @@ -368,7 +370,7 @@ void Navigation::allocateUTCCMP(int n) //BeiDou { _nav->utc_cmp = (double *)realloc(_nav->utc_cmp, n * sizeof(double)); } - + else { _nav->utc_cmp = (double *) malloc(n * sizeof(double)); @@ -396,7 +398,7 @@ void Navigation::allocateUTCSBAS(int n) //SBAS { _nav->utc_sbs = (double *)realloc(_nav->utc_sbs, n * sizeof(double)); } - + else { _nav->utc_sbs = (double *) malloc(n * sizeof(double)); @@ -425,7 +427,7 @@ void Navigation::allocateIonGPS(int n) //GPS { _nav->ion_gps = (double *)realloc(_nav->ion_gps, n * sizeof(double)); } - + else { _nav->ion_gps = (double *) malloc(n * sizeof(double)); @@ -453,7 +455,7 @@ void Navigation::allocateIonGal(int n) //Galileo { _nav->utc_gal = (double *)realloc(_nav->utc_gal, n * sizeof(double)); } - + else { _nav->utc_gal = (double *) malloc(n * sizeof(double)); @@ -481,7 +483,7 @@ void Navigation::allocateIonQZS(int n) //QZS { _nav->utc_qzs = (double *)realloc(_nav->utc_qzs, n * sizeof(double)); } - + else { _nav->utc_qzs = (double *) malloc(n * sizeof(double)); @@ -509,7 +511,7 @@ void Navigation::allocateIonCMP(int n) //BeiDou { _nav->utc_cmp = (double *)realloc(_nav->utc_cmp, n * sizeof(double)); } - + else { _nav->utc_cmp = (double *) malloc(n * sizeof(double)); @@ -538,7 +540,7 @@ void Navigation::allocatelam(int n) { _nav->lam = (double *)realloc(_nav->lam, n * sizeof(double)); } - + else { _nav->lam = (double *) malloc(n * sizeof(double)); @@ -566,7 +568,7 @@ void Navigation::allocatecbias(int n) { _nav->cbias = (double *)realloc(_nav->cbias, n * sizeof(double)); } - + else { _nav->cbias = (double *) malloc(n * sizeof(double)); @@ -594,7 +596,7 @@ void Navigation::allocatewlbias(int n) { _nav->wlbias = (double *)realloc(_nav->wlbias, n * sizeof(double)); } - + else { _nav->wlbias = (double *) malloc(n * sizeof(double)); @@ -622,7 +624,7 @@ void Navigation::allocateglocpbias(int n) { _nav->glo_cpbias = (double *)realloc(_nav->glo_cpbias, n * sizeof(double)); } - + else { _nav->glo_cpbias = (double *) malloc(n * sizeof(double)); @@ -650,7 +652,7 @@ void Navigation::allocateglofcn(int n) { _nav->glo_fcn = (char *)realloc(_nav->glo_fcn, n * sizeof(char)); } - + else { _nav->glo_fcn = (char *) malloc(n * sizeof(char)); @@ -678,7 +680,7 @@ void Navigation::allocatepcv(int n) { _nav->pcvs = (pcv_t *)realloc(_nav->pcvs, n * sizeof(pcv_t)); } - + else { _nav->pcvs = (pcv_t*) malloc(n * sizeof(pcv_t)); @@ -706,7 +708,7 @@ void Navigation::allocatesbsion(int n) { _nav->sbsion = (sbsion_t *)realloc(_nav->sbsion, n * sizeof(sbsion_t)); } - + else { _nav->sbsion = (sbsion_t*) malloc(n * sizeof(sbsion_t)); @@ -727,5 +729,3 @@ void Navigation::deletesbsion() } } */ - -