python - 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”。它是打印回显而不是下一行(ok 行)还是只是打印出我发出的命令?如何让它读取收到的所有数据?
解决方案
如何让它读取收到的所有数据?
一般而言,在程序向调制解调器发送 AT 命令行之后,除了读取和解析从调制解调器发回的响应之外,它绝对不应该做任何事情,直到它收到最终结果代码。最终结果代码表明调制解调器已完成对 AT 命令行的处理,现在已准备好接收新的命令行。
您用于接收数据的代码,
data = s.recv(1024).decode()
只是拾取通过网络发送的一个单一的、任意的数据块(可能以多种不同的方式拆分)。正如jasonharper 已经评论的那样,这必须在一个循环中完成,特别是一个检查并等待它收到最终结果代码的循环。
推荐阅读
- ruby-on-rails - 使用现有设计用户迁移遗留应用程序
- python - 如何使用 Pytest 为已安装的 Django 应用程序运行测试
- typescript - 与受约束的泛型类型一起使用时,Typescript 类型保护不会推断出正确的类型
- c# - 报告深度优先遍历的进度
- html - 通过减小所有盒子的宽度在一行中显示整个弹性盒子
- xamarin - Visual Studio Mac中的本机链接失败的xamarin ios
- reactjs - 如何在父组件测试中测试子组件props方法
- javascript - 如何在 Chart.JS 中制作动态增长的数据图表?
- javascript - Javascript自动计算
- intellij-idea - IntelliJ-添加testNG maven依赖带来junit