我会简短地介绍一下:我有一个u-blox M8 GNSS评估套件,并且我试图在一个较大的程序中从中提取位置数据作为子例程。但是我一开始就很沮丧。我的程序在尝试建立初始连接时终止,出现以下错误:

ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it


我以为也许其他进程正在监听gpsd的默认端口(2947),但是在调用“ netstat -a -n”(在Windows命令提示符下)后,我能够确认没有其他进程在阻塞该端口。我不知道如何进一步找出原因,并且急切希望有经验的用户提出任何建议。

编辑为懒惰添加更多上下文
该程序在connect调用期间中断(实际上是我自己程序的第一行),您可以在下面查看上下文:

def connect(host="127.0.0.1", port=2947):
""" Connect to a GPSD instance
:param host: hostname for the GPSD server
:param port: port for the GPSD server
"""
global gpsd_socket, gpsd_stream, verbose_output, state
logger.debug("Connecting to gpsd socket at {}:{}".format(host, port))
gpsd_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
gpsd_socket.connect((host, port))
gpsd_stream = gpsd_socket.makefile(mode="rw")
logger.debug("Waiting for welcome message")
welcome_raw = gpsd_stream.readline()
welcome = json.loads(welcome_raw)
if welcome['class'] != "VERSION":
    raise Exception(
        "Unexpected data received as welcome. Is the server a gpsd 3 server?")
logger.debug("Enabling gps")
gpsd_stream.write('?WATCH={"enable":true}\n')
gpsd_stream.flush()

for i in range(0, 2):
    raw = gpsd_stream.readline()
    parsed = json.loads(raw)
    _parse_state_packet(parsed)

最佳答案

由于Windows 10上不支持gpsd,因此您很愚蠢。 :(

关于python - 如何跟踪与gpsd python库连接的GPS设备的ConnectionRefusedError原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48153580/

10-09 06:57