在过去的几天里,我一直在努力让 gpsfake 与 python-gps 一起工作。我使用在互联网上找到的以下例句执行 gpsfake:
gpsfake test_data.log
test_data.log:
$PMGNST,05.40,2,T,961,08.3,+04583,00*4C
$GPGLL,5036.9881,N,00707.9142,E,125412.480,A*3F
$GPGGA,125412.48,5036.9881,N,00707.9142,E,2,04,20.5,00269,M,,,,*17
$GPRMC,125412.48,A,5036.9881,N,00707.9142,E,00.0,000.0,230506,00,E*4F
$GPGSA,A,2,27,04,08,24,,,,,,,,,20.5,20.5,*12
$GPGSV,3,1,10,13,81,052,,04,58,240,39,23,44,064,,24,43,188,36*75
$GPGSV,3,2,10,02,42,295,,27,34,177,40,20,21,113,,16,12,058,*7F
$GPGSV,3,3,10,08,07,189,38,10,05,293,,131,11,117,,120,28,209,*76
一旦它运行,我执行一个在这里找到的 Python 脚本:
import gps
import os
import time
if __name__ == '__main__':
session = gps.gps(verbose=1)
while 1:
os.system('clear')
session.next()
# a = altitude, d = date/time, m=mode,
# o=postion/fix, s=status, y=satellites
print
print ' GPS reading'
print '----------------------------------------'
print 'latitude ' , session.fix.latitude
print 'longitude ' , session.fix.longitude
print time.strftime("%H:%M:%S")
print
print ' Satellites (total of', len(session.satellites) , ' in view)'
for i in session.satellites:
print '\t', i
time.sleep(3)
我得到了一个连接,但随后它被锁定在第 80 行的 gpscommon 类方法 read() 中:
frag = self.sock.recv(4096)
这告诉我没有收到甚至发送任何数据。
当我尝试通过终端连接时
connect 127.0.0.1 2947
唯一的回应是
{"class":"VERSION","release":"3.4","rev":"3.4","proto_major":3,"proto_minor":6}
没有别的了。
有谁知道如何获得正确的数据?我尝试了各种 NMEA 日志文件,所以我认为这不是原因。