GPS watchdog - health detection fixes

This commit is contained in:
Nick Butcher 2012-11-12 23:18:20 +01:00
parent e52c7e3c4b
commit b5665c2a71
2 changed files with 7 additions and 12 deletions

View File

@ -410,6 +410,8 @@ void *mtk_watchdog_loop(void *args)
} else { } else {
/* gps healthy */ /* gps healthy */
mtk_success_count++; mtk_success_count++;
mtk_fail_count = 0;
once_ok = true; // XXX Should this be true on a single success, or on same criteria as mtk_healthy?
if (!mtk_healthy && mtk_success_count >= MTK_HEALTH_SUCCESS_COUNTER_LIMIT) { if (!mtk_healthy && mtk_success_count >= MTK_HEALTH_SUCCESS_COUNTER_LIMIT) {
printf("[gps] MTK module found, status ok (baud=%d)\r\n", current_gps_speed); printf("[gps] MTK module found, status ok (baud=%d)\r\n", current_gps_speed);
@ -418,11 +420,8 @@ void *mtk_watchdog_loop(void *args)
mtk_gps->satellite_info_available = 0; mtk_gps->satellite_info_available = 0;
// global_data_send_subsystem_info(&mtk_present_enabled_healthy); // global_data_send_subsystem_info(&mtk_present_enabled_healthy);
mavlink_log_info(mavlink_fd, "[gps] MTK custom binary module found, status ok\n"); mavlink_log_info(mavlink_fd, "[gps] MTK custom binary module found, status ok\n");
mtk_healthy = true;
} }
mtk_healthy = true;
mtk_fail_count = 0;
once_ok = true;
} }
usleep(MTK_WATCHDOG_WAIT_TIME_MICROSECONDS); usleep(MTK_WATCHDOG_WAIT_TIME_MICROSECONDS);

View File

@ -786,22 +786,18 @@ void *ubx_watchdog_loop(void *args)
sleep(1); sleep(1);
} else { } else {
/* gps healthy */
ubx_success_count++;
ubx_fail_count = 0;
once_ok = true; // XXX Should this be true on a single success, or on same criteria as ubx_healthy?
if (!ubx_healthy && ubx_success_count == UBX_HEALTH_SUCCESS_COUNTER_LIMIT) { if (!ubx_healthy && ubx_success_count == UBX_HEALTH_SUCCESS_COUNTER_LIMIT) {
//printf("[gps] ublox UBX module status ok (baud=%d)\r\n", current_gps_speed); //printf("[gps] ublox UBX module status ok (baud=%d)\r\n", current_gps_speed);
// global_data_send_subsystem_info(&ubx_present_enabled_healthy); // global_data_send_subsystem_info(&ubx_present_enabled_healthy);
mavlink_log_info(mavlink_fd, "[gps] UBX module found, status ok\n"); mavlink_log_info(mavlink_fd, "[gps] UBX module found, status ok\n");
ubx_healthy = true; ubx_healthy = true;
ubx_fail_count = 0;
once_ok = true;
} }
/* gps healthy */
ubx_success_count++;
ubx_healthy = true;
ubx_fail_count = 0;
} }
usleep(UBX_WATCHDOG_WAIT_TIME_MICROSECONDS); usleep(UBX_WATCHDOG_WAIT_TIME_MICROSECONDS);
} }