@@ -413,6 +413,47 @@ typedef struct
413413 // Better debug printing by ntripServerProcessRTCM
414414 volatile uint32_t rtcmBytesSent;
415415 volatile uint32_t previousMilliseconds;
416+
417+ SemaphoreHandle_t serverSemaphore = NULL ;
418+
419+ unsigned long millisSinceLastWrite ()
420+ {
421+ unsigned long retVal = 0 ;
422+ if (serverSemaphore == NULL )
423+ serverSemaphore = xSemaphoreCreateMutex ();
424+ if (xSemaphoreTake (serverSemaphore, 10 / portTICK_PERIOD_MS) == pdPASS)
425+ {
426+ retVal = millis () - timer;
427+ xSemaphoreGive (serverSemaphore);
428+ }
429+ return retVal;
430+ }
431+
432+ unsigned long millisSinceStart ()
433+ {
434+ unsigned long retVal = 0 ;
435+ if (serverSemaphore == NULL )
436+ serverSemaphore = xSemaphoreCreateMutex ();
437+ if (xSemaphoreTake (serverSemaphore, 10 / portTICK_PERIOD_MS) == pdPASS)
438+ {
439+ retVal = millis () - startTime;
440+ xSemaphoreGive (serverSemaphore);
441+ }
442+ return retVal;
443+ }
444+
445+ void updateAfterWrite ()
446+ {
447+ if (serverSemaphore == NULL )
448+ serverSemaphore = xSemaphoreCreateMutex ();
449+ if (xSemaphoreTake (serverSemaphore, 10 / portTICK_PERIOD_MS) == pdPASS)
450+ {
451+ bytesSent = bytesSent + 1 ;
452+ rtcmBytesSent = rtcmBytesSent + 1 ;
453+ timer = millis ();
454+ xSemaphoreGive (serverSemaphore);
455+ }
456+ }
416457} NTRIP_SERVER_DATA;
417458
418459#endif // COMPILE_NETWORK
0 commit comments