Changeset 1278 in ntrip


Ignore:
Timestamp:
Dec 6, 2008, 4:30:37 PM (16 years ago)
Author:
weber
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/RTCM3/rtcm3torinex.c

    r1239 r1278  
    11/*
    22  Converter for RTCM3 data to RINEX.
    3   $Id: rtcm3torinex.c,v 1.34 2008/11/26 10:14:46 stoecker Exp $
     3  $Id: rtcm3torinex.c,v 1.36 2008/12/03 08:33:16 stoecker Exp $
    44  Copyright (C) 2005-2008 by Dirk Stöcker <stoecker@alberding.eu>
    55
     
    5151
    5252/* CVS revision and version */
    53 static char revisionstr[] = "$Revision: 1.34 $";
     53static char revisionstr[] = "$Revision: 1.36 $";
    5454
    5555#ifndef COMPILEDATE
     
    459459        int lastlockl2[64];
    460460        struct gnssdata *gnss;
    461         int i, num, wasamb=0;
     461        int i, numsats, wasamb=0;
    462462
    463463        for(i = 0; i < 64; ++i)
     
    482482
    483483        GETBITS(syncf,1) /* sync */
    484         GETBITS(i,5)
    485         gnss->numsats += i;
     484        GETBITS(numsats,5)
    486485        SKIPBITS(4) /* smind, smint */
    487486
    488         for(num = gnss->numsats-i; num < gnss->numsats; ++num)
     487        while(numsats--)
    489488        {
    490489          int sv, code, l1range, c,l,s,ce,le,se,amb=0;
    491 
    492           GETBITS(sv, 6);
    493           gnss->satellites[num] = (sv < 40 ? sv : sv+80);
     490          int fullsat, num;
     491
     492          GETBITS(sv, 6)
     493          fullsat = sv < 40 ? sv : sv+80;
     494          for(num = 0; num < gnss->numsats
     495          && fullsat != gnss->satellites[num]; ++num)
     496            ;
     497
     498          if(num == gnss->numsats)
     499            gnss->satellites[gnss->numsats++] = fullsat;
     500
    494501          /* L1 */
    495502          GETBITS(code, 1);
     
    606613            ret = 2;
    607614        }
     615#ifdef NO_RTCM3_MAIN
     616        else
     617          ret = type;
     618#endif /* NO_RTCM3_MAIN */
    608619      }
    609620      break;
     
    613624        int lastlockl2[64];
    614625        struct gnssdata *gnss;
    615         int i, num;
     626        int i, numsats;
    616627        int wasamb=0;
    617628
     
    638649
    639650        GETBITS(syncf,1) /* sync */
    640         GETBITS(i,5)
    641         gnss->numsats += i;
     651        GETBITS(numsats,5)
    642652
    643653        SKIPBITS(4) /* smind, smint */
    644654
    645         for(num = gnss->numsats-i; num < gnss->numsats; ++num)
     655        while(numsats--)
    646656        {
    647657          int sv, code, l1range, c,l,s,ce,le,se,amb=0;
    648658          int freq;
     659          int fullsat, num;
    649660
    650661          GETBITS(sv, 6)
    651           gnss->satellites[num] = sv-1 + PRN_GLONASS_START;
     662          fullsat = sv-1 + PRN_GLONASS_START;
     663          for(num = 0; num < gnss->numsats
     664          && fullsat != gnss->satellites[num]; ++num)
     665            ;
     666
     667          if(num == gnss->numsats)
     668            gnss->satellites[gnss->numsats++] = fullsat;
     669
    652670          /* L1 */
    653671          GETBITS(code, 1)
     
    750768            gnss->measdata[num][le] /= GLO_WAVELENGTH_L2(freq-7);
    751769          }
    752           if(!sv || sv > 24)
    753           {
    754             --num; --gnss->numsats;
    755           }
     770          if(!sv || sv > 24) /* illegal, remove it again */
     771            --gnss->numsats;
    756772        }
    757773        for(i = 0; i < 64; ++i)
     
    772788            ret = 2;
    773789        }
     790#ifdef NO_RTCM3_MAIN
     791        else
     792          ret = type;
     793#endif /* NO_RTCM3_MAIN */
    774794      }
    775795      break;
     
    16651685
    16661686#ifndef NO_RTCM3_MAIN
    1667 static char datestr[]     = "$Date: 2008/11/26 10:14:46 $";
     1687static char datestr[]     = "$Date: 2008/12/03 08:33:16 $";
    16681688
    16691689/* The string, which is send as agent in HTTP request */
Note: See TracChangeset for help on using the changeset viewer.