diff --git a/gpssim.c b/gpssim.c index 3815d0a..17638ce 100644 --- a/gpssim.c +++ b/gpssim.c @@ -38,6 +38,9 @@ typedef int bool; /*! \brief Number of words */ #define N_DWRD (N_SBF*N_DWRD_SBF) // 10 word per subframe +/*! \brief C/A code sequence length */ +#define CA_SEQ_LEN (1023) + #define SECONDS_IN_WEEK 604800.0 #define SECONDS_IN_HALF_WEEK 302400.0 #define SECONDS_IN_DAY 86400.0 @@ -218,7 +221,7 @@ typedef struct typedef struct { int prn; /*< PRN Number */ - int ca[1023]; /*< C/A Sequence */ + int ca[CA_SEQ_LEN]; /*< C/A Sequence */ double f_carr; /*< Carrier frequency */ double f_code; /*< Code frequency */ double carr_phase; /*< Carrier phase */ @@ -245,7 +248,9 @@ void codegen(int *ca, int prn) 473, 474, 509, 512, 513, 514, 515, 516, 859, 860, 861, 862}; - int g1[1023], g2[1023], r1[N_DWRD_SBF], r2[N_DWRD_SBF], c1, c2; + int g1[CA_SEQ_LEN], g2[CA_SEQ_LEN]; + int r1[N_DWRD_SBF], r2[N_DWRD_SBF]; + int c1, c2; int i,j; if (prn<1 || prn>32) @@ -254,7 +259,7 @@ void codegen(int *ca, int prn) for (i=0; ig0.sec)+6.0) - rho0.range/SPEED_OF_LIGHT)*1000.0; ims = (int)ms; - chan->code_phase = (ms-(double)ims)*1023.0; // in chip + chan->code_phase = (ms-(double)ims)*CA_SEQ_LEN; // in chip chan->iword = ims/600; // 1 word = 30 bits = 600 ms ims -= chan->iword*600; @@ -1633,9 +1638,9 @@ int main(int argc, char *argv[]) // Update code phase chan[i].code_phase += chan[i].f_code * delt; - if (chan[i].code_phase>=1023.0) + if (chan[i].code_phase>=CA_SEQ_LEN) { - chan[i].code_phase -= 1023.0; + chan[i].code_phase -= CA_SEQ_LEN; chan[i].icode++;