Use telemetry geofence. Run fence every five minutes

master
Richard Meadows 2015-07-22 22:39:48 +01:00
rodzic 2be1e3344e
commit 3165b5dbbd
1 zmienionych plików z 31 dodań i 14 usunięć

Wyświetl plik

@ -32,6 +32,7 @@
#include "hw_config.h" #include "hw_config.h"
#include "watchdog.h" #include "watchdog.h"
#include "backlog.h" #include "backlog.h"
#include "location.h"
/* Internal time representation */ /* Internal time representation */
struct tracker_time time = {0}; struct tracker_time time = {0};
@ -120,25 +121,29 @@ void read_gps_time(void)
void cron_telemetry(struct tracker_time* t, struct tracker_datapoint* dp) void cron_telemetry(struct tracker_time* t, struct tracker_datapoint* dp)
{ {
/* ---- Telemetry output ---- */ /* ---- Telemetry output ---- */
/* RTTY */ if (telemetry_location_tx_allow()) {
if (t->second == 0 && !LOW_POWER(dp)) {
rtty_telemetry(dp);
/* Contestia */ /* RTTY */
} else if (t->second == 30 && !LOW_POWER(dp)) { if (t->second == 0 && !LOW_POWER(dp)) {
contestia_telemetry(dp);
/* Low Power */
} else if (t->second == 0 && LOW_POWER(dp)) {
if ((t->minute % 2) == 0) {
rtty_telemetry(dp); rtty_telemetry(dp);
} else {
/* Contestia */
} else if (t->second == 30 && !LOW_POWER(dp)) {
contestia_telemetry(dp); contestia_telemetry(dp);
/* Low Power */
} else if (t->second == 0 && LOW_POWER(dp)) {
if ((t->minute % 2) == 0) {
rtty_telemetry(dp);
} else {
contestia_telemetry(dp);
}
/* Pip */
} else if ((t->second % 1) == 0) {
pips_telemetry();
} }
/* Pip */
} else if ((t->second % 1) == 0) {
pips_telemetry();
} }
/* APRS */ /* APRS */
@ -147,6 +152,18 @@ void cron_telemetry(struct tracker_time* t, struct tracker_datapoint* dp)
aprs_telemetry(dp); aprs_telemetry(dp);
} }
#endif #endif
/* ---- Update telemetry geofence ---- */
if ((t->minute % 5 == 0) && (t->second == 0)) { /* Every 5 minutes */
if (gps_is_locked()) { /* Don't bother with no GPS */
float lat = (float)dp->latitude / 10000000.0; /* degrees */
float lon = (float)dp->longitude / 10000000.0; /* degrees */
telemetry_location_update(lon, lat);
}
}
} }
/** /**
* Cron job for the system. * Cron job for the system.