使用 LUA 捕获 ANSI 转义序列响应
2021-3-13 8:21:20
收藏:0
阅读:232
评论:1
我正在使用 ESP8266 和 Nodemcu 通过 Putty 与串行终端进行通信。 使用像这些问题中引用的转义序列:
转义序列列表 https://vt100.net/docs/vt100-ug/chapter3.html
我正在尝试使用 LUA 读取作为回复的转义序列,以查找光标位置。我似乎没有得到可见的回复(预期),但我似乎也没有得到任何东西。除回复外的一切似乎都有效。
我做错了什么,如何捕获响应?
-- 清除屏幕
uart.write(0, "\033[2J")
-- 设置事件处理程序回调以从终端读取数据
-- 控制序列以 'R' 结束
-- 我正在替换回复中的 ESC,以便我可以有希望获得可见回复的 _[25;80R
uart.on("data", 0, function(data)
if data ~= 'R' then
uart.write(0, data)
end
if data == '\033' then
uart.write(0, "_")
end
end, 0)
-- ESC = \033
-- cursorpos(v,h) CUP 将光标移动到屏幕位置 v,h ^[[<v>;<h>H
uart.write(0, "\033[20;20H")
uart.write(0, "\033[6n")
-- 响应:
-- cursorpos CPR 响应:光标位于 v,h ^[<v>;<h>R
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

看起来我的 UART 读取处理器存在语法错误。
我将 /033 更改为 CTRL-v[, 并且修改了 IF 语句中的条件。不确定为什么 \033 不起作用。
为了测试,我将 20;20 部分更改为 200;200,只是想看看它的效果,结果给出了正确的预期响应: _[45;157R
我将代码从以下内容更改为:
uart.on("data", 0, function(data) if data ~= 'R' then uart.write(0, data) end if data == '\033' then uart.write(0, "_") end end, 0)改为:
uart.on("data", 0, function(data) if data == '\27' then uart.write(0,"_") else uart.write(0, data) end end, 0)