Changeset 2677 in ntrip for trunk/BNC/RTCM3


Ignore:
Timestamp:
Nov 13, 2010, 11:11:38 AM (14 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/RTCM3/RTCM3Decoder.cpp

    r2676 r2677  
    165165      _checkMountPoint == _staID || _checkMountPoint == "ALL") {
    166166
    167     for (int ii = 0; ii < bufLen; ii++) {
    168       parser.Message[parser.MessageSize++] = buffer[ii];
     167    for (int iByte = 0; iByte < bufLen; iByte++) {
     168
     169      parser.Message[parser.MessageSize++] = buffer[iByte];
    169170
    170171      if (parser.MessageSize >= parser.NeedBytes) {
     
    232233            }
    233234           
    234             for (int ii = 0; ii < parser.Data.numsats; ii++) {
     235            for (int iSat = 0; iSat < parser.Data.numsats; iSat++) {
     236
    235237              p_obs obs   = new t_obs();
    236               int   satID = parser.Data.satellites[ii];
     238              int   satID = parser.Data.satellites[iSat];
    237239
    238240              // GPS
     
    298300              // Loop over all data types
    299301              // ------------------------
    300               for (int jj = 0; jj < parser.numdatatypesGPS; jj++) {
    301                 int v = 0;
    302                 // sepearated declaration and initalization of df and pos. Perlt
    303                 int df;
    304                 int pos;
    305                 df = parser.dataflag[jj];
    306                 pos = parser.datapos[jj];
    307                 if ( (parser.Data.dataflags[ii] & df)
    308                      && !isnan(parser.Data.measdata[ii][pos])
    309                      && !isinf(parser.Data.measdata[ii][pos])) {
    310                   v = 1;
     302              for (int iDTyp = 0; iDTyp < parser.numdatatypesGPS; ++iDTyp) {
     303
     304                bool obsPresent = false;
     305
     306                int df  = parser.dataflag[iDTyp];
     307                int pos = parser.datapos[iDTyp];
     308                if ( (parser.Data.dataflags[iSat] & df)
     309                     && !isnan(parser.Data.measdata[iSat][pos])
     310                     && !isinf(parser.Data.measdata[iSat][pos])) {
     311                  obsPresent = true;;
    311312                }
    312313                else {
    313                   df = parser.dataflagGPS[jj];
    314                   pos = parser.dataposGPS[jj];
    315                   if ( (parser.Data.dataflags[ii] & df)
    316                        && !isnan(parser.Data.measdata[ii][pos])
    317                        && !isinf(parser.Data.measdata[ii][pos])) {
    318                     v = 1;
     314                  df  = parser.dataflagGPS[iDTyp];
     315                  pos = parser.dataposGPS[iDTyp];
     316                  if ( (parser.Data.dataflags[iSat] & df)
     317                       && !isnan(parser.Data.measdata[iSat][pos])
     318                       && !isinf(parser.Data.measdata[iSat][pos])) {
     319                    obsPresent = true;
    319320                  }
    320321                }
    321                 if (!v) {
     322                if (!obsPresent) {
    322323                  continue;
    323324                }
    324                 else
    325                 {
    326                   int isat = (parser.Data.satellites[ii] < 120
    327                               ? parser.Data.satellites[ii]
    328                               : parser.Data.satellites[ii] - 80);
    329                  
    330                   // variables df and pos are used consequently. Perlt
    331                   if      (df & GNSSDF_C1DATA) {
    332                     obs->_o.C1 = parser.Data.measdata[ii][pos];
    333                   }
    334                   else if (df & GNSSDF_C2DATA) {
    335                     obs->_o.C2 = parser.Data.measdata[ii][pos];
    336                   }
    337                   else if (df & GNSSDF_P1DATA) {
    338                     obs->_o.P1 = parser.Data.measdata[ii][pos];
    339                   }
    340                   else if (df & GNSSDF_P2DATA) {
    341                     obs->_o.P2 = parser.Data.measdata[ii][pos];
    342                   }
    343                   else if (df & (GNSSDF_L1CDATA|GNSSDF_L1PDATA)) {
    344                     obs->_o.L1            = parser.Data.measdata[ii][pos];
    345                     obs->_o.SNR1          = parser.Data.snrL1[ii];
    346                     obs->_o.lock_timei_L1 = parser.lastlockGPSl1[isat];
    347                   }
    348                   else if (df & (GNSSDF_L2CDATA|GNSSDF_L2PDATA)) {
    349                     obs->_o.L2            = parser.Data.measdata[ii][pos];
    350                     obs->_o.SNR2          = parser.Data.snrL2[ii];
    351                     obs->_o.lock_timei_L2 = parser.lastlockGPSl2[isat];
    352                   }
    353                   else if (df & (GNSSDF_S1CDATA|GNSSDF_S1PDATA)) {
    354                     obs->_o.S1   = parser.Data.measdata[ii][pos];
    355                   }
    356                   else if (df & (GNSSDF_S2CDATA|GNSSDF_S2PDATA)) {
    357                     obs->_o.S2   = parser.Data.measdata[ii][pos];
    358                   }
     325
     326                if      (df & GNSSDF_C1DATA) {
     327                  obs->_o.C1 = parser.Data.measdata[iSat][pos];
     328                }
     329                else if (df & GNSSDF_C2DATA) {
     330                  obs->_o.C2 = parser.Data.measdata[iSat][pos];
     331                }
     332                else if (df & GNSSDF_P1DATA) {
     333                  obs->_o.P1 = parser.Data.measdata[iSat][pos];
     334                }
     335                else if (df & GNSSDF_P2DATA) {
     336                  obs->_o.P2 = parser.Data.measdata[iSat][pos];
     337                }
     338                else if (df & (GNSSDF_L1CDATA|GNSSDF_L1PDATA)) {
     339                  obs->_o.L1   = parser.Data.measdata[iSat][pos];
     340                  obs->_o.SNR1 = parser.Data.snrL1[iSat];
     341                }
     342                else if (df & (GNSSDF_L2CDATA|GNSSDF_L2PDATA)) {
     343                  obs->_o.L2   = parser.Data.measdata[iSat][pos];
     344                  obs->_o.SNR2 = parser.Data.snrL2[iSat];
     345                }
     346                else if (df & (GNSSDF_S1CDATA|GNSSDF_S1PDATA)) {
     347                  obs->_o.S1   = parser.Data.measdata[iSat][pos];
     348                }
     349                else if (df & (GNSSDF_S2CDATA|GNSSDF_S2PDATA)) {
     350                  obs->_o.S2   = parser.Data.measdata[iSat][pos];
    359351                }
    360352              }
Note: See TracChangeset for help on using the changeset viewer.