Here is a patch with a bunch of changes I've made while working with the gearbox novatel driver.
The biggest change is to make the enumerated types GpsSolutionStatusType and GpsPosVelType have the same values as what the novatel transmits (and are listed in the manual).
Example of the problem:
When the novatel transmits the value 4 corresponding to the enum FloatConv, with the existing code this has the value 3, causing confusion when the numeric value is printed or logged in a file, and the user looks up this value in the manual.
This patch introduces many additional reserved enumeration values that fill the holes causing this problems, and assigns the appropriate numeric values to the enumerated types.
As a consequence of this change, if people have existing log files with integer values derived from the old enumeration values, these are likely to invalid when parsed with the code in this patch. I talked to Michael Moser about this change, and he thought it was unlikely to be a problem.
Other minor changes in this patch:
* Made toString() member functions const. This change won't cause any existing users any problems.
* Added toString() functions for enumerated types. This is handy when displaying the data in a GUI. eg. showing "FloatConv" instead of "4"
Changes to novatel driver