summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-11-12 14:48:21 +0900
committerKeith Packard <keithp@keithp.com>2013-11-12 14:48:21 +0900
commit9d2eb0b00a5a0faefce95bce949be7206b0aad37 (patch)
treefe821be7d425060a8b77013825af85c4dc8199e6 /src
parentd5367f20fa1ae71496fde071953c2cda89654071 (diff)
Add ublox checksum generating program
Diffstat (limited to 'src')
-rw-r--r--src/drivers/ublox-csum.5c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/drivers/ublox-csum.5c b/src/drivers/ublox-csum.5c
new file mode 100644
index 00000000..4e0c7c5a
--- /dev/null
+++ b/src/drivers/ublox-csum.5c
@@ -0,0 +1,23 @@
+#!/usr/bin/nickle
+string[] speeds = { "57600", "19200", "9600" };
+
+string make_set_nmea(string speed) {
+ return sprintf ("PUBX,41,1,3,1,%s,0", speed);
+}
+
+int csum(string x) {
+ int csum = 0;
+ for (int i = 0; i < String::length(x); i++)
+ csum ^= x[i];
+ return csum;
+}
+
+for (int i = 0; i < dim(speeds); i++) {
+ string s = make_set_nmea(speeds[i]);
+ int c = csum(s);
+ printf ("/* $%s* */\n", s);
+ printf ("#define SERIAL_SPEED_STRING \"%s\"\n", speeds[i]);
+ printf ("#define SERIAL_SPEED_CHECKSUM \"%02x\"\n", c);
+}
+
+