[英]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.