Skip to content

Commit 831d295

Browse files
committed
make Toplevel dialogs scrollable
1 parent 3672d24 commit 831d295

31 files changed

+819
-923
lines changed

.vscode/settings.json

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
{
22
"python.testing.pytestEnabled": true,
3-
"python.testing.unittestEnabled": false,
3+
"python.terminal.activateEnvironment": true,
44
"editor.formatOnSave": true,
5-
"modulename": "pygpsclient",
6-
"distname": "pygpsclient",
7-
"python.defaultInterpreterPath": "python3",
5+
"modulename": "${workspaceFolderBasename}",
6+
"distname": "${workspaceFolderBasename}",
7+
//"venv": "${env:UserProfile}/pygpsclient",
8+
"venv": "${env:HOME}/pygpsclient",
9+
"python.testing.pytestArgs": [
10+
"tests"
11+
],
12+
"C_Cpp.copilotHover": "disabled",
13+
"chat.agent.enabled": false,
14+
"chat.commandCenter.enabled": false,
15+
"chat.notifyWindowOnConfirmation": false,
16+
"telemetry.feedback.enabled": false,
17+
"python.analysis.addHoverSummaries": false,
18+
"python-envs.defaultEnvManager": "ms-python.python:venv",
19+
"python-envs.pythonProjects": [],
820
}

.vscode/tasks.json

Lines changed: 65 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
{
22
// See https://go.microsoft.com/fwlink/?LinkId=733558
33
// for the documentation about the tasks.json format
4-
// These Python project tasks assume you have installed and configured:
5-
// build, wheel, black, pylint, pytest, pytest-cov, Sphinx, sphinx-rtd-theme
6-
// Use the Update Toolchain task to install the necessary packages.
4+
//
5+
// This VSCode development workflow is intended to work on
6+
// MacOS, Linux and Windows (with Powershell>=5.1).
7+
//
8+
// Use the Install Deploy Dependencies tasks to install the necessary
9+
// build and test packages into the system environment.
10+
//
11+
// Use the Create Venv task to create a virtual environment in the
12+
// designated directory. Select this environment using Select
13+
// Interpreter to auto-activate it via New Terminal.
14+
//
15+
// Remember to include any global Python bin (Scripts on Windows) in PATH.
716
"version": "2.0.0",
817
"tasks": [
918
{
10-
"label": "Install Dependencies",
19+
"label": "Create Venv",
1120
"type": "process",
1221
"command": "${config:python.defaultInterpreterPath}",
1322
"args": [
1423
"-m",
15-
"pip",
16-
"install",
17-
"--group",
18-
"deploy",
24+
"venv",
25+
"${config:venv}",
26+
//"--system-site-packages"
1927
],
2028
"problemMatcher": []
2129
},
@@ -38,6 +46,19 @@
3846
},
3947
"problemMatcher": []
4048
},
49+
{
50+
"label": "Install Deploy Dependencies",
51+
"type": "process",
52+
"command": "${config:python.defaultInterpreterPath}",
53+
"args": [
54+
"-m",
55+
"pip",
56+
"install",
57+
"--group",
58+
"deploy"
59+
],
60+
"problemMatcher": []
61+
},
4162
{
4263
"label": "Clean",
4364
"type": "shell",
@@ -48,22 +69,16 @@
4869
"dist",
4970
"htmlcov",
5071
"docs/_build",
51-
"${config:modulename}.egg-info"
72+
"${config:modulename}.egg-info",
5273
],
5374
"windows": {
54-
"command": "Get-ChildItem",
75+
"command": "rm",
5576
"args": [
77+
"-R",
5678
"-Path",
57-
"build\\,",
58-
"dist\\,",
59-
"docs\\_build,",
60-
"${config:modulename}.egg-info",
61-
"-Recurse",
62-
"|",
63-
"Remove-Item",
64-
"-Recurse",
65-
"-Confirm:$false",
66-
"-Force"
79+
"'src/${config:modulename}.egg-info','build','dist','htmlcov','docs/_build'",
80+
"-ErrorAction",
81+
"SilentlyContinue" // doesn't work! - stops on exit code 1 anyway
6782
]
6883
},
6984
"options": {
@@ -116,37 +131,49 @@
116131
"-c",
117132
"pyproject.toml",
118133
"-r",
119-
"--exit-zero",
120134
"."
121135
],
122136
"problemMatcher": []
123137
},
124138
{
125-
"label": "Build",
139+
"label": "Test",
126140
"type": "process",
127141
"command": "${config:python.defaultInterpreterPath}",
128142
"args": [
129143
"-m",
130-
"build",
131-
".",
132-
"--wheel",
133-
"--sdist"
144+
"pytest"
134145
],
135146
"problemMatcher": [],
136147
"group": {
137-
"kind": "build",
148+
"kind": "test",
138149
"isDefault": true
139150
}
140151
},
141152
{
142-
"label": "Test",
153+
"label": "Build",
143154
"type": "process",
144155
"command": "${config:python.defaultInterpreterPath}",
145156
"args": [
146157
"-m",
147-
"pytest"
158+
"build",
159+
".",
160+
"--wheel",
161+
"--sdist",
148162
],
149-
"problemMatcher": []
163+
"problemMatcher": [],
164+
"dependsOrder": "sequence",
165+
"dependsOn": [
166+
"Clean",
167+
"Security",
168+
"Sort Imports",
169+
"Format",
170+
"Pylint",
171+
"Test",
172+
],
173+
"group": {
174+
"kind": "build",
175+
"isDefault": true
176+
}
150177
},
151178
{
152179
"label": "Sphinx",
@@ -183,7 +210,7 @@
183210
"problemMatcher": []
184211
},
185212
{
186-
"label": "Sphinx Deploy to S3",
213+
"label": "Sphinx Deploy to S3", // needs AWS credentials
187214
"type": "process",
188215
"command": "aws",
189216
"args": [
@@ -200,48 +227,28 @@
200227
"problemMatcher": []
201228
},
202229
{
203-
"label": "Install Wheel",
204-
"type": "shell",
230+
"label": "Install Locally",
231+
"type": "process",
205232
"command": "${config:python.defaultInterpreterPath}",
206233
"args": [
207234
"-m",
208235
"pip",
209236
"install",
210-
"--user",
237+
"--upgrade",
211238
"--force-reinstall",
212-
"*.whl"
239+
"--find-links=${workspaceFolder}/dist",
240+
"${workspaceFolderBasename}",
241+
// "--target",
242+
// "${config:venv}/Lib/site-packages"
213243
],
214244
"options": {
215245
"cwd": "dist"
216246
},
217-
"problemMatcher": []
218-
},
219-
{
220-
"label": "Install Locally",
221-
"type": "shell",
222-
"command": "${config:python.defaultInterpreterPath}",
223-
"args": [
224-
"-m",
225-
"pip",
226-
"install",
227-
//"--user",
228-
"--force-reinstall",
229-
"*.whl"
230-
],
231247
"dependsOrder": "sequence",
232248
"dependsOn": [
233-
"Clean",
234-
"Security",
235-
"Sort Imports",
236-
"Format",
237-
"Pylint",
238-
"Test",
239249
"Build",
240250
"Sphinx HTML"
241251
],
242-
"options": {
243-
"cwd": "dist"
244-
},
245252
"problemMatcher": []
246253
}
247254
]

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,8 @@ The facility can be accessed by clicking ![SPARTN Client button](https://github.
418418
419419
2. L-BAND Correction (D9* Receiver):
420420
421+
**NB** Note that u-blox [discontinued their PointPerfect SPARTN L-Band service](https://portal.u-blox.com/s/question/0D5Oj00000uB53GKAS/suspension-of-european-pointperfect-lband-spartn-service) in the European region in March 2025 and Worldwide in June 2025. The SPARTN L-Band configuration panel is now disabled by default, though the panel can still be used for other generic L-Band modem configuration purposes and can be re-enabled by setting json configuration parameter `lband_enabled_b` to `1`.
422+
421423
- SPARTN L-Band correction receiver e.g. u-blox NEO-D9S.
422424
- [Suitable Inmarsat L-band antenna](https://www.amazon.com/RTL-SDR-Blog-1525-1637-Inmarsat-Iridium/dp/B07WGWZS1D) and good satellite reception on regional frequency (NB: standard GNSS antenna may not be suitable).
423425
- Subscription to L-Band location service e.g. u-blox / Thingstream PointPerfect, which should provide the following details:
@@ -453,8 +455,7 @@ The facility can be accessed by clicking ![SPARTN Client button](https://github.
453455

454456
### L-Band Correction Configuration (D9*)
455457

456-
**NB** Note that u-blox [discontinued their PointPerfect SPARTN L-Band service](https://portal.u-blox.com/s/question/0D5Oj00000uB53GKAS/suspension-of-european-pointperfect-lband-spartn-service) in the European region in March 2025.
457-
458+
1. **NOTE** This panel is only available if json configuration setting `lband_enabled_b` is set to `1`.
458459
1. To connect to the Correction receiver, select the receiver's port from the SPARTN dialog's Serial Port listbox and click ![connect icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/usbport-1-24.png?raw=true). To disconnect, click ![disconnect icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-media-control-50-24.png?raw=true).
459460
1. Select the required Output Port - this is the port used to connect the Correction receiver to the GNSS receiver e.g. UART2 or I2C.
460461
1. If both Correction and GNSS receivers are connected to the same PyGPSClient workstation (e.g. via separate USB ports), it is possible to run the utility in Output Port = 'Passthough' mode, whereby the output data from the Correction receiver (UBX `RXM-PMP` messages) will be automatically passed through to the GNSS receiver by PyGPSClient, without the need to connect the two externally.

RELEASE_NOTES.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
FIXES:
66

77
1. Clarify interpretation of SPARTN decryption basedate integer values in *.json configuration file; `-1` signifies 'use current datetime' (`basedate=None`); `0` signifies 'use gnssTimeTag from incoming SPARTN data stream' (`basedate=pyspartn.TIMEBASE`); any other integer value represents an explicit gnssTimeTag value.
8+
1. Fix minor bugs in GPX Viewer custom map handling.
89

910
ENHANCEMENTS:
1011

12+
1. Make all Toplevel dialogs scrollable and resizeable, depending on effective screen resolution. Applies to: UBX Config, NMEA Config, NTRIP Client, SPARTN Client, Display GPX Track, Import Custom Map, TTY Commands. This allows the dialogs to be usable on low resolution screens( 600 <= width <= 1024 pixels).
13+
1. Make SPARTN L-Band configuration panel optional - disabled by default (*ublox PointPerfect SPARTN L-Band service was discontinued in May 2025, though the panel can still be used for other generic L-Band modem configuration purposes*). Panel can be re-enabled by setting lband_enabled_b to 1.
1114
1. Make `cryptography` library dependency optional (*it is only required to decrypt encrypted MQTT SPARTN payloads*). If the `cryptography` library is not installed, the "Decode SPARTN in console" option will be greyed out in the SPARTN MQTT Client dialog.
1215
1. Allow datalogging and track recording to be enabled or disabled while connected (previously only available while disconnected).
1316
1. Update minimum pyubx2, pysbf2 and pygnssutils versions to take onboard latest fixes and enhancements.
@@ -644,7 +647,7 @@ ENHANCEMENTS:
644647
1. 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.
645648
2. 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.
646649
3. 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 underpins`PyGPSClient` fully supports *ALL* CFG-* commands.
647-
4. The new panel can be enabled or disabled using the `ENABLE_CFG_OTHER` boolean in `globals.py`.
650+
4. The new panel can be enabled or disabled using the `ENABLE_CFG_LEGACY` boolean in `globals.py`.
648651

649652
### RELEASE v1.3.7
650653

docs/modules.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
pygpsclient
1+
PyGPSClient
22
===========
33

44
.. toctree::
55
:maxdepth: 4
66

7-
pygpsclient
7+
PyGPSClient

0 commit comments

Comments
 (0)