Changeset 689 in ntrip
- Timestamp:
- Feb 15, 2008, 1:42:04 PM (17 years ago)
- Location:
- trunk/BNC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/RTCM3/RTCM3Decoder.cpp
r658 r689 72 72 73 73 const int LEAPSECONDS = 14; /* only needed for approx. time */ 74 75 // Ensure, that the Decoder uses the "old" convention for the data structure for Rinex2. Perlt 76 _Parser.rinex3 = 0; 74 77 75 78 time_t tim; … … 133 136 for (int jj = 0; jj < _Parser.numdatatypesGPS; jj++) { 134 137 int v = 0; 135 int df = _Parser.dataflag[jj]; 136 int pos = _Parser.datapos[jj]; 138 // sepearated declaration and initalization of df and pos. Perlt 139 int df; 140 int pos; 141 df = _Parser.dataflag[jj]; 142 pos = _Parser.datapos[jj]; 137 143 if ( (_Parser.Data.dataflags[ii] & df) 138 144 && !isnan(_Parser.Data.measdata[ii][pos]) … … 154 160 else 155 161 { 156 if (_Parser.dataflag[jj] & GNSSDF_C1DATA) { 157 obs->_o.C1 = _Parser.Data.measdata[ii][_Parser.datapos[jj]]; 158 } 159 else if (_Parser.dataflag[jj] & GNSSDF_C2DATA) { 160 obs->_o.C2 = _Parser.Data.measdata[ii][_Parser.datapos[jj]]; 161 } 162 else if (_Parser.dataflag[jj] & GNSSDF_P1DATA) { 163 obs->_o.P1 = _Parser.Data.measdata[ii][_Parser.datapos[jj]]; 164 } 165 else if (_Parser.dataflag[jj] & GNSSDF_P2DATA) { 166 obs->_o.P2 = _Parser.Data.measdata[ii][_Parser.datapos[jj]]; 162 // variables df and pos are used consequently. Perlt 163 if (df & GNSSDF_C1DATA) { 164 obs->_o.C1 = _Parser.Data.measdata[ii][pos]; 165 } 166 else if (df & GNSSDF_C2DATA) { 167 obs->_o.C2 = _Parser.Data.measdata[ii][pos]; 168 } 169 else if (df & GNSSDF_P1DATA) { 170 obs->_o.P1 = _Parser.Data.measdata[ii][pos]; 171 } 172 else if (df & GNSSDF_P2DATA) { 173 obs->_o.P2 = _Parser.Data.measdata[ii][pos]; 167 174 } 168 175 else if (df & (GNSSDF_L1CDATA|GNSSDF_L1PDATA)) { -
trunk/BNC/RTCM3/rtcm3torinex.c
r551 r689 1 1 /* 2 2 Converter for RTCM3 data to RINEX. 3 $Id: rtcm3torinex.c,v 1. 25 2007/10/25 09:37:42 stoeckerExp $3 $Id: rtcm3torinex.c,v 1.8 2007/10/28 08:50:37 mervart Exp $ 4 4 Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@alberding.eu> 5 5 … … 51 51 52 52 /* CVS revision and version */ 53 static char revisionstr[] = "$Revision: 1. 25$";53 static char revisionstr[] = "$Revision: 1.8 $"; 54 54 55 55 #ifndef COMPILEDATE … … 846 846 } 847 847 848 // Inserted parts for BNC Perlt 849 #ifdef NO_RTCM3_MAIN 850 #define NUMSTARTSKIP 1 851 #else 848 852 #define NUMSTARTSKIP 3 853 #endif 854 849 855 void HandleHeader(struct RTCM3ParserData *Parser) 850 856 { 857 #ifdef NO_RTCM3_MAIN 858 // Part of Handle Header for data request for BNC (independently on actually delivered data), original is commented out by ifndef NO_RTCM3_MAIN. Perlt 859 int i; 860 if(Parser->rinex3) 861 { 862 #define CHECKFLAGSNEW(a, b, c) \ 863 { \ 864 Parser->dataflag##a[Parser->numdatatypes##a] = GNSSDF_##b##DATA; \ 865 Parser->datapos##a[Parser->numdatatypes##a] = GNSSENTRY_##b##DATA; \ 866 ++Parser->numdatatypes##a; \ 867 } 868 869 CHECKFLAGSNEW(GPS, C1, C1C) 870 CHECKFLAGSNEW(GPS, L1C, L1C) 871 CHECKFLAGSNEW(GPS, D1C, D1C) 872 CHECKFLAGSNEW(GPS, S1C, S1C) 873 CHECKFLAGSNEW(GPS, P1, C1P) 874 CHECKFLAGSNEW(GPS, L1P, L1P) 875 CHECKFLAGSNEW(GPS, D1P, D1P) 876 CHECKFLAGSNEW(GPS, S1P, S1P) 877 CHECKFLAGSNEW(GPS, P2, C2P) 878 CHECKFLAGSNEW(GPS, L2P, L2P) 879 CHECKFLAGSNEW(GPS, D2P, D2P) 880 CHECKFLAGSNEW(GPS, S2P, S2P) 881 CHECKFLAGSNEW(GPS, C2, C2X) 882 CHECKFLAGSNEW(GPS, L2C, L2X) 883 CHECKFLAGSNEW(GPS, D2C, D2X) 884 CHECKFLAGSNEW(GPS, S2C, S2X) 885 CHECKFLAGSNEW(GLO, C1, C1C) 886 CHECKFLAGSNEW(GLO, L1C, L1C) 887 CHECKFLAGSNEW(GLO, D1C, D1C) 888 CHECKFLAGSNEW(GLO, S1C, S1C) 889 CHECKFLAGSNEW(GLO, P1, C1P) 890 CHECKFLAGSNEW(GLO, L1P, L1P) 891 CHECKFLAGSNEW(GLO, D1P, D1P) 892 CHECKFLAGSNEW(GLO, S1P, S1P) 893 CHECKFLAGSNEW(GLO, P2, C2P) 894 CHECKFLAGSNEW(GLO, L2P, L2P) 895 CHECKFLAGSNEW(GLO, D2P, D2P) 896 CHECKFLAGSNEW(GLO, S2P, S2P) 897 CHECKFLAGSNEW(GLO, C2, C2C) 898 CHECKFLAGSNEW(GLO, L2C, L2C) 899 CHECKFLAGSNEW(GLO, D2C, D2C) 900 CHECKFLAGSNEW(GLO, S2C, S2C) 901 902 } 903 else 904 { 905 #define CHECKFLAGS(a, b) \ 906 { \ 907 if(data[RINEXENTRY_##b##DATA]) \ 908 { \ 909 Parser->dataflagGPS[data[RINEXENTRY_##b##DATA]-1] = GNSSDF_##a##DATA; \ 910 Parser->dataposGPS[data[RINEXENTRY_##b##DATA]-1] = GNSSENTRY_##a##DATA; \ 911 } \ 912 else \ 913 { \ 914 Parser->dataflag[Parser->numdatatypesGPS] = GNSSDF_##a##DATA; \ 915 Parser->datapos[Parser->numdatatypesGPS] = GNSSENTRY_##a##DATA; \ 916 data[RINEXENTRY_##b##DATA] = ++Parser->numdatatypesGPS; \ 917 } \ 918 } 919 920 int data[RINEXENTRY_NUMBER]; 921 for(i = 0; i < RINEXENTRY_NUMBER; ++i) data[i] = 0; 922 923 CHECKFLAGS(C1,C1) 924 CHECKFLAGS(C2,C2) 925 CHECKFLAGS(P1,P1) 926 CHECKFLAGS(P2,P2) 927 CHECKFLAGS(L1C,L1) 928 CHECKFLAGS(L1P,L1) 929 CHECKFLAGS(L2C,L2) 930 CHECKFLAGS(L2P,L2) 931 CHECKFLAGS(D1C,D1) 932 CHECKFLAGS(D1P,D1) 933 CHECKFLAGS(D2C,D2) 934 CHECKFLAGS(D2P,D2) 935 CHECKFLAGS(S1C,S1) 936 CHECKFLAGS(S1P,S1) 937 CHECKFLAGS(S2C,S2) 938 CHECKFLAGS(S2P,S2) 939 } 940 // End Part of Handle Header for BNC Perlt 941 #endif 942 943 #ifndef NO_RTCM3_MAIN 851 944 struct HeaderData hdata; 852 945 char thebuffer[MAXHEADERBUFFERSIZE]; … … 1139 1232 } 1140 1233 1141 #ifndef NO_RTCM3_MAIN1142 1234 for(i = 0; i < hdata.numheaders; ++i) 1143 1235 { … … 1536 1628 1537 1629 #ifndef NO_RTCM3_MAIN 1538 static char datestr[] = "$Date: 2007/10/2 5 09:37:42$";1630 static char datestr[] = "$Date: 2007/10/28 08:50:37 $"; 1539 1631 1540 1632 /* The string, which is send as agent in HTTP request */ -
trunk/BNC/bncrinex.cpp
r675 r689 404 404 else if (line.indexOf("# / TYPES OF OBSERV") != -1) { 405 405 if (_rinexVers == 3) { 406 _out << "G 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 407 _out << "R 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 408 _out << "S 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 406 // Changed declaration of data types, consistent with Rinex3 Perlt 407 _out << "G 10 C1C C1P L1C S1C C2X C2P L2X S2X L2P S2P SYS / # / OBS TYPES" << endl; 408 _out << "R 10 C1C C1P L1C S1C C2C C2P L2C S2C L2P S2P SYS / # / OBS TYPES" << endl; 409 _out << "S 3 C1C L1C S1C SYS / # / OBS TYPES" << endl; 409 410 } 410 411 else { … … 420 421 _mountPoint.path())).leftJustified(60, ' ', true); 421 422 _out << hlp.toAscii().data() << "COMMENT" << endl; 423 } 424 // Added header line for Rinex3 regarding mandatory MARKER TYPE field Perlt 425 else if (line.indexOf("MARKER NAME") != -1) { 426 if (_rinexVers == 3) { 427 _out << line.toAscii().data() << endl; 428 _out << setw(71) << "GEODETIC MARKER TYPE" << endl; 429 } 430 else { 431 _out << line.toAscii().data() << endl; 432 } 433 // End 422 434 } 423 435 else { … … 447 459 _out.setf(ios::left); 448 460 _out << setw(60) << _statID.data() << "MARKER NAME" << endl; 461 // Added header line for Rinex3 regarding mandatory MARKER TYPE field Perlt 462 if (_rinexVers == 3) { 463 _out << setw(60) << "unknown" << "MARKER TYPE " << endl; 464 } 465 // End 449 466 _out << setw(60) << "unknown unknown" << "OBSERVER / AGENCY" << endl; 450 467 _out << setw(20) << "unknown" … … 464 481 << " " << "ANTENNA: DELTA H/E/N" << endl; 465 482 if (_rinexVers == 3) { 466 _out << "G 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 467 _out << "R 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 468 _out << "S 6 C1C L1C S1C C2P L2P S2P SYS / # / OBS TYPES" << endl; 483 // Changed declaration of data types, consistent with Rinex3 Perlt 484 _out << "G 10 C1C C1P L1C S1C C2X C2P L2X S2X L2P S2P SYS / # / OBS TYPES" << endl; 485 _out << "R 10 C1C C1P L1C S1C C2C C2P L2C S2C L2P S2P SYS / # / OBS TYPES" << endl; 486 _out << "S 3 C1C L1C S1C SYS / # / OBS TYPES" << endl; 469 487 470 488 } … … 545 563 // --------------- 546 564 if (_rinexVers == 3) { 565 char sbasflag = 'S'; 547 566 _out << datTim.toString("> yyyy MM dd hh mm ").toAscii().data() 548 567 << setw(10) << setprecision(7) << sec … … 552 571 while (it.hasNext()) { 553 572 p_obs obs = it.next(); 573 // Changed data output, C1P, C2C|X, L2C|X, S2C|X added. Changed Output for SBAS Perlt 574 if (sbasflag != obs->_o.satSys) { 554 575 _out << obs->_o.satSys 555 576 << setw(2) << setfill('0') << obs->_o.satNum << setfill(' ') 556 577 << setw(14) << setprecision(3) << obs->_o.C1 << " " 578 << setw(14) << setprecision(3) << obs->_o.P1 << " " 557 579 << setw(14) << setprecision(3) << obs->_o.L1 << " " 558 580 << setw(1) << obs->_o.SNR1 559 581 << setw(14) << setprecision(3) << obs->_o.S1 << " " 560 << setw(14) << setprecision(3) << obs->_o.P2 << " " 561 << setw(14) << setprecision(3) << obs->_o.L2 << " " 562 << setw(1) << obs->_o.SNR2 563 << setw(14) << setprecision(3) << obs->_o.S2 564 << endl; 582 << setw(14) << setprecision(3) << obs->_o.C2 << " " 583 << setw(14) << setprecision(3) << obs->_o.P2 << " " ; 584 if ((obs->_o.C2 != 0.0) && (obs->_o.P2 == 0.0)) { 585 _out << setw(14) << setprecision(3) << obs->_o.L2 << " " 586 << setw(1) << obs->_o.SNR2 587 << setw(14) << setprecision(3) << obs->_o.S2 << " " 588 << " "; 589 } 590 else { 591 _out << " " 592 << setw(14) << setprecision(3) << obs->_o.L2 << " " 593 << setw(1) << obs->_o.SNR2 594 << setw(14) << setprecision(3) << obs->_o.S2; 595 } 596 _out << endl; 597 } 598 else { 599 _out << obs->_o.satSys 600 << setw(2) << setfill('0') << obs->_o.satNum << setfill(' ') 601 << setw(14) << setprecision(3) << obs->_o.C1 << " " 602 << setw(14) << setprecision(3) << obs->_o.P1 << " " 603 << setw(14) << setprecision(3) << obs->_o.L1 << " " 604 << setw(1) << obs->_o.SNR1 605 << setw(14) << setprecision(3) << obs->_o.S1 << endl; 606 } 565 607 delete obs; 566 608 } -
trunk/BNC/bncwindow.cpp
r686 r689 607 607 608 608 getThread->start(); 609 _mountPointsTable->setSortingEnabled(true);610 609 } 611 610 }
Note:
See TracChangeset
for help on using the changeset viewer.