Skip to content

pcUpdates #701

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 42 commits into from
Jul 28, 2025
Merged

pcUpdates #701

merged 42 commits into from
Jul 28, 2025

Conversation

PaulZC
Copy link
Contributor

@PaulZC PaulZC commented Jul 23, 2025

  • Adds RTCM1005/1006 parsing on all correction sources to allow the Base ARP to be logged - resolves Add RTCM ARP Logging on non-ZED logging platforms #256
    • Requires SEMP >= v1.0.4. Workflows have been updated
  • Adds improvements to prevent Occasional crash in ntripClientUpdate #695
    • The root cause of the rare crashes was pushGPGGA calling ntripClient->print during an in-progress ntripClient->read from ntripUpdate.
  • Adds ringBuffer improvements:
    • Prevents rbOffsetArray from being filled with zero-length entries
    • Adds a semaphore to prevent processUart1Message and handleGnssDataTask from accessing the buffer head and tails simultaneously
  • Restructures the SD-present test - to prevent the raw SPI 0xFF transfer test from being used unnecessarily
  • Changes how data is written from the RingBuffer to SD - to prevent the ARP and/or Events from being written out of sequence and introducing errors into otherwise clean log files
  • Changes the way maxLogTime and maxLogLength are used
    • These can now be set to zero to disable the associated logging limit
    • Set maxLogTime to zero to log forever
    • Set maxLogLength to zero to log to one file (until maxLogTime is reached)
    • Avoids the use of endSD when opening a new log file
  • Adds settings.haltOnPanic
  • Adds settings.alignedLogFiles - resolves Flag for clean cyclic logging files #630
  • Adds an additional semaphore to prevent tcpServerClientSendData from gatecrashing tcpServerUpdate
  • Make the whole NTRIP_SERVER_DATA ntripServerArray[] volatile
    • Prevents "NTRIP Server ... breaking connection to ... due to lack of RTCM data"

PaulZC added 29 commits July 15, 2025 17:50
* On postcard, avoid the SPI 0xFF SD card detect test
    * Begin the GPIO expander before the SD
* Use the semaphore to protect the SPI 0xFF card detect test
* Use `NTRIP_CLIENT_RESPONSE_TIMEOUT` for the initial `connect`
* Use `NTRIP_CLIENT_RECEIVE_DATA_TIMEOUT` for the ongoing connection
Avoid endSD when opening a new log file due to logLengthExceeded
Avoid beginLogging if log time is exceeded
@PaulZC PaulZC requested a review from nseidle July 23, 2025 15:57
PaulZC added 7 commits July 24, 2025 11:47
Improve the SD writing. Correctly report write failures
Add missing USB discardRingBufferBytes
Prevent 'empty' (zero length) messages from filling up rbOffsetArray
Update availableHandlerSpace with a single write
Update dataHead in a single write
Strictly, the ringBuffer should be controlled by a semaphore. updateRingBufferTails especially can caused badness if handleGnssDataTask executes at the same time
Add getTimeStamp. Clean up timestamp printing
Add ringBufferSemaphore
Restructure pushGPGGA. Add reentry protection
Only push GPGGA from ntripClientUpdate, NOT from processUart1Message
Revert to ntripClient->read
Add settings.haltOnPanic
@nseidle
Copy link
Member

nseidle commented Jul 28, 2025

Amazing work Paul. Thank you!

@nseidle nseidle merged commit c766852 into release_candidate Jul 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants