Skip to content
This repository has been archived by the owner on May 29, 2022. It is now read-only.

Commit

Permalink
Merge branch 'v2.11' into 'master'
Browse files Browse the repository at this point in the history
GPSTk v2.11

See merge request sgl/gpstk!284
  • Loading branch information
Bryan Parsons committed Jan 3, 2019
2 parents b60965c + f2fb832 commit 18011c7
Show file tree
Hide file tree
Showing 9 changed files with 175 additions and 67 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ cmake_minimum_required( VERSION 2.8.5 )

project( GPSTK )
set( GPSTK_VERSION_MAJOR "2" )
set( GPSTK_VERSION_MINOR "10" )
set( GPSTK_VERSION_PATCH "7" )
set( GPSTK_VERSION_MINOR "11" )
set( GPSTK_VERSION_PATCH "0" )
set( GPSTK_VERSION "${GPSTK_VERSION_MAJOR}.${GPSTK_VERSION_MINOR}.${GPSTK_VERSION_PATCH}" )

# Test data file source directory
Expand Down
84 changes: 34 additions & 50 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,44 @@
Version 2.10.7 Thursday, December 6, 2018
Version 2.11 Thursday, January 3, 2019

General modifications
---------------------
- First cut of Travis-CI build file for external CI builds with Github
- Added official debian builds to package stage of GPSTk CI

Modifications by Author
---------------------
Bryan Parsons (28):
First cut of Travis-CI build file for external CI builds with Github.
Travis.yml file update for external gitlab CI
Travis.yml update
.travis.yml update and added shebang to swig/gpstk/__init__.py as Travis CI defaults to using SH.
Updated apt-get gtest and gmock definitions for travis.yml
Linux build for External Github/Travis-CI is now working, .travis.yml is good to go.
Added build and coverage badges to README.md and updated .travis.yml.
Temporarily allowing failures for windows CI builds, as Runner is having authentication issues.
Merge branch 'issue_349_L1C' into 'master'
Merge branch 'issue_361_CSVxref' into 'master'
Updating Debian package files to resolve libgpstk-dev conflict.
Additional tweak to .install files
Additional changes to fix issues building deb packages.
Another tweak to fix debian package build issues.
tweaking deb package build process for debian wheezy.
Removing parallel builds due to potential bug issues utilizing feature when building deb packages.
Tweak to deb rules file.
Continued tweaking as deb packages errors are debugged.
Updates for debian package building.
Adding official debian builds to package stage of GPSTk CI
Updating debian package building scrding command.
Adding official debian builds to package stage of GPSTk CI
Updating debian package building scrding command.
Merge branch 'gitlab_ci_tweaks' of repositories.arlut.utexas.edu:sgl/gpstk into gitlab_ci_tweaks
Merge branch 'gitlab_ci_tweaks' into 'master'
Update gitlab ci to add .deb packages to artifacts.
Additional tweaks to .gitlab-ci.yml for proper debian package artifacts.
Updated gitlab ci deb artifact building to only build on Master.

Eric Bigenwald (1):
added method that returns a reference to PtoNMap. Used to generate csv format of the map

renfrob (14):
Add L1C to ObsID (incomplete)
Add L1C to NavID (incomplete)
Updated NavID_T for L1C
More iterim changes
De-conflating similar Rinex track codes
Adding CNAV-2 filter for sanity checks
Adding tests for CNav2SanityFilter
Tweaks following testing
Fix for next-frame offset
Removing debug prints
Correcting time tags in test messages
Merge branch 'issue_349_L1C'
Merge branch 'master' into issue_349_L1C
Update SVN/PRN relationships
---------------------

Bryan Parsons (4):
Adding .changes file to gitlab.ci debian artifacts.
Expose all debian package files to be swept into package artifact.
Merge branch 'issue_363_moving_alm' into 'master'
Merge branch 'issue_365_XvtStoreSatID' into 'master'

Nick Boeker (7):
Merge remote-tracking branch 'origin/master' into issue_359_CNAV_Packets
Moved Non-GPS Almanac Calculation to sgltk
Merge remote-tracking branch 'origin/master' into issue_363_moving_alm
Merge remote-tracking branch 'origin/master' into issue_363_moving_alm
Merge remote-tracking branch 'origin/master' into issue_362_moving_alm
Rolled back CNAV2 changes
Merge remote-tracking branch 'origin/master' into issue_363_moving_alm

renfrob (15):
Add CNAV Reduced packet encapsulation
Adding units tests for CNavReducedAlm
Adding test cases
Adding support for CNAV/CNAV-2 Differentail Correction Packets
Making unit tests work.:
Adding CNAV/CNAV-2 Reduced Almanac read/dump
Adding getIndexSet() method to XvtStore
Extending tests to permit XvtStore.getIndexSet()
Adding a test for OrbElemStore
Working out various time representation issues.
Removing debug prints
Increasing precision in dumpBody() to match Rinex
Adding patch to place Galileo IODnav in IODC location
Softening GPS dependences in dumpHeader() and dumpTerse() to permit Galileo output
Returning output precision to previous width to avoid replacing several test output files.


#################################################
Expand Down
2 changes: 1 addition & 1 deletion Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -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.7
PROJECT_NUMBER = 2.11.0

# 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
Expand Down
3 changes: 3 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ NEWS

GPS Toolkit News
------------------------------------------------------------------------------
January 3, 2019 . . . Release Candidate for Version 2.11 is frozen in the
repository

December 6, 2018 . . . Release Candidate for Version 2.10.7 is frozen in the
repository

Expand Down
129 changes: 122 additions & 7 deletions RELNOTES.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,142 @@
GPSTk 2.10.7 Release Notes
GPSTk 2.11 Release Notes
========================

Updates since v2.10.6
----------------------
Updates since v2.10
------------------

**Gitlab/Github CI**
**Build System and Test Suite**
* Remove inadequately explained lib directory override in CMakeLists.txt
* Added line to GPSTKConfig.cmake to allow dependent projects to find header files regardless of implicit or explicit declaration.
* Test coverage was added on the core-build using gcov and gcovr
* Support for GootleTest/GoogleMock added.
* Updated Debian configuration files for complete debian package building capability
* Travis-CI yaml script added for external Github CI autobuilds.
* Official deb packages are now build for master branch builds and available as artifacts.

**Library Changes*
* Adding L1C to ObsID and QZSS to various places. REASON: Need L1C support for upcoming GPS III launch. QZSS already has a L1C broadcast, so it makes sense to look at that as well.
* Added method that returns a reference to PtoNMap. Used to generate csv format of the map. REASON: Want to generate a CSV form of svNumXRef, and this method is used for that.

**Gitlab CI**
* Changes to .gitlab-ci.yml to fix SGLTk downstream portion of the GPSTk Gitlab CI/CD pipeline.
* 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**
* SunEarthSatGeometry: Added OrbitNormalAttitude function back in, which was originally added in commit 78e29c30, but accidentally deleted in commit 148a0180.
* Added test in core/lib/Utilities/StringUtils:change() that returns immediately if either input string is empty. REASON: Empty input causes no change, and so the loop (numChanges = max unsigned int) is essentially infinite.
* Added routines to core/lib/Utilities/stl_helpers.hpp that find the intersection of two vectors and the 'non-intersection'. NOTE: While there are STL routines that do this, they require sorting the vectors first, which is not good for my application (at least).
* Make all geomatics tests in ext/tests/geomatics/CMakeLists.txt have the same label.
* In core/lib/Geomatics/Namelist.* - Added operator+=(Namelist) for convenience. Found that randomize() does not do anything on Linux Debian (?!) so just replaced std:: call with simple code. Tiny improvements to the format of matrix/vector output.
* Added debiasing before computing stats in core/lib/PosSol/PRSolution.hpp. REASON: Stats on the full PRS solution, which is an Earth-centered Earth-fixed position[3], often suffers numerically b/c the numbers are so large. This change simply debiases the numbers by the first value, so stats, in particular standard deviation, do not have noticeable numerical error.
* Reverted core/lib/FileHandling/Rinex3NavData.cpp to output the xmitTime in the frame of the toe week (derived output week). REASON: Originally, stored xmitTime in the frame of the Rinex3NavData::weeknum which was the week of sf1 HOWtime. output week was derived from weeknum and the difference between xmitTime and toe. When the review was requested, stored xmitTime in the frame of Rinex3NavData::weeknum which was changed to be the toe week. I checked both the RINEX 2.11 (section 6.8) and 3.03 (section 6.13) specs and they agree with the change.
* 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.
* Create a simple class for applying 10-bit week rollover corrections, with room to expand for other similar capabilities
* ext/lib/FileHandling/TimeNamedFileStream.hppnow creates directories for the files it outputs. REASON: ext/apps/rfw/rfw.cpp needed handholding to do its job. Now it doesn't.
* Adding L1C to ObsID and QZSS to various places. REASON: Need L1C support for upcoming GPS III launch. QZSS already has a L1C broadcast, so it makes sense to look at that as well.
* Added method that returns a reference to PtoNMap. Used to generate csv format of the map. REASON: Want to generate a CSV form of svNumXRef, and this method is used for that.
* Added XvtStoreSatID shim class, which provides clear separation for the descendents of XvtStore that handle satellite data while avoiding any side effects for non-SatID XvtStore classes. REASON:The need for this has been apparent for a while, but the fact XvtStore is also implemented with classes other than SatID presented a problem. REASON: In several places, classes of XvtStore are used to store/retrieve satellite information. As more satellite systems are added and PRN space expands, there is a need to obtain a list of the satellites contained in a store in order to avoid having to do brute force searches over ranges of satellite systems and/or ranges of PRNs. This is already implemented in OrbElemStore (a descendent of XvtStore, but not in other parallel stores (e.g. SP3EphemerisStore).
These changes will impact the following classes, but hopefully only by adding functionality.
* SP3EphemrisStore
* PositionSatStore
* TabularSatStore
* GPSEphemerisStore
* OrbElemStore

*New Library Classes*
* core/lib/GNSSCore/GalileoEllipsoid.hpp
* core/lib/NavFilter/CNav2SanityFilter.*
* core/lib/NavFilter/LNavOrderFilter.*
* core/lib/ORD/ord.*
* core/lib/TimeHandling/TimeCorrection.*


**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/checktools/rnwcheck.cpp
* core/apps/checktools/rowcheck.cpp
* core/apps/Rinextools/scanBrdcFile


**SWIG Bindings & Python**
* Updated SWIG interface files for ORD refactor

*New/Added SWIG Files*
* swig/src/ord.i

**Test Changes**

*New/Added Tests*
* core/tests/AppFrame/BasicFrameworkHelp_T.cpp
* core/tests/GNSSEph/OrbElemStore_T.cpp
* core/tests/GNSSEph/SP3EphemerisStore_T.cpp
* core/tests/NavFilter/CNav2Filter_T.cpp
* core/tests/ORD/GTestExperiments.cpp
* core/tests/ORD/OrdMockClasses.hpp
* core/tests/TimeHandling/TimeCorrection_T.cpp

*Modified Test files*
* core/tests/AppFrame/CMakeLists.txt
* core/tests/FileHandling/SP3_T.cpp
* core/tests/GNSSEph/NavID_T.cpp
* core/tests/NavFilter/NavFilterMgr_T.cpp
* core/tests/ORD/OrdRegressionChecks_T.cpp
* core/tests/ORD/OrdUnitTests_T.cpp
* core/tests/testsuccexp.cmake
* core/tests/TimeHandling/GPSWeekZcount_T.cpp
* ext/test/geomatics/CMakeLists.txt
* ext/tests/GNSSEph/OrbAlm_T.cpp
* ext/tests/GNSSEph/OrbAlmStore_T.cpp

**Truth Data Changes**

*New Truth Data*
* 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
* data/BasicFrameworkHelpReq_T_1.err.exp
* data/BasicFrameworkHelpReq_T_1.exp
* data/test_input_SP3d.sp3
* data/test_output_rinex3_clock_TestR3HeaderOutput.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
----------------

* Fixed a bug in core/lib/Math/Stats.hpp that produced unpredictable results when trying to add an empty object.
* int -> unsigned int changes in ext/lib/Geomatics/StatsFilter.hpp
* Freed memory returned by core/lib/GNSSEph/OrbitEphStore::addToList and updated comments for that method. This fixed memory leaks in core/lib/GNSSEph/GPSEphemerisStore::addToList and core/lib/GNSSEph/Rinex3EphemerisStore::addToList.
* 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.
* Replaced ICD-GPS-211 with IS-GPS-200 in several comments
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
gpstk (2.11.0-1) UNRELEASED; urgency=medium

* Update to upstream version 2.11

-- Bryan Parsons <[email protected]> Tue, 18 Dec 2018 10:32:41 -0600

gpstk (2.10.7-1) stable; urgency=medium

* Update to upstream version 2.10.7
Expand Down
Loading

0 comments on commit 18011c7

Please sign in to comment.