Comments (3)
Hi @jptalledo10 ,
PyGPSClient can already parse (but not yet fully decode) SPARTN data from MQTT and L-Band sources, so in theory there should be no major difficulty in parsing SPARTN data from an NTRIP (i.e. HTTP) source.
The main issue is that, while the SPARTN protocol is ostensibly in the public domain, the documentation is (in my experience) relatively poor and u-blox's SPARTN services all require a paid subscription in order to decrypt the raw data, making it extremely difficult for an unpaid and unsponsored volunteer project like PyGPSClient to develop, test and implement it successfully. SPARTN is basically a money-spinner for u-blox.
The NTRIP RTCM3 protocol, on the other hand, is well documented, unencrypted and a great many NTRIP sources are available free of charge from public domain service providers like rtk2go.com and euref-ip.com.
u-blox have shown little interest in supporting open source projects like PyGPSClient and certainly no interest in assisting with subscription fees or testing, so at this point I don't feel greatly motivated to implement new SPARTN functionality in support of u-blox's revenue stream.
As things stand, the pyspartn library (which PyGPSClient uses to parse, decrypt and decode SPARTN data) is currently still in Alpha and cannot yet fully decode all SPARTN payloads. I suspect the outstanding issues are probably easily resolved (they're almost certainly a document interpretation problem rather than a decryption problem), but I've simply not had the time or frankly the incentive to look into them in any depth.
Having said this, contributions of all kinds are always welcome so if anyone out there is in a position to assist with the implementation of such functionality, I'd be more than happy to incorporate it.
from pygpsclient.
The good news is that Ntrip Spartn is not encrypted and I can share a developer account for debugging/testing if needed. Happy to discuss further.
from pygpsclient.
The good news is that Ntrip Spartn is not encrypted and I can share a developer account for debugging/testing if needed. Happy to discuss further.
That would certainly be helpful - appreciate the offer. In point of fact, you don't actually need to decrypt SPARTN data in order to send it to an RTK-compatible GNSS receiver like the ZED-F9P - you can simply send the raw binary datastream along with the relevant decription keys and the receiver will happily decrypt it itself. Native SPARTN decryption in pyspartn is provided more as a diagnostic and academic service to end users.
I've been reviewing the PointPerfect service description at https://developer.thingstream.io/guides/location-services/pointperfect-ntrip-distribution and it all looks relatively straightforward, particularly as it appears to support the standard NTRIP HTTP port 2101 in addition to an encrypted HTTPS (TLS) service on port 443.
Supporting the service would require the following changes:
- (necessary) Enhancements to the pygnssutils library - specifically the gnssntripclient class. It should be a simple matter to add a flag to signify either RTCM3 or SPARTN protocol, and then assign either pyrtcm.RTCMReader or pyspartn.SPARTNReader to parse the data into individual RTCMMessage or SPARTNMessage objects and forward the serialised objects to the receiver.
- (optional) For HTTPS support, I may also need to add a parameter which points to the location of the necessary PointPerfect TLS certificates, assuming these are not already supported natively by the Python
certifi
library via its defaultcacerts.pem
TLS certificate registry. - (optional) enhancements to the
pyspartn
library to fix the remaining SPARTN decode issues - something that's been on my backlog for a while anyway. Having access to a developer account would certainly facilitate this.
I'm moving this issue to the PyGPSClient Ideas and Feature Requests Discussion Forum where we can continue the discussion, if that's OK with you.
Thanks again for the suggestion and any assistance you can offer.
from pygpsclient.
Related Issues (20)
- Pygpsclient crashes when "save configuration" on macos HOT 7
- PIL.Image has no attribute ANTIALIAS HOT 5
- Why the advanced configuratinos are hidden for socket server mode? HOT 3
- I'm getting a KeyError: 'serial_settings' from stream_handler.py when trying to use a socket as gnss source. Approx line 124 but I may have added some debug prints.
- KeyError: 'inactivity_timeout' when trying to use l-band spartn corrections:
- Starting gui fails on Windows 10 HOT 1
- Error in _process_UBX03() function when handling satellite elevation and azimuth
- Incorrect PUBX03 elev/azim handling in Sky View HOT 1
- Saving L-band config into D9S HOT 4
- socket.timeout: timed out HOT 5
- KeyError on private RTCM3 messages HOT 3
- UI text unreadable in MacOS with Dark theme HOT 3
- Unable to start the Tk on Mac m1 HOT 2
- ValueError if pygpsclient starts without default configuration file
- Ublox Config Dialog with TCP Socket HOT 5
- Raspberry Pi 32-bit HOT 10
- incomplete configuration saving and loading HOT 4
- MacOSX 11.7.9 no idea what's wrong HOT 19
- vdop not populated for NMEA messages
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pygpsclient.