lua - 如何在lua中生成串口BREAK条件
问题描述
我正在使用 ExtraPuTTY 的 Lua 脚本功能通过串行端口控制设备。该设备中有多个嵌入式模块和一个允许控制台端口成为嵌入式模块的“隧道”的命令。要返回设备的命令行界面,必须发送中断。在键盘上输入命令时,我可以选择“特殊命令”“中断”来发送中断。如何从 lua 脚本中发送“中断”?
我正在使用lua_senddata()向设备发送命令。还有其他功能可以发送休息吗?是否有一个转义序列表示中断,有点像 \n 表示换行?
我不确定这是一般 Lua 问题还是 ExtraPuTTY 特定问题。
解决方案
这是 CTRL-BREAK 的组合键 - https://en.wikipedia.org/wiki/Break_key
xev 将这些键码显示为:
KeyPress event,
state 0x10, keycode 105 (keysym 0xffe4, Control_R)
KeyPress event,
state 0x14, keycode 127 (keysym 0xff6b, Break)
KeyRelease event,
state 0x14, keycode 127 (keysym 0xff6b, Break)
KeyRelease event,
state 0x14, keycode 105 (keysym 0xffe4, Control_R)
我相信你只需要发送0xffe4 0xff6b
- 根据这个答案,你会这样做,如下所示:
lua_senddata( string.format( '%c%c%c%c', 0xff, 0xe4, 0xff, 0x6b ), false )
将Window > Translation > Remote character set更改为 'Use font encoding' 并直接编写十六进制代码
推荐阅读
- tableau-api - 如何在 Tableau 中执行“类似 RankIF”的场景
- react-admin - 如何有条件地更改数据网格行背景颜色?
- python - 为什么过度的 try:/except: 不足以捕获异常?
- node.js - 表达 res.redirect() 没有做任何事情
- nuxt.js - Nuxt 在 ssr 模式下不将 Vee-validate 模块包含到生产构建包中
- python - 如果有条件则改进 Python
- reactjs - 为什么 npm start(在 create-react-app 之后)无法运行?
- javascript - 在多个浏览器中登录时如何更新更改的用户数据
- ruby-on-rails - AASM 事件和 Rails 模型同名?
- xcode - CircleCI:没有用于团队匹配的配置文件,Xcode 找不到任何匹配的配置文件