ubuntu 如何利用串口清除小型机终端的屏幕

f0brbegy  于 2023-10-17  发布在  其他
关注(0)|答案(3)|浏览(160)

我想从连接到PC /dev/ttyUSB0的磁盘上清除minicom terminal屏幕。我知道如何在PC中使用快捷方式Ctrl + A then Z and select CCtrl + A then C来完成。现在,我想用同样的方法来做这件事。如何做到这一点?

6ovsh4lw

6ovsh4lw1#

@ crowd-clear/conscious回答,谢谢!我也有同样的问题,你的回答解决了。由于我已经使用printf为我的PIC发送文本和数据到主机终端,很容易添加:

printf("%c%c%c%c",0x1B,0x5B,0x32,0x4A);

当终端屏幕被数据弄得乱七八糟时。

gfttwv5a

gfttwv5a2#

现在,我想用同样的方法来做这件事。
数据传输器用于简单地传输数据。该网关不能访问,也不能清除或控制小型机终端屏幕/窗口。
也许你会问串行连接的远程端如何清除屏幕,例如:通过发送一个命令序列
这个答案取决于哪个terminal emulation(例如,ANSI或VT 102)为minicom终端配置,并且如果该终端定义具有erase screen命令字符串(又名 * 转义序列 *)。
原来erase screen转义序列对于ANSI和VT 102终端都是相同的。

Esc[2J  Erase Display:
        Clears the screen and moves the cursor to the home position (line 0, column 0).

minicom终端 * 接收到 *(从远端或当本地回显启用时)Esc[2J的4字节字符序列时,此转义序列被截取,不显示,然后终端窗口将被清除。
这四个特征是:

Esc     the ASCII Escape character, value 0x1B.  
 [       the ASCII left square brace character, value 0x5B.  
 2       the ASCII character for numeral 2, value 0x32.  
 J       the ASCII character for the letter J, value 0x4A.

引用
ANSI Escape sequences
ANSI/VT100 Terminal Control Escape Sequences

rpppsulh

rpppsulh3#

从TTRM支持的控制功能,换码序列'c'可用于复位终端。

printf("%cc",0x1b);

如果只打算清除当前显示,而不是整个缓冲区:

printf("%c[2J", 0x1b);

接下来,如果你想将光标移回row:column 0:0,那么:

printf("%c[0;0H", 0x1b);

相关问题