projects
/
project
/
ugps.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix ms->deg conversion
[project/ugps.git]
/
nmea.c
diff --git
a/nmea.c
b/nmea.c
index
3646a36
..
31e0168
100644
(file)
--- a/
nmea.c
+++ b/
nmea.c
@@
-30,6
+30,7
@@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
+#include <errno.h>
#include <string.h>
#include <termios.h>
#include <string.h>
#include <termios.h>
@@
-107,8
+108,9
@@
nmea_rmc_cb(void)
}
}
}
}
- if (strlen(nmea_params[3].str) != 9 || strlen(nmea_params[5].str) != 10) {
- ERROR("lat/lng have invalid string length\n");
+ if (strlen(nmea_params[3].str) < 9 || strlen(nmea_params[5].str) < 10) {
+ ERROR("lat/lng have invalid string length %d<9, %d<10\n",
+ strlen(nmea_params[3].str), strlen(nmea_params[5].str));
} else {
int latd, latm, lats;
int lngd, lngm, lngs;
} else {
int latd, latm, lats;
int lngd, lngm, lngs;
@@
-137,7
+139,7
@@
nmea_rmc_cb(void)
flngs *= 60;
flngs /= 10000;
flngs *= 60;
flngs /= 10000;
-#define ms_to_deg(x, y) (((x * 10000) + y) / 60)
+#define ms_to_deg(x, y) (((x * 10000
00
) + y) / 60)
DEBUG(4, "position: %d°%d.%04d, %d°%d.%04d\n",
latd, latm, lats, lngd, lngm, lngs);
DEBUG(4, "position: %d°%d.%04d, %d°%d.%04d\n",
latd, latm, lats, lngd, lngm, lngs);
@@
-166,7
+168,7
@@
nmea_vtg_cb(void)
if (!gps_valid)
return;
strncpy(course, nmea_params[1].str, sizeof(course));
if (!gps_valid)
return;
strncpy(course, nmea_params[1].str, sizeof(course));
- strncpy(speed, nmea_params[
6
].str, sizeof(speed));
+ strncpy(speed, nmea_params[
7
].str, sizeof(speed));
DEBUG(4, "course: %s\n", course);
DEBUG(4, "speed: %s\n", speed);
}
DEBUG(4, "course: %s\n", course);
DEBUG(4, "speed: %s\n", speed);
}
@@
-248,7
+250,7
@@
nmea_process(char *a)
return;
if (nmea_verify_checksum(a)) {
return;
if (nmea_verify_checksum(a)) {
- ERROR("nmea message has invlid checksum\n");
+ ERROR("nmea message has inv
a
lid checksum\n");
return;
}
return;
}
@@
-314,7
+316,7
@@
nmea_open(char *dev, struct ustream_fd *s, speed_t speed)
tty = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (tty < 0) {
tty = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (tty < 0) {
- ERROR("%s: device open failed
\n", dev
);
+ ERROR("%s: device open failed
: %s\n", dev, strerror(errno)
);
return -1;
}
return -1;
}