semuconsulting / PyGPSClient

Python Graphical GPS Client Application supporting NMEA, UBX, RTCM3, NTRIP & SPARTN Protocols
BSD 3-Clause "New" or "Revised" License
521 stars 104 forks source link

Release candidate 1.3.5 #26

Closed semuadmin closed 2 years ago

semuadmin commented 2 years ago

PyGPSClient Pull Request Template

Description

RELEASE CANDIDATE v1.3.5

ENHANCEMENTS:

  1. 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.
  2. 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 with pyubx2) running on another machine (assuming the traffic is permitted through any firewalls).
  3. 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 and PYGPSCLIENT_PASSWORD.
  4. 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.
  5. 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 to 50010 but is configurable via the settings panel (2101 is the convention for NTRIP servers but is not mandated).
  6. The default configuration for the socket server is set in globals.py as SOCKSERVER_HOST, SOCKSERVER_PORT and SOCKSERVER_MAX_CLIENTS.

Fixes # (issue)

Testing

Please test all changes, however trivial, against the supplied unittest suite tests/test_*.py e.g. by executing the tests/testsuite.py module or using your IDE's native Python unittest integration facilities. Please describe any test cases you have amended or added to this suite to maintain >= 99% code coverage.

Checklist: