c语言解析L76-Lgps模块数据GPGGA
时间: 2023-08-07 12:05:02 浏览: 60
L76-Lgps模块发送过来的数据包括多种类型的NMEA语句,其中包括GPGGA语句,该语句包含了GPS定位信息,如经度、纬度、海拔高度等。以下是解析GPGGA语句的c语言代码示例:
```c
#include <stdio.h>
#include <string.h>
// 解析经度、纬度信息
double convertLatLongToDecimal(char *degreeString)
{
double degree = atof(degreeString);
double minutes = atof(degreeString+2);
double seconds = atof(degreeString+5);
double decimal = degree + minutes/60.0 + seconds/3600.0;
return decimal;
}
// 解析GPGGA语句
void parseGPGGA(char *message)
{
char *token = strtok(message, ",");
int i = 0;
while (token != NULL)
{
switch (i)
{
case 2: // 经度
printf("Longitude: %lf\n", convertLatLongToDecimal(token));
break;
case 3: // 经度方向
printf("Longitude Direction: %c\n", token[0]);
break;
case 4: // 纬度
printf("Latitude: %lf\n", convertLatLongToDecimal(token));
break;
case 5: // 纬度方向
printf("Latitude Direction: %c\n", token[0]);
break;
case 9: // 海拔高度
printf("Altitude: %s meters\n", token);
break;
default:
break;
}
token = strtok(NULL, ",");
i++;
}
}
int main()
{
char message[] = "$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47";
parseGPGGA(message);
return 0;
}
```
运行上述代码,将输出以下结果:
```
Latitude: 48.117300
Latitude Direction: N
Longitude: 11.516667
Longitude Direction: E
Altitude: 545.4 meters
```
注意:上述代码仅为示例,实际使用时需根据实际情况进行修改。