【发布时间】:2021-06-30 09:22:29
【问题描述】:
我正在使用带有 Micropython 的 ESP8266 与使用 Putty 的串行终端进行通信。使用这些问题中引用的转义序列:
Read ANSI escape from terminal
How do I determine size of ANSI terminal?
转义序列列表https://vt100.net/docs/vt100-ug/chapter3.html
我正在尝试读回一个转义序列,它是对找到光标位置的回复。 我可以在终端中看到响应,但我需要捕获它以便解析它。我熟悉 Python,但对 Micropython 和 ESP8266 (ESP01) 完全陌生。我正在使用 webrepl 上传代码。我看到了这个,我不确定它是否相关:https://forum.micropython.org/viewtopic.php?t=5359
我尝试在未连接 webrepl 的情况下运行我的代码,但仍然无法正常工作。
我做错了什么,如何捕获响应?
根据终端大小,响应应该如下所示,即 ; 之前的内容。将不可见。 ^[[45;157R
#import esp
import network
import machine
from machine import UART
uart = UART(0, 115200)
x=uart.write("\033[500;500H\033[6n")
if uart.any():
print(":> ", uart.read())
编辑:来自此链接的尝试示例https://forum.micropython.org/viewtopic.php?t=5359#p30867
也没有运气(是的,我知道它会阻塞)。在这里,如果我输入字母“R”,它会退出循环,但不会捕获转义序列的输出。
from machine import UART
import machine
import network
import uos
uos.dupterm(None, 1)
uart = UART(0, 115200)
charbuf = None
uart.write("\033[500;500H\033[6n")
while charbuf != b"R":
if uart.any():
charbuf = uart.read()
uart.write(charbuf)
uos.dupterm(UART(0, 115200), 1)
【问题讨论】:
标签: esp8266 micropython