[英]Connection GPS to Raspberry Pi
我正在尝试使用Atmega1284p UART读取GPS模块的NMEA输出。 这是传入的ascii流的样子:
$GPGLL,3720.11677,N,12158.43719,W,031059.00,A,D*77<CR><LF>
我想获取字符串的“ 3720.11”部分,即纬度。 这不是唯一输入的字符串,而是唯一包含“ GPGLL”的字符串,因此我编写了一些代码,在uart上捕获字符,直到看到L,然后在字符串开头查找逗号。号码。 然后,它将在此之后捕获字符,而忽略小数点。
我不知道如何用Python编写该程序。 请帮我!
char ignore;
char latitude[6];
while(ignore!=0x4C)
{
ignore=getchar(); // Look for L (4C) at start of string
}
while(ignore!=0x2C)
{
ignore=getchar(); // Look for comma (2C) before latitude data
}
latitude[0]=getchar(); // Store latitude characters
latitude[1]=getchar();
latitude[2]=getchar();
latitude[3]=getchar();
ignore=getchar(); // Ignore decimal
latitude[4]=getchar();
latitude[5]=getchar();
在Python中,您可以使用split
函数将字符串分割为给定分隔符的列表。 在您的字符串中,逗号是定界符。 因此,拆分字符串,获取列表中的第二个元素,您便拥有了纬度:
def get_latitude_from_nmea(telegram):
split_telegram = telegram.split(',')
latitude = split_telegram[1]
return latitude
# example:
telegram = "$GPGLL,3720.11677,N,12158.43719,W,031059.00,A,D*77"
latitude = get_latitude_from_nmea(telegram)
print(latitude) # 3720.11677
latitude
是一个字符串。 如果您希望将其作为float,则可以使用float()
进行float()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.