如何在lua中生成串口BREAK条件

我正在使用ExtraPuTTY的Lua脚本能力来控制串口上的设备。该设备中有多个嵌入式模块和一个命令,允许控制台端口成为嵌入式模块的“隧道”。要回到设备的命令行界面,必须发送一个BREAK。在键盘上输入命令时,我可以选择“特殊命令”“BREAK”来发送BREAK。如何从lua脚本中发送一个“BREAK”?

我正在使用_luasenddata()_将命令发送到设备。是否还有其他函数可以发送BREAK?是否有一个转义序列表示BREAK,就像\n表示换行一样?

我不确定这是一个一般的Lua问题还是一个ExtraPuTTY特定的问题。

点赞
用户3342050
用户3342050

这是一个由 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 - 根据这个答案,你可以这样做:

Sending hex values via extraPuTTY adding erroneous data

lua_senddata( string.format( '%c%c%c%c', 0xff, 0xe4, 0xff, 0x6b ), false )

更改窗口>转换>远程字符集为“使用字体编码”并直接编写十六进制代码

2021-05-24 23:38:35