ENHANCEMENTS:
- GGA position source radio button added to NTRIP Client dialog - allows user to select from live receiver or fixed reference (previously PyGPSClient would automatically use receiver position if connected or fixed reference if not).
ENHANCEMENTS:
- New CFG-* Other Configuration command panel added to UBX Configuration panel. Provides structured inputs for a range of legacy CFG commands. NB: For Generation 9+ devices, legacy CFG commands are deprecated in favour of the CFG-VALGET/SET/DEL Configuration Interface commands in the adjacent panel.
- When a legacy CFG command is selected from the CFG-* listbox, a POLL request is sent to the device to retrieve the current settings; these are then used to populate a series of dynamically generated Entry widgets. The user can amend the values as required and send the updated set of values as a SET message to the device. After sending, the current values will be polled again to confirm the update has taken place. NB: this mechanism is dependent on receiving timely POLL responses. Note caveats in README re. optimising POLL response performance.
- For the time being, there are a few constraints with regard to updating certain CFG types, but these will hopefully be addressed in a future update as and when time permits. The
pyubx2
library which underpinsPyGPSClient
fully supports ALL CFG-* commands. - The new panel can be enabled or disabled using the
ENABLE_CFG_OTHER
boolean inglobals.py
.
ENHANCEMENTS:
- "Parsed + Tabular Hex" option added to data logger.
- "Check for Updates" function enhanced in About dialog box - works better on Linux.
- Min 'pygnssutils' version updated to 0.3.1 - fixes issues with some NTRIP 2 caster handling.
CHANGES:
- Internal refactoring to use common pygnssutils utility classes, resulting in signficant de-duplication of code. No functional changes.
ENHANCEMENTS:
- New BETA Socket / NTRIP Server feature. Capable of operating in two modes - either (a) as an open, unauthenticated TCP socket server, or (b) as an authenticated NTRIP server.
- In open socket server mode, the output socket stream can be accessed by any TCP socket client capable of parsing raw GNSS data, including another instance of PyGPSClient or
gnssdump
(the CLI utility installed withpyubx2
) running on another machine (assuming the traffic is permitted through any firewalls). - In NTRIP server mode, the socket stream can be accessed by any authenticated NTRIP client. The sourcetable contains a single entry corresponding to the PyGPSClient host. The server authentication credentials are set via two environment variables
PYGPSCLIENT_USER
andPYGPSCLIENT_PASSWORD
. - In either mode, the maximum number of clients is arbitrarily limited to 5. A label on the settings panel indicates the number of connected clients - this turns red when the maximum has been reached.
- The socket host address is
0.0.0.0
(i.e. binds to all available IP addresses on the host machine). The socket port defaults to50010
but is configurable via the settings panel (2101
is the convention for NTRIP servers but is not mandated). - The default configuration for the socket server is set in
globals.py
asSOCKSERVER_HOST
,SOCKSERVER_PORT
andSOCKSERVER_MAX_CLIENTS
.
ENHANCEMENTS:
- Enhancement to NTRIP client - will now automatically identity and select the closest mountpoint in the sourcetable (among those mountpoints which provide location information, and assuming current location is known approximately). Selection can be overridden.
- hacc/vacc display on banner increased to 3dp (limit of reliability). NB: in order to see hacc/vacc readings, you will need to be receiving messages which provide this data e.g. NMEA PUBX-00 or UBX NAV-PVT, NAV-POSLLH. It cannot be reliably inferred from hdop/vdop.
- Minor internal refactoring to improve performance and resilience of NTRIP client.
FIXES:
- Fix old reference to
enqueue()
method in serial handler.
CHANGES:
- Internal refactoring of
serial_handler.py
andsocket_handler.py
into singlestream_handler.py
. - Minimum versions of
pyubx2
andpynmeagps
updated to 1.2.9 and 1.0.11 respectively.
FIXES:
- Preset message rate commands now set rates on ALL ports including UART2 (UART2 was previously omitted).
ENHANCEMENTS:
- Console color tagging is now user-configurable. The fixed color tags that were in
globals.py
are instead loaded from a file named 'colortags' in the user's home directory (see example in project root directory). A special color tag of 'HALT' allows the user to terminate streaming when a specified string match is found - this could for example be a particular message identity or a particular attribute value. - Add optional manual GGA settings (lat, lon, alt. sep) to NTRIP configuration dialog. If GGA sentence transmission is enabled, GGA sentence can either be constructed from live GNSS readings (if a receiver is connected) or from the four manual settings. If a GNSS receiver is not connected, the manual GGA settings must be used to send a GGA sentence.
- Internal refactoring to use consistent message queuing technique for all incoming data streams (eliminates code duplication & offers moderate performance improvement).
FIXES:
- Enhanced error handling in serial and socket handlers - Fixes #22
ENHANCEMENTS:
- New BETA feature supports reading from TCP or UDP socket in addition to USB/UART and Binary File stream. At present, only open (i.e. unauthenticated, unencrypted) sockets are supported, and the connection is input only (i.e. you can't send UBX config polls or updates via the socket), but this may be enhanced in future versions.
- Datalogging enhanced to record incoming NTRIP data stream.
- Minor enhancements to NTRIP client exception handling.
CHANGES:
- Minimum versions of
pyubx2
andpyrtcm
updated to 1.2.7 and 0.2.5 respectively.
ENHANCEMENTS:
- Various performance enhancements via internal refactoring, including updating the GUI widgets on a minimum interval basis (rather than on receipt of each NMEA or UBX message), streamlining and centralising GNSS status updates, and eliminating redundant tkinter
update()
andupdate_idletasks()
operations. Note, however, that some tkinter performance issues remain on MacOS Monterey. - DGPS status added to information banner. NB this indicates the successful reception of DGPS correction data (e.g. RTCM3 or SBAS) based on information from NMEA (GGA, GNS) or UBX (NAV-PVT, NAV-STATUS, RXM-RTCM) messages. It does not necessarily indicate that a DGPS correction has been applied. Note that a) NMEA and UBX messages do not always give consistent indications of DGPS receipt status, and b) DGPS status cannot be reliably inferred from other NMEA message types (e.g. RMC, VTG) earlier than NMEA 4.10.
- UBX Configuration dialog can now be opened regardless of whether a device is connected (but commands will only take effect when connected!). The dialog is also now resizeable. (These enhancements afford a workaround for current MacOS Monterey performance issues.)
- GPX Track recording now enabled for all NMEA and UBX message types which contain relevant position data, and trackpoints now include dgps data where available.
ENHANCEMENTS:
- Add Beta NTRIP Client facility. Connects to specified NTRIP server (caster) and feeds received RTCM3 messages through to connected RTCM3-compatible GNSS receiver. Tested with a variety of public and private NTRIP casters and u-blox GNSS receivers but additional testing and feedback welcome.
ENHANCEMENTS:
- Min version of
pyrtcm
updated to 0.2.4 (fixes a few RTCM parsing issues). pyrtcm
version added to About dialog.
ENHANCEMENTS:
- Added provision for RTCM3 message decoding via
pyrtcm
library. NBpyrtcm
is still in Alpha and provides basic decoding of RTCM3 messages to their constituent data fields. To revert to the 'stub' RTCM3 decoding as used in v1.1.6, set theUSE_PYRTCM
constant inglobals.py
toFalse
. - Min
pyubx2
version updated to v1.2.6. - Banner will now display high precision lat/lon where available.
ENHANCEMENTS:
- Added provision for RTCM3 messages following enhancements in
pyubx2
v1.2.5. NBpygpsclient
does not currently decode RTCM3 data - it simply indicates the presence of an RTCM3 message (with message type) in the input stream. - Min
pyubx2
version updated to v1.2.5.
FIXES:
- Fix issue #9 where app becomes unresponsive with a null data stream.
ENHANCEMENTS:
- Added tabular hex format to console display and datalogging format options.
- Internal refactoring of serial handler to use
pyubx2.UBXReader.read()
function. - Min pynmeagps version updated to 1.0.7
- Min pyubx2 version updated to 1.2.4
- Python 3.6 dropped from list of supported versions (if should still run fine, but 3.6 is now end of life)
- Python 3.10 added to list of supported versions BUT note there still appear to be some teething performance issues with the version of tkinter embedded in Python 3.10 on MacOS Monterey. See installation notes for futher details.
FIXES:
- Fix issue where first few seconds of datalogging or gpx tracking would fail on serial connections
ENHANCEMENTS:
- Additional configdb key categories added to CFG-VALGET/SET/DEL panel (CFG-HW-RF*, CFG-SPARTN*).
- Minimum pyubx2 version updated to >=1.2.3.
- Version checker added to Help panel.
ENHANCEMENTS:
- UBX handler scaling factors removed as pyubx2 >=1.2.0 now applies these internally.
- Minimum pyubx2 version updated to >=1.2.0.
ENHANCEMENTS:
- Minor enhancements to UBX config configuration database dialog to aid category selection.
- Minimum pyubx2 and pynmeagps versions updated to 1.1.6 and 1.0.6 respectively.
ENHANCEMENTS:
- Updated to handle changes in pyubx2 v1.1.0 - parsing of individvual bits in bitfield (type 'X') message attributes. For example, the NAV-PVT attribute valid (X1) is now parsed as four individual bit flags: validDate (U1), validTime (U1), fullyResolved (U1) and validMag (U1).
FIXES:
- Fix hidden confirmation box issue on UBX config dialog.
- Various other minor fixes to dialog handling and positioning
ENHANCEMENTS:
- Console and datalogging enhanced to display either parsed, binary or hexadecimal formats.
- Minimum pyubx2 version updated to 1.0.16.
- Minimum pynmeagps version updated to 1.0.4.
ENHANCEMENTS:
- Additional CFG-VAL categories added for NEO-D9S, ZED-F9K, ZED-F9P & ZED-F9R Receivers.
- Minimum pyubx2 version updated to 1.0.14.
FIXES:
- Updated to use pynmeagps v 1.0.3.
FIXES:
- Fixed distribution packaging glitch in 1.0.6 - CFG-BDS category should now appear in UBX CFG-VALSET dialog.
CHANGES:
- Entry point added to setup.py to allow app installed via pip to be invoked via simple command
pygpsclient
. - Minimum pynmeagps version updated to v1.0.1.
- SUpport for BDS messages added to UBX CFG-VALSET config dialog.
- Minor build script and documentation updates.
CHANGES:
- Helper methods moved from globals.py to new module helpers.py
- Minimum pynmeagps version updated to v1.0.0
FIXES:
- Display position fix from HNR-PVT message.
- Fix error on cancelling/quitting input filepath dialog on Linux.
FIXES:
- Fix 'flashing map' issue with mixed NMEA / UBX streams and no satellite fix. NB: 'flashing' (alternating between map and 'no fix' warning) may still occur if you have mixed streams and one outputs a valid position while the other doesn't, which can happen (e.g. position solutions are often reported in UBX messages slightly before they appear in NMEA messages).
- Fix error on cancelling/quitting filepath dialog on Linux.
- Fix highlighting of pre-selected serial port.
- Other minor UI fixes.
ENHANCEMENTS:
- Add facility to write data log in raw, parsed or both formats.
- Add ability to refresh list of connected serial devices at run time. An existing connection must be terminated before connecting to a different device.
- Allow datalogging from file input as well as serial port input.
INTERNAL CHANGES:
- Generic serial port dialog moved to pygpsclient package; common package removed.
FIX:
- Fix failure to update vacc and hacc in banner from NMEA PUBX00 message
ENHANCEMENTS:
- NMEA handler updated to use new pynmeagps library (>=0.1.7) rather than pynmea2. This lightweight library obviates the need to perform NMEA lat/lon and other format conversions and makes the parsed NMEA representation more consistent with UBX.
Version and status updated to v1.0.0 Production/Stable
ENHANCEMENTS:
- Timeout setting added to common Serial port control dialog.
- Serial port baudrate configuration settings range extended to 921600.