726,6 → 726,7 |
//$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,351.5,M,48.0,M,,*45 |
//$GPGGA,092120.20,,,,,0,00,99.99,,,,,,*6C |
//http://www.kowoma.de/gps/zusatzerklaerungen/NMEA.htm |
|
void CreateNmeaGGA(void) |
{ |
u8 array[200], i = 0, crc = 0, x; |
750,10 → 751,10 |
tmp1 = abs(GPSData.Position.Latitude)%10000000L; |
tmp1 *= 6; // in Minuten |
tmp2 = tmp1 / 1000000L; |
i += sprintf(&array[i],"%02d", (s16)tmp2); |
i += sprintf(&array[i],"%02d", (u16)tmp2); |
tmp2 = tmp1 % 1000000L; |
tmp2 /= 10; // eine Stelle zu viel |
i += sprintf(&array[i],".%05d,", (s16)tmp2); |
tmp2 /= 100; // zwei Stellen zu viel |
i += sprintf(&array[i],".%04d,", (u16)tmp2); |
|
if(GPSData.Position.Latitude >= 0) i += sprintf(&array[i],"N,"); |
else i += sprintf(&array[i],"S,"); |
760,15 → 761,15 |
// +++++++++++++++++++++++++++++++++++++++++++ |
|
tmp1 = abs(GPSData.Position.Longitude)/10000000L; |
i += sprintf(&array[i],"%03d", (s16)tmp1); |
i += sprintf(&array[i],"%03d", (u16)tmp1); |
|
tmp1 = abs(GPSData.Position.Longitude)%10000000L; |
tmp1 *= 6; // in Minuten |
tmp2 = tmp1 / 1000000L; |
i += sprintf(&array[i],"%02d", (s16)tmp2); |
i += sprintf(&array[i],"%02d", (u16)tmp2); |
tmp2 = tmp1 % 1000000L; |
tmp2 /= 10; // eine Stelle zu viel |
i += sprintf(&array[i],".%05d,", (s16)tmp2); |
tmp2 /= 100; // zwei Stellen zu viel |
i += sprintf(&array[i],".%04d,", (u16)tmp2); |
|
|
if(GPSData.Position.Longitude >= 0) i += sprintf(&array[i],"E,"); |
825,8 → 826,8 |
tmp2 = tmp1 / 1000000L; |
i += sprintf(&array[i],"%02d", (s16)tmp2); |
tmp2 = tmp1 % 1000000L; |
tmp2 /= 10; // eine Stelle zu viel |
i += sprintf(&array[i],".%05d,", (s16)tmp2); |
tmp2 /= 100; // zwei Stellen zu viel |
i += sprintf(&array[i],".%04d,", (s16)tmp2); |
if(GPSData.Position.Latitude >= 0) i += sprintf(&array[i],"N,"); |
else i += sprintf(&array[i],"S,"); |
// +++++++++++++++++++++++++++++++++++++++++++ |
838,8 → 839,8 |
tmp2 = tmp1 / 1000000L; |
i += sprintf(&array[i],"%02d", (s16)tmp2); |
tmp2 = tmp1 % 1000000L; |
tmp2 /= 10; // eine Stelle zu viel |
i += sprintf(&array[i],".%05d,", (s16)tmp2); |
tmp2 /= 100; // zwei Stellen zu viel |
i += sprintf(&array[i],".%04d,", (s16)tmp2); |
if(GPSData.Position.Longitude >= 0) i += sprintf(&array[i],"E,"); |
else i += sprintf(&array[i],"W,"); |
// +++++++++++++++++++++++++++++++++++++++++++ |
862,8 → 863,8 |
i += sprintf(&array[i],"%d.%1d,", abs(GeoMagDec)/10,abs(GeoMagDec)%10); |
if(GeoMagDec < 0) i += sprintf(&array[i], "W,"); else i += sprintf(&array[i], "E,"); |
// +++++++++++++++++++++++++++++++++++++++++++ |
if(GPSData.Flags & FLAG_DIFFSOLN) i += sprintf(&array[i], "D,"); |
else i += sprintf(&array[i], "A,"); |
if(GPSData.Flags & FLAG_DIFFSOLN) i += sprintf(&array[i], "D*"); |
else i += sprintf(&array[i], "A*"); |
} |
else // kein Satfix |
{ |