Add ublox checksum generating program
[fw/altos] / src / drivers / ublox-csum.5c
1 #!/usr/bin/nickle
2 string[] speeds = { "57600", "19200", "9600" };
3
4 string make_set_nmea(string speed) {
5         return sprintf ("PUBX,41,1,3,1,%s,0", speed);
6 }
7
8 int csum(string x) {
9         int csum = 0;
10         for (int i = 0; i < String::length(x); i++)
11                 csum ^= x[i];
12         return csum;
13 }
14
15 for (int i = 0; i < dim(speeds); i++) {
16         string s = make_set_nmea(speeds[i]);
17         int c = csum(s);
18         printf ("/* $%s* */\n", s);
19         printf ("#define SERIAL_SPEED_STRING   \"%s\"\n", speeds[i]);
20         printf ("#define SERIAL_SPEED_CHECKSUM \"%02x\"\n", c);
21 }
22         
23