diff options
Diffstat (limited to 'src/common/Core/main.c')
-rw-r--r-- | src/common/Core/main.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/common/Core/main.c b/src/common/Core/main.c index b43463a..02fb94c 100644 --- a/src/common/Core/main.c +++ b/src/common/Core/main.c @@ -381,7 +381,6 @@ static void audio_callback(void __attribute__ ((unused))*context, int select_buf } timestamp_last_audio_callback = timestamp_now(); - } static struct tm gps_time; @@ -547,6 +546,8 @@ static void exercise_fsm(void __attribute__ ((unused))*pvParameters) int last_discrim_u = 0; int last_wind_generator_ok = 0; + uint64_t last_qrp_stats_updated = timestamp_now(); + fsm_input.humidity = 0; fsm_input.temp = 15; fsm_input.swr_high = 0; @@ -558,6 +559,14 @@ static void exercise_fsm(void __attribute__ ((unused))*pvParameters) pio_set_fsm_signals(&fsm_input); + const uint64_t now = timestamp_now(); + + // QRP/QRO doesn't change too often, updating every 10s is good enough + if (last_qrp_stats_updated + 10000 < now) { + stats_qrp(fsm_input.qrp); + last_qrp_stats_updated = now; + } + if (last_sq != fsm_input.sq) { last_sq = fsm_input.sq; usart_debug("In SQ %d\r\n", last_sq); @@ -617,7 +626,9 @@ static void exercise_fsm(void __attribute__ ((unused))*pvParameters) struct tm time = {0}; int time_valid = local_time(&time); - // TODO use derived too? + if (!time_valid) { + time_valid = local_derived_time(&time); + } if (time_valid) { fsm_input.send_stats = (time.tm_hour == 22) ? 1 : 0; } |