summaryrefslogtreecommitdiffstats
path: root/app/gps.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/gps.c')
-rw-r--r--app/gps.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/app/gps.c b/app/gps.c
index 7ccefd7..7327435 100644
--- a/app/gps.c
+++ b/app/gps.c
@@ -39,7 +39,7 @@ static int32_t freq = 0;
static Event_ring gps_ring;
-static char gps_info[60];
+char gps_info[60];
static int ubx_cfg_tmode (uint32_t time_mode, int32_t x, int32_t y, int32_t z,
uint32_t var, uint32_t min_dur, uint32_t max_var);
@@ -113,6 +113,8 @@ static int ubx_recv_almanac (uint8_t *ptr, unsigned len)
double gps_lat, gps_lon;
+char gps_pos[128];
+
static int
ubx_recv_nav_posllh (uint8_t *ptr, unsigned len)
{
@@ -137,6 +139,8 @@ ubx_recv_nav_posllh (uint8_t *ptr, unsigned len)
printf ("POS: %.4f %.4f\r\n", gps_lat, gps_lon);
+ snprintf (gps_pos, sizeof (gps_pos) - 1, "location: %.4f %.4f", gps_lat, gps_lon);
+
return 0;
}
@@ -404,6 +408,8 @@ static int ubx_recv_nav_sbas (uint8_t *ptr, unsigned len)
return 0;
}
+char gps_svinfo[4096];
+
static int ubx_recv_nav_svinfo (uint8_t *ptr, unsigned len)
{
uint32_t d4;
@@ -412,7 +418,8 @@ static int ubx_recv_nav_svinfo (uint8_t *ptr, unsigned len)
uint8_t n, flags, cflags;
const char *st;
- if (!chatty_gps) return 0;
+ PTB_INIT (gps_svinfo);
+
ptr += ubx_get_u32 (ptr, &d4);
ptr += ubx_get_u8 (ptr, &n);
@@ -475,12 +482,22 @@ static int ubx_recv_nav_svinfo (uint8_t *ptr, unsigned len)
}
- printf ("GPS SVID:%3d C/N:%3d %c%c%c %s\r\n",
- svid, cno,
- (cflags & 0x01) ? 'U' : '-',
- (cflags & 0x02) ? 'D' : '-',
- (cflags & 0x04) ? 'E' : '-',
- st);
+ if (chatty_gps)
+ printf ("GPS SVID:%3d C/N:%3d %c%c%c %s\r\n",
+ svid, cno,
+ (cflags & 0x01) ? 'U' : '-',
+ (cflags & 0x02) ? 'D' : '-',
+ (cflags & 0x04) ? 'E' : '-',
+ st);
+
+
+ PTB_ADD ("GPS SVID:%3d C/N:%3d %c%c%c %s\n",
+ svid, cno,
+ (cflags & 0x01) ? 'U' : '-',
+ (cflags & 0x02) ? 'D' : '-',
+ (cflags & 0x04) ? 'E' : '-',
+ st);
+
}
@@ -495,6 +512,8 @@ static int ubx_recv_rinex (uint8_t *payload, unsigned len)
return 0;
}
+char gps_svin_info[128];
+
static int ubx_recv_tim_svin (uint8_t *ptr, unsigned len)
{
uint8_t valid, active;
@@ -513,6 +532,9 @@ static int ubx_recv_tim_svin (uint8_t *ptr, unsigned len)
printf ("TIM-SVIN dur %u var %u obs %u valid %02x active %02x\r\n",
(unsigned) dur, (unsigned) var, (unsigned) obs, valid, active);
+ snprintf (gps_svin_info, sizeof (gps_svin_info) - 1, "TIM-SVIN dur %u var %u obs %u valid %02x active %02x",
+ (unsigned) dur, (unsigned) var, (unsigned) obs, valid, active);
+
display_report_svin (valid, active);
return 0;