Python和AT命令

问题描述

我需要通过以太网将AT命令发送到设备进行配置。这是我现在所拥有的:

import socket
import sys
import time

host = "192.168.0.99"
port = 8080

msg = 'at\n'

s = socket.socket(socket.AF_INET,socket.soCK_STREAM)
s.connect((host,port))
s.send(msg.encode())

data = s.recv(1024).decode()
print (data)
s.close()

我可以使用腻子,打开一个原始连接,它就会起作用。

putty

我键入“ at”,控制器回显“ at”,然后回显“ ok”以确认。

当我运行上面的脚本时,我得到了“ at”。是打印回显而不是下一行(确定行),还是仅打印出我发出的命令?如何获取读取的所有数据?

解决方法

如何获取读取的所有数据?

通常,程序在向调制解调器发送AT命令行后,除了从调制解调器发回的读取和解析响应外,它什么都不做,直到收到最终结果代码。最终结果代码表明调制解调器已完成对AT命令行的处理,现在可以接收新的命令行了。

您用于接收数据的代码,

data = s.recv(1024).decode()

只是picking up one single,arbitrary chunk of data sent over the network(可能会以多种不同方式拆分)。与jasonharper already has commented一样,这必须循环执行,尤其是loop that checks for and wait till it receives a final result code