From a095a0657a45ac317aed21223e4b72f448ec8801 Mon Sep 17 00:00:00 2001 From: Bryan Parsons Date: Fri, 22 Jun 2018 12:51:16 -0500 Subject: [PATCH] GPSTk v2.10.3 --- CMakeLists.txt | 2 +- ChangeLog.md | 144 +++++++++++++++++++++++++++++++++++++++++++++++++ Doxyfile | 2 +- NEWS.md | 3 ++ RELNOTES.md | 89 ++++++++++++++---------------- 5 files changed, 189 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d9dc2b72f..a2e8cb606 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ cmake_minimum_required( VERSION 2.8.5 ) project( GPSTK ) set( GPSTK_VERSION_MAJOR "2" ) set( GPSTK_VERSION_MINOR "10" ) -set( GPSTK_VERSION_PATCH "2" ) +set( GPSTK_VERSION_PATCH "3" ) set( GPSTK_VERSION "${GPSTK_VERSION_MAJOR}.${GPSTK_VERSION_MINOR}.${GPSTK_VERSION_PATCH}" ) # Test data file source directory diff --git a/ChangeLog.md b/ChangeLog.md index e58c885a0..6e639a5dc 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,65 @@ +Version 2.10.2 Friday, June 22, 2018 + + General modifications + --------------------- + - Updated unit tests to comply with logic changes. + - Test Additions and Cleanup + - Various Bug and Compile Warning Fixes + + Modifications by Author + --------------------- +Andrew Kuck (3): + Fixed calculation error in Ionosphere Free Range calculation. + Fixed sign error on troposphere correction. + Updated unit tests to comply with logic changes. + +Anthony Hughes (1): + Ensured full initialization of Stats objects and fixed a memory leak in OrbitEph::timeDisplay. + +Bryan Parsons (11): + Merge branch 'issue_340_Gal_Ellip' into 'master' + Merge branch 'change_confusing_ObsID_comment' into 'master' + Merge branch 'getXvt_unhealthy_SVs' into 'master' + Merge branch 'issue_341_GalSupport' into 'master' + Merge branch 'issue_342_stats' into 'master' + Merge branch 'issue_343_yuma_reader_fix' into 'master' + Merge branch 'ord_fix' into 'master' + Merge branch '345-add-support-in-commandoption-for-custom-help' into 'master' + Merge branch '346-restore-missing-gpsweekzcount-math' into 'master' + Merge branch 'issue_348_OrbAlmStore' into 'master' + Merge branch 'issue_347_Galileo_Antex_Offsets' into 'master' + +Miquela Stein (1): + updated yuma reader to work without newline at end of file + +Richard Ji-Cathriner (1): + Change documentation of ObsID phase units + +johnk (4): + Add support for generalized help-like options and update BasicFramework to use them + Tests for help-like options + Clean up this train wreck + Add the lost math functions back to GPSWeekZcount + +nmerlene (2): + Added ability to use getXvt() calls on unhealthy SVs in XvtStore objects returned by EphReader + Changed implementation of health status in GloEphemerisStore + +renfrob (9): + Adding Ellipsoid model for Galileo + Adding, clarifying Galileo E5a, E5b, E5a+b definitions + Refining Galileo nav msg IDs + Updating NavID test + Updating Rinex tests for Galileo L5 to E5 + Adding Galileo antenna capbility + Removing health checks. Implementing a separate fit interval check. + Adding getXvt() tests + Merge branch 'master' into issue_347_Galileo_Antex_Offsets + + + ################################################# + + Version 2.10.2 Thursday, April 19, 2018 General modifications @@ -8,6 +70,88 @@ Version 2.10.2 Thursday, April 19, 2018 Modifications by Author --------------------- +Andrew Kuck (20): + Added ord routine calculation header file for review. + Added initial implementation of several methods, as well as initial unit tests and regression tests against the original methods. + Changed computeRelativityCorrection to virtual to allow overriding in mock-classes. + Renamed test for consistency. + Style cleanup based on cpplint. + Updated documentation to be doxygen compatible. + First pass implementations of RawRange2,3,4 - Includes single unit test and mocked regression. + Added ORD methods to exposed methods in python. + Added lint check to the ci-pipeline. + Temporary commit. + Remove known failing test, and reference to personal copies of gtest/gmock libs. + Rewrote the cmake file to find either debian-style or redhat-style gtest/gmock installation + Try generating a coverage report on core only + Added implementations for IonosphereFreeRange(), IonosphereModelCorrection(), TroposphereCorrection() with unit tests. + Changed IonosphereModelCorrection to take a double frequency + Removed stop-gap code to see if googletest has been installed anywhere. + Fix coverage numbers. + Add additional search paths for gmock. + Added coverage build switch. Enabled _only_ for core_build. + Added allow-failures on static analysis. + +Bryan Parsons (16): + Added line to GPSTKConfig.cmake to allow dependent projects to find header files regardless of explicit or implicit paths. + Merge branch 'Explicit_Header_Fix' into 'master' + Merge branch 'GPSTk_2_10_1' into 'master' + Merge branch 'EngEphHealthFix' into 'master' + Merge branch 'issue_335_scanBrdc' into 'master' + Merge branch 'issue_333' into 'master' + Merge branch 'Add_demodulator_status_obs_type' into 'master' + Merge branch 'rowcheck_rin3' into 'master' + Merge branch 'ord_refactor' into 'master' + Merge branch 'SVNumXRef_update54' into 'master' + Merge branch '54_18_corrected' into 'master' + Merge branch 'issue_333' into 'master' + Merge branch 'issue_339_sp3d_support' into 'master' + Fixing bug that introduced false positive on Downstream GPSTk Core build. Making this test an Allowed Failure at this time. + Merge branch 'gitlab_ci_bug' into 'master' + GPSTk v2.10.2 + +John H. Price (1): + Use newer rinex classes to allow RINEX 3 file checking + +Jon C. Little (1): + Corrected prettying print of eph health bits + +Nick Boeker (10): + Updated references for 54/18 and 34/18 and updated PRN 4 gap + Fixed incorrect Syntax + Fixed incorrect end time for 54/18 + Updated for SP3d reading + Everything but bc2sp3 working + SP3d successfully passes all build tests + Merge remote-tracking branch 'origin/master' into issue_339_sp3d_support + Fixed minor issues + Fixed another small thing + Removed unused debug statement + +Richard Ji-Cathriner (1): + Add ObservationType for demodulator status codes + +johnk (15): + Add helper methods for computing appropriate buffer sizes. Add a filter class for putting nav data in time order. Change LNavEphMaker to always accept all nav data. + Fix include path + Merge remote-tracking branch 'origin/master' into issue_333 + Add name strings to nav filter classes to help reduce redundant code. + Make accept/reject methods of NavFilter protected as they should only be called by derived classes. Undo previous changes made to LNavEphMaker that broke it and document the situation a bit better. + Fix memory leak + Change iterator class to work with pre-c++11 + fix another memory leak + Fix typo + Eliminate seg fault due to empty map + Merge remote-tracking branch 'origin/master' into issue_333 + Fix a problem causing seg faults + Merge remote-tracking branch 'origin/master' into issue_333 + Merge remote-tracking branch 'origin/master' into issue_333 + Filter for forcing time-order of legacy nav subframe data + +renfrob (2): + Fixing week rollover with negative HOW bug + Adding mistagging PRN detection to scanBrdcFile + diff --git a/Doxyfile b/Doxyfile index 45cc0b971..ea61038df 100644 --- a/Doxyfile +++ b/Doxyfile @@ -32,7 +32,7 @@ PROJECT_NAME = "GPS ToolKit Software Library" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 2.10.2 +PROJECT_NUMBER = 2.10.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer diff --git a/NEWS.md b/NEWS.md index b933f27ad..ddfbe0d15 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,9 @@ NEWS GPS Toolkit News ------------------------------------------------------------------------------ + June 22, 2018 . . . . Release Candidate for Version 2.10.3 is frozen in the + repository + April 19, 2018 . . . Release Candidate for Version 2.10.2 is frozen in the repository diff --git a/RELNOTES.md b/RELNOTES.md index 1e87589e3..e87d49543 100755 --- a/RELNOTES.md +++ b/RELNOTES.md @@ -1,71 +1,62 @@ -GPSTk 2.10.2 Release Notes +GPSTk 2.10.3 Release Notes ======================== -Updates since v2.10.1 +Updates since v2.10.2 ---------------------- -**Build System and Test Suite** - * Test coverage was added on the core-build using gcov and gcovr - * Support for GootleTest/GoogleMock added. - -**Gitlab CI** - * Test coverage was added on the core-build using gcov and gcovr - * Style compliance checking was added (as a new CI-Pipeline stage) using cpplint, but is not enforced. - **Library Changes** - * Added code to core/lib/GNSSEph/RationalizeRinex (used by core/apps/Rinextools/scanBrdcFile) to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file. REASON: Latest IGS-generated merged RINEX nav (brdc) files contain data sets that are tagged with the incorrect PRN ID. - * NavFilter updates/enhancements - Add a nav filter for forced ordering of data. Add methods for determining filter depth for buffer size computation. ITT receivers in particular do not always output nav subframes in time order or on time or with correct time stamps. - * Added ObservationType for demodulator status codes, which will support changes to tools in SGLTk made in a future merge - * ORD Refactor with CI Pipeline Changes - ord.cpp was exposed in the SWIG interface. Unit tests for coverage were written using GoogleTest/GoogleMock. Test coverage was measured on the core-build using gcov and gcovr. REASON: The ORD routines was considered general enough to add to GPSTk. The project driving it is the HRTR Web Development effort. - * Updated references for 54/18 and 34/18 and updated PRN 4 gap - * Added LNAVOrderFilter for forcing time-order of legacy nav subframe data. REASON: When processing data from multiple receivers, the data may not be sent by the receivers at the same time. This filter makes a "best effort" to enforce time ordering across multiple receivers going into the filter. -* Added sp3d file format support. REASON: We care about sp3d because the IGS MGEX precise orbit files moved from sp3c to sp3d in fall 2017. Therefore, to support various multi-GNSS data experiments, we need to be able to access these files. + * Adding Ellipsoid model for Galileo. REASON: Required for processing Galileo orbits + * Change documentation of ObsID phase units. REASON: Most of the defined file formats and associated readers did not respect the prior documentation for phase observations. This changes the documentation to be consistent with the usage in (at least) MDP, NovAtel, RINEX, and MDH. + * Added ability to use getXvt() calls on unhealthy SVs in XvtStore objects returned by EphReader. Changes include: Migrated onlyHealthy, getOnlyHealthyFlag(), and setOnlyHealthyFlag() from OrbitEphStore to XvtStore; Made sure that default behavior for OrbitEphStore and OrbElemStore was retained; Changed implementation of health status in GloEphemerisStore. REASON: The changes were made since there is a need to be able to call getXvt() on the unhealthy SVs in XvtStore objects returned by EphReader. + * Adding/Clarifying support for Galileo E5a/E5b in ObsID. Adding Galileo F/NAV and I/NAV to NavID. REASON: Need these signals represented in the signal processing infrastructure. Part of Issue 341 - Update Galileo Signal Support. + * Ensured full initialization of Stats objects and fixed a memory leak in OrbitEph::timeDisplay. REASON: This change ensures full initialization of Stats objects to eliminate undefined behavior. Also, this fix contains a fix for a small memory leak in OrbitEph::timeDisplay. + * ORD Calculation Fixes - addressed defects in the new ORD Calculation discovered by Jason Vestuto in his testing. REASON: The calculation results were incorrect. + * Added a base class for help-like command-line options with special processing in CommandOptionParser and BasicFramework. REASON: Too many applications in the MSN have needed this, and this is a better solution than trying to figure out if these help-like options were used after all the normal command-line option parsing. + * Restored Missing GPSWeekZcount Math. REASON: When the time code was migrated to CommonTime/TimeTag implementations, several extremely useful methods were discarded from the GPSWeekZcount class. + * Relaxed fit interval and health restrictions on ext/GNSSEph/OrbAlmStore. REASON: Existing code didn't address existing use cases. + * Added recognition of Galileo antenna offsets to increase capability. REASON: Several other GNSSs are already implemented. This is adding yet another GNSS in the same pattern. *New Library Classes* - * core/lib/ORD/ord.cpp - * core/lib/ORD/ord.hpp - * core/lib/NavFilter/LNavOrderFilter.cpp - * core/lib/NavFilter/LNavOrderFilter.hpp - -**Application Changes** -* core/apps/Rinextools/scanBrdcFile updated to detect RINEX nav data sets tagged with the wrong SV PRN ID and to not copy such data sets to the output file. -* Update core/apps/checktools/rowcheck.cpp & core/apps/checktools/rnwcheck.cpp to use newer RINEX classes for rowcheck and rnwcheck to make them RINEX3 compatible - -*Updated Applications* - * core/apps/Rinextools/scanBrdcFile - * core/apps/checktools/rnwcheck.cpp - * core/apps/checktools/rowcheck.cpp - * core/tests/ORD/OrdRegressionChecks_T.cpp - * core/tests/ORD/OrdUnitTests_T.cpp + * core/lib/GNSSCore/GalileoEllipsoid.hpp **Test Changes** *New/Added Tests* - * core/tests/ORD/GTestExperiments.cpp - * core/tests/ORD/OrdMockClasses.hpp + * core/tests/AppFrame/BasicFrameworkHelp_T.cpp *Modified Test files* - * core/tests/NavFilter/NavFilterMgr_T.cpp + * core/tests/GNSSEph/NavID_T.cpp + * core/tests/ORD/OrdRegressionChecks_T.cpp + * core/tests/ORD/OrdUnitTests_T.cpp + * core/tests/AppFrame/CMakeLists.txt + * core/tests/testsuccexp.cmake + * core/tests/TimeHandling/GPSWeekZcount_T.cpp * ext/tests/GNSSEph/OrbAlmStore_T.cpp - * core/tests/FileHandling/SP3_T.cpp **Truth Data Changes** *New Truth Data* - * data/test_input_SP3d.sp3 - -**SWIG Bindings & Python** - * Updated SWIG interface files for ORD refactor - -*New/Added SWIG Files* - * swig/src/ord.i - - -Fixes since v2.10.1 + * data/BasicFrameworkHelpReq_T_1.err.exp + * data/BasicFrameworkHelpReq_T_1.exp + * data/BasicFrameworkHelp_T_1.err.exp + * data/BasicFrameworkHelp_T_1.exp + * data/BasicFrameworkHelp_T_3.err.exp + * data/BasicFrameworkHelp_T_3.exp + * data/BasicFrameworkHelp_T_4.err.exp + * data/BasicFrameworkHelp_T_4.exp + * data/BasicFrameworkHelp_T_8.err.exp + * data/BasicFrameworkHelp_T_8.exp + +*Updated Truth Data* + * data/outputs/RinSum_obspath_v211.exp + * data/outputs/RinSum_v211_kerg.exp + * data/outputs/RinSum_v211_nklg.exp + * data/outputs/RinSum_v302_FAA1.exp + +Fixes since v2.10.2 ------------------- - * Corrected prettying print of eph health bits in core/lib/GNSSEph/EngEphemeris.cpp - * Fixed incorrect end time for 54/18 in core/lib/GNSSCore/SVNumXRef.cpp - * Fixing bug that introduced false positive on Downstream GPSTk Core build + * Updated yuma reader to work without newline at end of file. REASON: Needed flexibility to handle files with and without newlines at the end without the reader breaking. +