Skip to content

Commit d712911

Browse files
authored
Merge pull request #264 from semuconsulting/RC-1.7.3
RC 1.7.3
2 parents 17ff18b + ba13264 commit d712911

12 files changed

Lines changed: 149 additions & 203 deletions

‎README.md‎

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
[Mapquest API Key](#mapquestapi) |
1616
[User-defined Presets](#userdefined) |
1717
[CLI Utilities](#cli) |
18-
[Troubleshooting](#troubleshoot) |
18+
[Troubleshooting & Known Issues](#troubleshoot) |
1919
[License](#license) |
2020
[Author Information](#author)
2121

@@ -59,7 +59,7 @@ This is an independent project and we have no affiliation whatsoever with any GN
5959

6060
The PyGPSClient home page is at [PyGPSClient](https://github.com/semuconsulting/PyGPSClient).
6161

62-
Contributions from human beings welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/PyGPSClient/blob/master/CONTRIBUTING.md).
62+
Contributions **_from human beings_** welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/PyGPSClient/blob/master/CONTRIBUTING.md).
6363

6464
For [Bug reports](https://github.com/semuconsulting/PyGPSClient/blob/master/.github/ISSUE_TEMPLATE/bug_report.md), please use the template provided. For feature requests and general queries and advice, post a message to one of the [PyGPSClient Discussions](https://github.com/semuconsulting/PyGPSClient/discussions) channels in the first instance.
6565

@@ -91,7 +91,8 @@ To install into a virtual environment (*which may be necessary if you have an [`
9191
python3 -m venv pygpsclient
9292
source pygpsclient/bin/activate # (or .\pygpsclient\Scripts\activate on Windows)
9393
python3 -m pip install --upgrade pygpsclient
94-
deactivate
94+
pygpsclient
95+
deactivate # to deactivate virtual environment when finished
9596
```
9697

9798
Quick [installation shell scripts](https://github.com/semuconsulting/PyGPSClient/blob/master/INSTALLATION.md#script) are available for Linux and MacOS platforms.
@@ -149,6 +150,7 @@ For more comprehensive installation instructions, please refer to [INSTALLATION.
149150
gnssstreamer --port /dev/ttyACM0 --baudrate 115200 --timeout 3 --format 2 --clioutput 1 --output pygpsdata.log --verbosity 2
150151
```
151152

153+
Datalogs will include both receiver output and (_if the relevant protocol is enabled in settings_) any incoming NTRIP RTK data stream.
152154
18. GPX Track - Turn track recording (in GPX format) on or off. On first selection, you will be prompted to select the directory into which timestamped GPX track files are saved. See also [GPX Track Viewer](#gpxviewer).
153155
19. Database - Turn spatialite database recording (*where available*) on or off. On first selection, you will be prompted to select the directory into which the `pygpsclient.sqlite` database is saved. *Note that, when first created, the database's spatial metadata may take up to a minute or so to initialise*.
154156
- Database logging is dependent on your Python environment supporting the requisite [sqlite3 `mod_spatialite` extension](https://www.gaia-gis.it/fossil/libspatialite/index) - see [INSTALLATION.md](https://github.com/semuconsulting/PyGPSClient/blob/master/INSTALLATION.md#prereqs) for further details. If not supported, the option will be greyed out. Check the Menu..Help..About dialog for an indication of the current spatialite support status - `no-ext` means the spatialite extension is not supported; `no-ms` means spatialite *is* supported but the necessary `mod_spatialite` extension module cannot be found in the PATH; a numeric version number like `3.51.2` indicates spatialite is fully supported.
@@ -508,17 +510,19 @@ The `pygnssutils` and `pyubxutils` libraries which underpin many of the function
508510
For further details, refer to the `pygnssutils` homepage at [https://github.com/semuconsulting/pygnssutils](https://github.com/semuconsulting/pygnssutils) or `pyubxutils` homepage at [https://github.com/semuconsulting/pyubxutils](https://github.com/semuconsulting/pyubxutils).
509511
510512
---
511-
## <a name="troubleshoot">Troubleshooting</a>
513+
## <a name="troubleshoot">Troubleshooting and Known Issues</a>
514+
515+
1. There is a known issue with PyGPSClient GUI refreshes becoming progressively slower on certain platforms if the app is left unattended (_i.e. no user interaction_) for an extended period - typically 30 minutes or more. The issue is more pronounced on low-end SBC platforms like the Raspberry Pi. **Underlying processing (including message parsing and datalogging) is unaffected**, and the GUI can generally be 'woken up' within a few seconds via a simple user interaction e.g. resizing the main panel. The root cause of this issue is under investigation, but as a workaround, users can try a) increasing the `guiupdateinterval_f` setting in the json configuration file, or b) hiding some or all user-selectable widgets until needed.
512516
513-
1. **NB:** The latest version of Python for MacOS (>=3.14.5) comes with a new version of tkinter (9.0). There appear to be fairly serious performance issues with this version on MacOS Tahoe which render the PyGPSClient UI somewhat sluggish. For the time being, it is recommended that users use >=3.14.4. This issue does *not* affect other operating systems or Python apps not using tkinter.
517+
2. **NB:** The latest version of Python for MacOS (>=3.14.5) comes with a new version of tkinter (9.0). There appear to be fairly serious performance issues with this version on MacOS Tahoe which render the PyGPSClient GUI somewhat sluggish. For the time being, it is recommended that users use >=3.14.4. This issue does *not* affect other operating systems or Python apps not using tkinter.
514518
515-
2. If you encounter persistent `WARNING>>Error parsing data stream Serial stream terminated unexpectedly` messages in the console, this may be indicative of insufficient serial port bandwidth (baudrate or timeout) for the current output message cohort (*particularly if this includes Ephemera or Observation data*). Try increasing the baudrate in the first instance.
519+
3. If you encounter persistent `WARNING>>Error parsing data stream Serial stream terminated unexpectedly` messages in the console, this may be indicative of insufficient serial port bandwidth (baudrate or timeout) for the current output message cohort (*particularly if this includes raw Ephemerides or Observation data*). Try increasing the baudrate in the first instance.
516520
517-
3. Most [budget USB-UART adapters](https://www.amazon.co.uk/DSD-TECH-adapter-FT232RL-Compatible/dp/B07BBPX8B8?ref_=ast_sto_dp) (e.g. FT232, CH345, CP2102, *including those embedded on development boards*) have a bandwidth limit of around 3Mbps (≈ 375000 baud) and may not work reliably above 230600 baud, even if the receiver supports higher baud rates. If you're using an adapter and notice significant message corruption (e.g. frequent `WARNING>>..invalid checksum` messages), try reducing the baud rate to a maximum 230600.
521+
4. Most [budget USB-UART adapters](https://www.amazon.co.uk/DSD-TECH-adapter-FT232RL-Compatible/dp/B07BBPX8B8?ref_=ast_sto_dp) (e.g. FT232, CH345, CP2102, *including those embedded on development boards*) have a bandwidth limit of around 3Mbps (≈ 375000 baud) and may not work reliably above 230600 baud, even if the receiver supports higher baud rates. If you're using an adapter and notice significant message corruption (e.g. frequent `WARNING>>..invalid checksum` messages), try reducing the baud rate to a maximum 230600.
518522
519-
4. Some Linux Wayland platforms appear to require Toplevel dialog windows to be non-transient (`transient_dialog_b: 0`) for the window 'maximise' icon to work properly.
523+
5. Some Linux Wayland platforms appear to require Toplevel dialog windows to be non-transient (`transient_dialog_b: 0`) for the window 'maximise' icon to work properly.
520524
521-
5. Some Homebrew-installed Python environments on MacOS can give rise to critical segmentation errors (*illegal memory access*) when shell subprocesses are invoked, due to the way permissions are implemented. This may, for example, affect About..Update functionality; the workaround is to update via a standard CLI `pip install --upgrade` command.
525+
6. Some Homebrew-installed Python environments on MacOS can give rise to critical segmentation errors (*illegal memory access*) when shell subprocesses are invoked, due to the way permissions are implemented. For this reason, application updates via the About..Update button are disabled on Homebrew environments; use the CLI `python3 -m pip install --upgrade pygpsclient` command instead.
522526
523527
---
524528
## <a name="license">License</a>

‎RELEASE_NOTES.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# PyGPSClient Release Notes
22

3+
### RELEASE 1.7.3
4+
5+
FIXES:
6+
7+
1. Enhancement for unattended UI lag issue.
8+
1. Remove redundant CLI arguments relating to disused SPARTN client.
9+
10+
CHANGES:
11+
12+
1. When datalogging is enabled, any incoming NTRIP RTK stream (RTCM3 or SPARTN) will _only_ be logged if its protocol is enabled in settings; otherwise logging will be restricted to receiver output.
13+
314
### RELEASE 1.7.2
415

516
FIXES:

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ classifiers = [
5252
dependencies = [
5353
"requests>=2.34.0",
5454
"Pillow>=12.0.0",
55-
"pygnssutils>=1.2.6",
55+
"pygnssutils>=1.2.7",
5656
"pyunigps>=1.0.0",
5757
"pynmeagps>=1.1.5",
5858
"pyubx2>=1.3.5",

‎src/pygpsclient/__main__.py‎

Lines changed: 3 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,7 @@
2222

2323
from pygpsclient._version import __version__ as VERSION
2424
from pygpsclient.app import App
25-
from pygpsclient.globals import (
26-
APPNAME,
27-
CONFIGFILE,
28-
SPARTN_BASEDATE_CURRENT,
29-
SPARTN_BASEDATE_DATASTREAM,
30-
)
25+
from pygpsclient.globals import APPNAME, CONFIGFILE
3126
from pygpsclient.strings import EPILOG
3227

3328

@@ -52,32 +47,11 @@ def main():
5247
help="User-defined GNSS receiver port",
5348
default=SUPPRESS,
5449
)
55-
ap.add_argument(
56-
"-S",
57-
"--spartnport",
58-
help="User-defined SPARTN receiver port",
59-
default=SUPPRESS,
60-
)
6150
ap.add_argument(
6251
"--mqapikey",
6352
help="MapQuest API Key",
6453
default=SUPPRESS,
6554
)
66-
ap.add_argument(
67-
"--mqttclientid",
68-
help="MQTT Client ID",
69-
default=SUPPRESS,
70-
)
71-
ap.add_argument(
72-
"--mqttclientregion",
73-
help="MQTT Client Region",
74-
default=SUPPRESS,
75-
)
76-
ap.add_argument(
77-
"--mqttclientmode",
78-
help="MQTT Client Mode (0 - IP, 1 - L-Band)",
79-
default=SUPPRESS,
80-
)
8155
ap.add_argument(
8256
"--ntripcasteruser",
8357
help="NTRIP Caster authentication user",
@@ -88,26 +62,14 @@ def main():
8862
help="NTRIP Caster authentication password",
8963
default=SUPPRESS,
9064
)
91-
ap.add_argument(
92-
"--spartnkey",
93-
help="SPARTN message decryption key",
94-
default=SUPPRESS,
95-
)
96-
ap.add_argument(
97-
"--spartnbasedate",
98-
help=f"SPARTN message decryption timetag ({SPARTN_BASEDATE_CURRENT} = \
99-
current datetime, {SPARTN_BASEDATE_DATASTREAM} = use timetags from data stream)",
100-
type=int,
101-
default=SUPPRESS,
102-
)
10365
ap.add_argument(
10466
"--tlspempath",
105-
help="Fully qualified path to TLS PEM (private key/certificate) file",
67+
help="Fully qualified path to TLS PEM (private key/certificate) file used by socket server",
10668
default=SUPPRESS,
10769
)
10870
ap.add_argument(
10971
"--tlscrtpath",
110-
help="Fully qualified path to TLS CRT (certificate) file",
72+
help="Fully qualified path to TLS CRT (certificate) file used by socket client",
11173
default=SUPPRESS,
11274
)
11375
ap.add_argument(

‎src/pygpsclient/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
:license: BSD 3-Clause
99
"""
1010

11-
__version__ = "1.7.2"
11+
__version__ = "1.7.3"

0 commit comments

Comments
 (0)