<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2009年10月14日星期三 19:51:18<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
人机交互程序的编制计划02
0、前言
前面的程序实现英文字符的输入,但是在程序内部没有任何对输入信息的处理,今天编制的这个计划是要做一个很简单的Shell命令接口,能够对用户的简单命令做出处理。
1、要达到的目标。
(1)能够识别简单的命令:这里先实现这么几条指令,ledon-点亮开发板上的绿色指示灯,ledoff-关闭指示灯,cls-清屏,只显示命令提示符,hello-显示hello,stm32’s world.总共这四条指令。
2、实现的步骤。
(1)首先修改之前工程文件里的按键信息处理任务,task_keyhandler,使之成为一个函数KB_GetChar(),这个函数将由命令回显和执行的任务Task_CmdShell()调用取得按键的输入值。
(2)Task_CmdShell()主要需要完成的任务是:不断从键盘获取字符,当接受到ENTER按键时,认为命令的输入已经完成,接下来在能够实现的命令数组里查找相应的命令,若有对应命令,则调用相应的函数完成命令。
(3)Task_CmdShell()的主体部分采用状态机实现-这是我比较喜欢的软件处理方式,结合操作系统的时间管理和通信功能,能够实现比较复杂的任务处理。命令解释器有两种状态:一个是输入态,不断地Pend On消息队列,取出按键值,存入命令缓冲字符数组,当收到ENTER时,转入命令态进行处理。一个是命令解释态:首先从命令缓冲字符数组取得命令,进行必要的格式化处理,(暂时不支持参数输入,也不支持括号、斜杠等输入),然后执行相应的命令后,重新回到命令提示符下。
文章评论(0条评论)
登录后参与讨论