core: gps: clear the RTC update request flag when sync is done
Once the RTC has been synchronized with GPS time, set the gps_set_time flag back to false. This resets also the corresponding ON/OFF menu entry, providing both a feedback that the operation is done and allowing the user to just set it back to ON in case a new synchronization is needed.
This commit is contained in:
parent
2f0b7f8df7
commit
76b8d191b0
|
|
@ -27,10 +27,7 @@
|
||||||
|
|
||||||
#define KNOTS2KMH(x) ((((int) x) * 1852) / 1000)
|
#define KNOTS2KMH(x) ((((int) x) * 1852) / 1000)
|
||||||
|
|
||||||
static bool gpsEnabled = false;
|
static bool gpsEnabled = false;
|
||||||
#ifdef CONFIG_RTC
|
|
||||||
static bool isRtcSyncronised = false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void gps_task(const struct gpsDevice *dev)
|
void gps_task(const struct gpsDevice *dev)
|
||||||
{
|
{
|
||||||
|
|
@ -180,17 +177,15 @@ void gps_task(const struct gpsDevice *dev)
|
||||||
#ifdef CONFIG_RTC
|
#ifdef CONFIG_RTC
|
||||||
if(state.gps_set_time)
|
if(state.gps_set_time)
|
||||||
{
|
{
|
||||||
if((sId == MINMEA_SENTENCE_RMC) &&
|
if((sId == MINMEA_SENTENCE_RMC) && (gps_data.fix_quality > 0))
|
||||||
(gps_data.fix_quality > 0) &&
|
|
||||||
(isRtcSyncronised == false))
|
|
||||||
{
|
{
|
||||||
platform_setTime(gps_data.timestamp);
|
platform_setTime(gps_data.timestamp);
|
||||||
isRtcSyncronised = true;
|
|
||||||
|
// Done, clear the flag
|
||||||
|
pthread_mutex_lock(&state_mutex);
|
||||||
|
state.gps_set_time = false;
|
||||||
|
pthread_mutex_unlock(&state_mutex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
isRtcSyncronised = false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue