一种智能化的手机上的人机交互方法和系统的制作方法

文档序号:6605324阅读:150来源:国知局
专利名称:一种智能化的手机上的人机交互方法和系统的制作方法
技术领域
本发明属于通信技术领域,特别地涉及到手机软件编程,手机信号和功能处理,模糊匹配技术,人机交互界面技术。
背景技术
随着嵌入式技术的发展,手机早已超出单纯通话的范畴,正在逐步发展成为包括通话在内的综合性的手持多媒体终端,面对日益增加的功能和设置选项,传统的菜单式的用户界面越来越显示出其低效和不方便的一面,用户需要一级级地搜索菜单,找到相应的条目,并且正确地理解了其含义,才能完成一次功能调用或者设置,因此菜单式的人机交互正成为现代手机视听体验的瓶颈。

发明内容
本发明的首要目的是在手机上实现一种简单方便的人机交互方式以完全取代传统的菜单方式,使用户摆脱繁琐而专业的菜单设置。本发明的另外一个目的是拓展手机的互动功能,实现了在传统菜单方式很难实现的互动功能,譬如智能化的资源搜索,包括本地资源如图片,短消息,视频,歌曲等和网络资源以及手机电视的感兴趣节目的搜索等。本发明的第三个目的是实现了用户自定义命令功能,用户可以按照自己习惯的方式生成各种命令,形成批处理文件,此批处理文件可以控制手机自动执行特定的动作序列, 从而极大地增加了用户的自由度。总而言之,本发明实现了这样一种功能用户通过按键发送‘短消息’给手机自己, 就可以控制手机执行某个特定或者一系列的动作,用户完全不必面对繁琐复杂的菜单系统,也不必理解和记忆专业术语和命令,可以以一种类似人和人之间的日常对话方式控制手机。本发明的基本思路是用户通过手机按键输入类似于日常对话的中英文用户消息,例如‘打电话12345678’,‘打电话’将在手机内部被映射成系统命令CMD_CALL_NUMBER, 12345678作为CMD_CALL_NUMBER的参数,这样将随意的用户消息就转换为系统内部的标准命令,然后相应的模块被调用执行。本发明的目的是通过以下技术方案实现的一种手机上的基于中英文对话的人机交互系统,包括输入窗口,文本输入模块,命令分析模块,命令管理模块,命令执行模块和其他的支持模块以及这些模块之间的通信和控制路径。所述的输入窗口大小为M行xN列,光标位置指示下一个输入字符的显示位置,输入字符满N列后自动换行,光标所在行下面的区域显示提示信息,当光标到达M行后,窗口自动向上滚动。现代的嵌入式终端包括手机的显示模块一般支持多层次显示例如背景层, 视频层,静态图片层,图像层和光标层等多层次显示,输入窗口位于图像层,叠加于其他层之上,此窗口可以透明,即不输入窗口,仅见输入文本和光标叠加显示于其他应用的窗口之上。所述的文本命令输入模块响应用户的请求,切换输入法状态以输入数字,英文和中文,文本输入模块将中英文字符组成的消息通过进程间通信的消息机制发送给命令分析模块,并调用手机的显示支持模块显示输入窗口和输入的消息。所述的命令分析模块接收文本输入模块送来的用户消息,转换为标准的命令,将命令添加到命令链表末尾,在用户输入结束后通知命令管理模块开始动作。所述的命令管理模块遍历命令链表以解析其中的自定义命令,自定义命令文件存储,向命令执行模块发送执行请求等所述的命令执行模块是本发明和手机其他功能模块的接口,它接收来自命令管理模块的执行请求,启动或者退出特定的应用,向特定应用传递参数并获得执行结果等。所述的支持模块主要是传统手机中的各种应用,如拨打接听,浏览网页,游戏,手机设置,看图片,听音乐,播放视频,短消息等。一种基于上述系统的人机交互方法,包括步骤A、文本输入模块将按键转换为中英文字符,组装消息报文,一旦检测到分隔符或者结束符,就将组装好的一个消息报文发送给命令分析模块。B、命令分析模块接收到消息报文后,提取出用户输入的消息文本,转换为标准的系统命令或者自定义命令及其参数,将得到的命令和参数添加到命令链表末尾,然后继续等待文本输入模块的读取通知。重复此过程直到文本输入模块通知输入结束,然后通知命令管理模块开始动作。C、命令管理模块遍历命令链表,将其中的自定义命令解析成系统命令序列并嵌入命令链表中,直到命令链表中只有系统命令。D、命令管理模块将链表中的第一个系统命令送给命令执行模块,等待,在收到命令执行模块的反馈消息报文后,如果需要,提取出反馈报文的相关内容做为下一个系统命令的参数项,将下一个系统命令和参数送给命令执行模块,…以此类推,直到整个命令链表的命令全部执行完毕。E、命令执行模块接收到请求执行的系统命令及其参数,调用相应的支持模块,并将参数传递给支持模块,在得到相应支持模块的执行结果后,构造反馈消息报文发送给命令管理模块。在所述的步骤A之前还包括系统启动后,文本输入模块即启动并接管用户的按键输入,并且调用手机的显示模块显示输入窗口,窗口可以显示为不透明,或者完全透明(窗口不可见,仅见输入文字叠加于背景之上);所述步骤A还包括文本输入模块接收用户按键输入,在英文和数字输入状态下编码为ASCII码,在中文输入状态下编码为GB2312码;所述的步骤A还包括消息之间以分隔符分割,消息内部不允许出现分隔符,本发明定义空格键为分隔符,文本输入模块接收到空格(1个或者多个),即认为输入了一个完整的用户消息;
文本输入模块检测到结束符,就通知命令分析模块输入结束,并将所有未发送的消息报文依次发送给命令分析模块,本发明定义单个或连续的确认键为结束符。文本输入模块调用手机的显示功能在输入窗口中同步显示用户的消息文本;在所述步骤B之前还包括系统预在程序中以宏定义形式定义了系统命令表,系统命令从功能上可分为代替传统菜单设置和操作的命令,针对图片,音乐,视频,短消息,电话簿等资源数据库的查找命令,操作命令如打电话,上网等,管理命令的命令,命令管理命令是可以带参数的命令;用户输入的命令序列存储于flash中形成命令文件,文件名被注册到自定义命令表中即为自定义命令,所以执行一个自定义命令意味着执行一系列系统命令,自定义命令表也存储于flash中,系统启动后会在内存中以结构数组形式维护一个自定义命令表的映像。所述步骤B还包括命令分析模块对每个用户消息处理两次,首先试图在自定义命令数组中找到完全匹配的自定义命令,然后再试图将用户消息映射为系统命令,所以一个用户消息的转换有三种结果无法转换到一个命令,转换到唯一一个命令或者转换为多于一个的自定义命令和系统命令。用户消息映射为某个系统命令具有一定的冗余度,例如‘查找XXX电话’,‘XXX的号码,,‘搜索XXX电话,...等均可映射成唯一的系统命令‘CMD_SEARCH_PHONE_NUMBER’, 其中,XXX是此命令的参数,这种冗余度保证了用户输入具有一定的自由度。命令分析模块可以将一个用户消息解成几个系统命令,例如‘电XXX’,‘电话 XXX’,‘给XXX电话’,‘与XXX通话’,‘打电话XXX’等’,命令分析模块会将其分解成依次执行的两个系统命令‘CMD_SEARCH_PHONE_NUMBER,和 ‘CMD_CALL NUMBER,,其中,XXX 是第一命令的参数项,执行完毕后,将结果(电话号码)传递给第二个命令作为参数;所述的步骤B还包括当无法转换的时候,系统提示用户重新输入,当能够转换为多个命令的时候,系统提示用户重新输入或者选择一个匹配的命令。此过程会反复进行直到找到确定的命令或者结束或者放弃本次消息序列的输入所述的步骤B还包括命令分析模块在命令链表构造结束后,通知命令管理模块开始动作。所述的步骤C还包括在解析自定义命令前,命令管理子模块统计命令链表中的命令数目并保存,如果命令数目不少于2个,则提示是否存储成命令文件,否则仅能执行但不允许存储。所述的步骤C还包括命令管理子模块会遍历命令序列,如果是自定义命令,相应的自定义文件会被读入内存,其中的全部系统命令被插入到当前的命令链表里,重复此过程直到当前命令链表内只包含系统命令。所述步骤D还包括命令管理子模块通过消息机制,将当前需执行的系统命令传送给命令执行模块所述步骤E还包括
命令执行模块知道哪个系统命令对应哪些支持模块,并调用相应模块完成命令的执行。所述步骤E还包括在命令执行过程中,可以输入新的用户消息,当前的消息序列被终止,执行新的用户消息。例如,当前正在执行‘上搜狐网’的命令,输入‘电张三’,则退出浏览器,开始拨打 ‘张三’的电话,通话结束后,原来的命令序列不再执行。


图1为实现本发明的系统组成框图2为本发明的输入窗口;
图3本发明程序中的系统命令宏定义示例;
图4为本发明中自定义命令表结构数组的单元结构定义;
图5为本发明中命令分析模块的核心代码示例;
图6为用户输入消息过程中,对消息的检查给出的反馈提示信息;
图7为本发明中采用的命令链表;
图8为本发明中采用的命令链表的单元结构定义;
图9为本发明的实施流程图。
具体实施方法
下面结合附图对本发明的具体实施方式
进行描述
附图9是本发明的实施流程图,具体包括以下步骤;
步骤S901,系统初始化。
开机后,各模块启动并初始化自己的消息队列,创建和初始化命令链表以及其他
的初始化动作,文本输入模块开始接管用户输入。步骤S902、接收用户输入的消息文本。文本输入模块接收用户输入的消息文本,调用手机的显示功能模块显示如输入窗口,例如大小为8行χ 32列,窗口内同步显示用户输入的消息序列,窗口内容满以后会向上滚行;在英文和数字输入状态下,用户按键被编码为ASCII码,在中文输入状态下,用户按键被编码为GB2312码,并将编码字符写入本地消息报文,一旦用户输入一个或者连续空格键,即将消息报文发送给命令分析模块。步骤S903、用户消息文本分析和转换。命令分析模块接收到消息报文,提取出用户消息,首先在自定义命令数组中寻找完全匹配的自定义命令,如果找到,则将其在自定义命令数组中的偏移量位置保存下来,然后试图将用户命令映射为一个系统命令,如果能映射到一个系统命令,将此命令记录下来, 如果一个用户消息既有匹配的自定义命令,又能映射到一个或者多个系统命令,则提示用户选择,根据用户选择将系统命令或者自定义命令的偏移值添加到命令链表的末尾;匹配时,如果无法找到匹配命令,会提示重新输入;匹配时,有多个匹配命令,譬如名字相同的系统命令和用户自定义命令,则编辑窗口中提示选择或重新输入;
文本输入模块接收到单个或连续确认键时,在最后一个消息报文中设置消息输入结束的标志,发送给命令分析模块;命令分析模块接收到最后一个消息报文,提取出用户消息文本进行转换处理,将转换到的命令添加到命令链表末尾,同时查看输入结束标志位判断输入结束,通知命令管理子模块开始动作。步骤S904、准备执行命令。命令管理子模块统计命令链表中的命令数目并保存,然后遍历命令链表,解析其中的自定义命令为系统命令序列,并插入到命令链表中,最后得到一个只包含系统命令的命令链表,接下来检查刚刚保存的命令数目,如果是1则立即执行但不会存储,大于1,提示是否存储,如果是,然后命令链表存储为文件。步骤S905、执行命令。接下来如果用户选择执行,命令管理子模块从来链表头开始,依次将每个链表单元中的系统命令通过进程间通信送给命令执行模块,命令执行模块顺序调用相应的应用程序,完成此次命令的执行;以图6所示序列为例说明执行结果,用户消息序列是“听歌20分钟后看视频XXX 再过10分钟上搜狐网10:30提示开会12:00电张三显示命令列表等5秒待机”,首先,命令执行模块启动音乐播放器,计时器计时20分钟,退出音乐播放器,启动视频播放器并将视频剪辑名字XXX传给播放器,打开这个视频片段,计时器计时10分钟,退出视频播放器, 启动浏览器,将搜狐网址传给浏览器,打开搜狐网,从系统时钟得到当前时间,算出到10:30 的时间间隔,设置计时器开始计时(如果当前时间过了 10:30,时间间隔为0),将‘开会’作为参数传给闹钟并启动,计算当前时间到12:00的时间间隔,设置计时器计时,到12:00开始自动拨打张三电话,通话结束后,马上显示系统命令和自定义命令,显示5秒后,进入待机状态。上面例子给出了一个应用示范,用户可以定制自己的消息序列,指定手机在特定时间完成特定动作,实际上在本发明中,可以期待大多数情况下用户仅输入单个消息控制手机执行期望的动作后返回,这样省却了存储自定义命令文件的过程,执行效率大大提高。本发明实现了一种基于中英文命令的人机交互方法和装置,不仅能完全代替传统的菜单系统,而且更加拓展了手机的操作能力,使其可以自动执行单个或者一系列的动作, 大大方便了用户。以上所述仅是本发明的具体实施方式
,但本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易的想到的变化或者替换,都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以权利要求的保护范围为主。
权利要求
1.一种手机上的人机交互系统,其特征在于包括如下模块和步骤S901、系统启动初始化后,文本输入模块接管用户输入S902、文本输入模块,实现用户通过按键输入中文,英文和数字的功能,通过消息队列和消息报文同命令分析模块通信。S903、命令分析模块,实现消息序列分析和转换。S904、命令管理模块,实现命令序列预处理。S905、命令执行模块,根据收到的命令,调用对应的应用程序和模块。
2.根据权利要求1所述的系统,其特征在于,在所述的S901之前包括系统以宏定义形式预定义了系统命令表,主要包括系统设置,电话,短信,视频,图片, 音乐,网络等方面的操作命令,还包括管理命令的命令;系统在非易失性存储器中存储了用户自定义命令文件,此文件由一系列系统命令组成;系统在非易失性存储器中存储了用户自定义命令表,此表将自定义命令文件名和文件存储路径连续起来。
3.根据权利要求1所述的系统,其特征在于,所述的S901包括系统启动后,文本输入模块,命令分析模块,命令管理模块,命令执行模块都启动并初始化,初始化至少包括初始化各个模块自己的消息队列,命令链表,将自定义命令表从非易失性存储器读取到内存的结构数组中。
4.根据权利要求1所述的系统,其特征在于,所述的S902包括所述的文本输入模块通过调用手机显示模块管理输入窗口的显示,输入字符的显示, 用户提示等;所述的文本输入模块包含中英文输入法,可以是涉及专利权的中文输入法如T9等,也可以采用自己编写的中文输入法;所述的文本输入模块用中英文输入法的编码字符组装本地消息报文,一旦检测到分隔符,即认为一个消息输入完毕,将消息报文发送给命令分析模块,然后继续接收和组装消息报文;所述的文本输入模块接收命令分析模块的反馈消息报文,根据反馈的消息分析结果, 提示用户重新输入,或者从得到的多个命令中选择一个;所述的文本输入模块检测到结束符,将最后的消息报文发送个命令分析模块并通知输入结束;在用户输入过程中,可以按下快捷键放弃此次输入,文本输入模块即通知命令分析模块放弃此次消息序列。
5.根据权利要求1所述的系统,其特征在于,所述的S903包括所述的命令分析模块从消息报文中提取用户消息文本,对用户消息做两次处理,首先试图将用户消息映射为系统命令,然后判断用户消息是否是自定义命令;所述的命令分析模块可以将一条比较复杂的用户消息解析成多个系统命令;所述的命令分析模块将命令分析结果通过消息报文送给文本输入模块;所述的命令分析模块将得到的唯一的系统命令或者唯一的自定义命令添加到命令链表末尾。
6.根据权利要求1所述的系统,其特征在于,所述的S904包括命令管理模块遍历命令链表,解析其中所有的自定义命令为系统命令,并将解析出来的系统命令嵌入命令链表,最后形成一个只包括系统命令的命令链表;命令管理模块检查命令链表中的命令数目,多于1个,提示存储,如果选择‘是’,则提示输入文件名,如果有相同文件名的命令文件,则覆盖掉原文件; 命令文件名可以和系统命令相同;命令管理模块将命令链表中的系统命令依次发送给命令执行模块。
7.根据权利要求1所述的系统,其特征在于,所述的S905包括命令执行模块根据收到的系统命令,调用或者启动相应的手机应用或者模块; 命令执行模块的执行可以被打断,即在执行时用户输入消息,即放弃当前执行的命令及后续命令,开始新的消息分析和执行过程。
8.根据权利要求4所述的部分,其特征在于所述的输入窗口命令行和提示区域两部分,命令行是输入光标所在行,命令光标位置指示下一个输入字符的显示位置,字符数达到一行的最大数目后自动换行,提示区域紧接着命令行下面几行;所述的输入窗口满后,可以自动向上滚行; 所述的输入窗口可以不透明或者透明,在透明时,仅见输入字符; 所述的输入窗口总是显示在最上层,即字符和窗口总是叠加在其他应用的窗口包括桌面之上。
9.根据权利要求6所述的部分,其特征在于命令管理模块从命令链表中提取一个系统命令发送给命令执行模块,等待命令执行模块发送执行反馈消息给自己,然后开始发送下一个命令;如果必要,命令管理模块从执行反馈消息中提取上一个命令的执行结果,作为下一个命令的参数和下一个命令一起发送出去。
全文摘要
本发明涉及一种手机上的人机交互方法和系统,该系统包括文本输入模块,命令分析模块,命令管理模块和命令执行模块。该方法包括文本输入模块接收用户按键输入并编码成中英文字符,组装成用户消息,通过消息报文发送给命令分析模块,命令分析模块将随意的用户消息转换成系统内部的标准命令,进而将用户连续输入的消息序列转换成标准命令组成的命令链表,命令管理模块解析命令链表中的自定义命令,使链表仅包含基本的系统命令,最后命令执行模块通过调用手机其他应用,依次执行链表中的系统命令。本发明可以完全替代传统的菜单操作方式,并且避免了繁琐的操作步骤和晦涩的专业术语,同时也拓展了手机的功能,实现了菜单方式所不能实现的功能。
文档编号G06F3/02GK102314218SQ20101021752
公开日2012年1月11日 申请日期2010年7月1日 优先权日2010年7月1日
发明者李峰 申请人:李峰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1