Если кто сталкивался со стандртом передачи данных NMEA, возможно будет полезно. Мне понадобилось недавно сгенерировать данные идущие с обычного GPS. Сложности в этом никакой нет, главное трек правильный рисовать (реальный).
По стандарту в конце каждой NMEA строки идет проверочная сумма, расчитываемые по всем символам строки от $ до *.
Код на php для расчет суммы NMEA строки:
$nmea = "$xxxxxx,x,x,,x,xxxxx*";
print "Calculating checksum for: ".htmlspecialchars($nmea).\r\n";
$checksum = 0;
for($i = 0; $i < strlen($nmea); $i++)
{
$c = substr($nmea,$i,1);
$n = ord($c);
if($c == '$')
$checksum = 0;
else if($c == '*')
break;
else
$checksum ^= $n;
}
print "Checksum is ".dechex($checksum)."\r\n";