Skip to content

Commit f5e447b

Browse files
author
mozhihao
committed
virtual terminal v1.0.0
1 parent f692e7e commit f5e447b

8 files changed

Lines changed: 1359 additions & 2 deletions

File tree

README.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,38 @@
1-
# Virtual-Terminal
2-
RT-Thread Virtual-Terminal
1+
# Virtual-Terminal 软件包
2+
3+
## 简介
4+
5+
RT_Vterm 是基于 RT-Thread 内核与 RT-Tunnel 组件的**虚拟终端组件**,核心功能是实现嵌入式系统的 I/O 重定向、双向数据传输与命令交互。该组件通过 RT-Tunnel 的 “上下行隧道”(up_tunnel/down_tunnel)实现数据可靠传输,兼容 RT-Thread 字符设备模型,支持将控制台 / FinSH 输出切换到虚拟终端,同时提供命令注册、输入辅助等功能,适用于远程调试、串口复用、Web 终端扩展等场景。
6+
7+
8+
9+
## 主要特性
10+
11+
- **基于 RT-Tunnel 双向传输**:通过 `up_tunnel`(上行,设备→主机,ID:0x56545455)和 `down_tunnel`(下行,主机→设备,ID:0x56545444)实现数据隔离与可靠传输,支持线程安全读写。
12+
- **RT-Thread 设备模型兼容**:注册为 “vterm” 字符设备,支持 `open/read/write` 标准接口,可直接作为控制台或 FinSH 的 I/O 设备。
13+
- **灵活 I/O 切换与恢复**:提供 `vterm_console` 命令将控制台 / FinSH 切换到虚拟终端,`restore_original` 命令恢复原始 I/O 设备(如物理串口),切换过程无数据丢失。
14+
- **命令注册与输入辅助**:支持自定义命令注册(最大 8 条,`vterm_cmd_register` 接口),提供 `vterm_input_assist_thread` 线程处理输入回显、换行转换(\n→\r\n),适配终端显示习惯。
15+
- 多模式数据读写:
16+
- 阻塞读:`RT_Vterm_WaitKey` 阻塞等待并读取 1 字节;
17+
- 非阻塞读:`RT_Vterm_GetKey` 无数据时返回 -1;
18+
- 单字符写:`RT_Vterm_PutChar` 简化单个字符传输;
19+
- 缓冲区状态查询:`RT_Vterm_HasData` 检查下行数据是否就绪。
20+
- **自动换行转换**:写入数据时自动将 `\n` 转为 `\r\n`,确保终端显示换行正常,无需手动处理格式。
21+
22+
23+
24+
## 快速上手
25+
26+
### 初始化流程
27+
28+
RT_Vterm 需在 RT-Tunnel 初始化后启动,推荐初始化顺序:
29+
30+
1. **初始化 RT-Tunnel**:确保 `RT_Tunnel_Init` 先执行(通常自动初始化);
31+
2. **初始化 RT_Vterm**:调用 `RT_Vterm_Init` 分配上下行隧道并配置操作模式;
32+
3. **shell切换到虚拟终端设备**:调用 `rt_hw_vterm_console_init` 注册 “vterm” 字符设备,并对接shell;
33+
34+
35+
36+
## 注意
37+
38+
确保 RT-Tunnel 已启用,且 `TUNNEL_NUM` 至少为 2

0 commit comments

Comments
 (0)