Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
sdk:gps-udp-client-gnsstogps [2019/07/08 14:13]
fachet
sdk:gps-udp-client-gnsstogps [2019/07/09 13:49]
fachet
Line 58: Line 58:
  
  return gpsd;  return gpsd;
 +}
 +
 +string checksum(string s)
 +{
 + pos = strchr(s, "​*"​);​
 +
 +  if (is_void(pos))
 + return s; /* no checksum to correct */
 +
 + cs = 0;
 + chars = explode(s);
 +        for (i = 1; i < pos; i++) { /* skip $ and *XX */ 
 +     printf("​ %s ", chars[i]);
 +            c = ord(chars[i]);​
 +            cs ^= c;
 +        }
 +        r = sprintf("​%s%02X%s",​ substr(s, 0, pos + 1), cs, substr(s, pos + 3));
 + return r;
 } }