|
|
@@ -526,6 +526,16 @@ int main(int argc, char **argv) {
|
|
|
time_t now;
|
|
|
time_t last_stale_gps_check = 0;
|
|
|
|
|
|
+ long long int _usec_now, _usec_prv, _usec_del;
|
|
|
+ _usec_now = get_usec_time();
|
|
|
+ _usec_prv = _usec_now;
|
|
|
+ _usec_del = 60000000;
|
|
|
+
|
|
|
+ long long int _usec_ratelimit_now, _usec_ratelimit_prv, _usec_ratelimit_del;
|
|
|
+ _usec_ratelimit_now = get_usec_time();
|
|
|
+ _usec_ratelimit_del = 1000000;
|
|
|
+ _usec_ratelimit_prv = _usec_ratelimit_now - _usec_ratelimit_del;
|
|
|
+
|
|
|
// Configure our signal handlers to deal with SIGINT, SIGTERM, etc...
|
|
|
// and make graceful exits while logging
|
|
|
//
|
|
|
@@ -544,19 +554,27 @@ int main(int argc, char **argv) {
|
|
|
//
|
|
|
while( exit_request_status == EXIT_REQUEST_NONE ) {
|
|
|
|
|
|
+ RESET_WATCHDOG();
|
|
|
+
|
|
|
//DEBUG
|
|
|
- printf("[%lli] gps_minder: heartbeat\n", get_usec_time());
|
|
|
+ _usec_now = get_usec_time();
|
|
|
+ if ((_usec_now - _usec_prv) > _usec_del) {
|
|
|
+ printf("[%lli] gps_minder: heartbeat\n", get_usec_time());
|
|
|
+ _usec_prv = _usec_now;
|
|
|
+ }
|
|
|
//DEBUG
|
|
|
|
|
|
- RESET_WATCHDOG();
|
|
|
-
|
|
|
maintain_ipc_hub_connect(argv[0]);
|
|
|
|
|
|
if(gps_fd < 0) {
|
|
|
gps_fd = open_rs232_device(GPS_PORT, GPS_DEFAULT_BAUD, RS232_LINE);
|
|
|
|
|
|
if(gps_fd < 0) {
|
|
|
- fprintf(stderr, "Cannot open serial port %s for GPS!\n", GPS_PORT);
|
|
|
+ _usec_ratelimit_now = get_usec_time();
|
|
|
+ if ((_usec_ratelimit_now - _usec_ratelimit_prv) > _usec_ratelimit_del) {
|
|
|
+ fprintf(stderr, "Cannot open serial port %s for GPS!\n", GPS_PORT);
|
|
|
+ _usec_ratelimit_prv = _usec_ratelimit_now;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|