无法通过 Paramiko SSH 发送 AT 命令

Unable to send AT commands trough Paramiko SSH

我正在做一个 GPS 位置检索项目,我必须在路由器上连接 SSH,然后启动命令来检索纬度和经度。 我最近收到了新路由器,当我们连接到这个路由器时,我们在连接时收到一个“OK”信号以确保正常运行,然后我们 运行 我们想要的命令,我们得到了这个例子中的数据下面,始终跟有“OK”消息,表明该命令运行良好:

AT*GNSSSTATUS?
Location Fix=1
Number of satellites = 14
Latitude=+49.17081
Longitude=-123.06970
Date=2016/02/29
Time= 18:55:28
TTFF=9449 milliSeconds

OK

当我在 PUTTY 的帮助下连接到 SSH 时,它可以工作,但是当我使用我的代码通过我的 Python 脚本和 Paramiko 发送与上述相同的命令(AT*GNSSSTATUS?)库,结果只是“OK”,表示连接刚刚激活。这就像脚本打开的命令行没有采用接下来应该出现的“ENTER”。 为了测试这一点,我尝试放置一个返回“ERROR”的命令以防我使用 PUTTY,但即使在这种情况下 Python 脚本 returns“OK”。 为了尝试解决这个问题,我尝试了不同的选项,添加了:

stdin, stdout, stderr = client.exec_command('AT*GNSSSTATUS? \r\n')

stdin, stdout, stderr = client.exec_command('AT*GNSSSTATUS? <CR>')

但这绝不会改变结果。 我的数据列表只包含一个标记为“OK”的字符串。 对于路由器上的连接部分,一切正常。

有人有什么想法吗?

非常感谢! 抱歉有拼写错误啊哈

谢谢Martin Prikryl

所以我查看了您发给我的 link 并且有效:

所以我更改了我的代码以使用 shell 并通过它发送我的命令。 这是我的代码

shell = client.invoke_shell()  
shell.send('AT*GNSSSTATUS? \r')

非常感谢,祝您愉快