如何解决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()
我可以使用腻子,打开一个原始连接,它就会起作用。
我键入“ 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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。