Add ublox checksum generating program
authorKeith Packard <keithp@keithp.com>
Tue, 12 Nov 2013 05:48:21 +0000 (14:48 +0900)
committerKeith Packard <keithp@keithp.com>
Tue, 12 Nov 2013 05:48:21 +0000 (14:48 +0900)
src/drivers/ublox-csum.5c [new file with mode: 0644]

diff --git a/src/drivers/ublox-csum.5c b/src/drivers/ublox-csum.5c
new file mode 100644 (file)
index 0000000..4e0c7c5
--- /dev/null
@@ -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);
+}
+       
+