xuos-web/docs/doc/component/humancompter.md

45 lines
2.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 人机交互
## tshell
### shell 简介
从计算机诞生到现在shell一直是开发和管理人员与系统交互的重要工具在嵌入式产品上由于缺少图像设备shell 更是唯一的选择。
人机交互最关键的就是交互信息的自动输入tshell从标准输入中读入直至遇到EOF分界符。tshell将分界符EOF之后直至下一个同样的分界符之前的所有内容都作为输入。
### tshell 设计方案
shell的运行过程
* 在命令行输入命令
* shell对命令进行解析
* 执行相应的操作
建立一个命令与函数的一一对应的关系,定义结构体。
根据定义建立一个表,将所有的命令以及对应的函数进行声明
获得输入的命令,并将其和命令表中的命令进行匹配,然后执行相应的函数。
使用串口进行命令的输入和输出,在输入命令并回车之后,程序解析命令,根据空格将输入分开为命令和参数,对命令进行匹配,匹配到命令之后,执行函数。伪代码如下:
```c
#define TRUE 1
while(TRUE) {                  /* repeat forever */
  type_prompt();               /* display prompt on the screen */
  read_command(command, parameters);   /* read input from terminal */
  execve(command,parameters,0);     /* execute command */
}
```
### 总结
与linux的bash、csh 等相比,我们实现的 tshell 比较简洁目前不兼容shell 脚本。由于没有编写完整解释器的缘故,不支持正则表达式等高端的功能。优点是资源占用率低,对串口的兼容性较好。
## LittlevGL
随着智能家居、智能手环、手表等物联网智能设备的普及嵌入式系统对GUI的界面需求也越来越高。基于此背景XiUOS集成了开源图形库LittlevGL开发框架提供创建嵌入式GUI所需的一切。目前XiUOS已经支持KD233开发板。
LittlevGL是一个基于MIT协议的免费开源图形库具有易于使用的图形元素、漂亮的视觉效果和低内存占用它支持常用的控件如按钮、图表、列表、滑块、图像等并且支持触摸、鼠标、键盘等多种输入方式。更多特性访问官方网址[https://littlevgl.com/](https://littlevgl.com/)。