发明概述
本发明旨在克服或至少改善上述缺点中的一种或多种。此外或附加地,也能将它说成是对已知的人机界面提供一种有用的替代品。
本发明旨在以“所见即所按”原理操作的人机界面,因此消除了用户熟悉操作命令或标准键盘布置的必要,而是直接从显示器将输入击键映射到输入装置上。
本发明的人机界面特别适用于:(a)水下,其中人类活动范围受到限制;(b)地面移动环境中(即特别是‘可携带的计算机’及在车载场合中)其中高度的移动使用户难于通过输入装置操作计算装置;以及(c)在空运环境中,其中又是高度的移动影响计算装置的用户。
现在为了方便,定义在整个说明书中采用的一些专门各词。
人手的手指与拇指称作“手指”。名词“手指”也包括脚趾。
将“键”理解为由单个手指操作的一个输入转换器,并可包含按钮、开关、力转换器之类。“输入装置”通常可有四个键,每一手指一个,以及大拇指的一个或多个“键”,假定大拇指比其它手指要灵巧得多。即使如此,可以有1至5范围内的任何数目的键。一个或一组键的同时激活/操作称作“和弦”(chord)。“偶联”(couplet)为二个相继的“和弦”,或左右手执行的两个同时的“和弦”。
“显示装置”理解为诸如视频监视器或液晶显示器等硬件元件。显示器向观看者提供图象,为了方便称之为“显示”。
显示可见地提供“标记”(indicia)。标记是以表示一个或多个键的方式提供的。在封闭空间或顺序布置中的若干个标记称作“面板”。各面板覆盖若干象征性的非重叠顺序区。在这一意义上也可认为这些区划分显示的一部分。在一个标记基本上垂直于这些区的意义上,它能跨越一个或多个区。标记本身可以是连接的也可以是间断的。标记亦称作“按钮”。
因此,在一种形式中本发明公开了具有人机界面的计算装置,该人机界面包括:
一个输入装置,具有各对应于人手的独立手指的多个键,这些键布置成与指的相对顺序关系匹配;
一个视觉显示装置;及
一个处理器装置,接收来自输入装置的指令及输出信息到显示装置,处理器装置编程为导致标记的视觉显示,且其中各标记表示用户启动的指令或数据输入并且是与一个或多个键的顺序关系一一对应地显示的。
在使用计算装置中,用户最好象征性地将显示装置的视觉显示划分成多个不重叠的区,各区对应于一个手指,且这些区与手指的顺序关系相同,从而被一个标记贯穿的任何一个或多个区对应于使该标记表示的指令或数据输入有效的键组合。
最好,标记与区是正交布置的。
最好,有五个键,从而有五个象征性区。
最好,某些用户启动的指令或数据输入对应于至少两个分开的键组合。
最好,将这些标记布置在一块面板内,且在显示装置上能显示若干面板。面板可与其对应的区具有共同的边界。
最好,输入装置还包括至少两个附加键,每一个可由拇指相对于拇指键的各自反向接合操作,各附加键用独立的标记视觉地显示在显示装置上,诸如分别布置在面板顶上或下方的一条拇指线来指示拇指的接合方向。
本发明在另一种形式中还公开了用于在计算装置上实现的人机界面程序,该计算装置包括具有各对应于人手的独立手指的多个键的输入装置,这些键是布置成与手指的相对顺序关系匹配的;一个视觉显示装置;及使该程序有效的处理器装置,该程序包括:
一个输入部分,接收来自输入装置的指令或数据;
一个输出部分,将显示信息传递给显示装置;以及
一个处理部分,耦合在输入部分与输出部分上,产生标记的显示,其中各标记表示用户启动的指令或数据输入且与一个或多个键的顺序关系一一对应地显示。
在一种较佳形式中,某些用户启动的指令或数据输入对应于至少两个分开的键组合。
本发明在又另一种形式中公开了用于为计算装置实现人机界面的方法,该计算装置包括一个输入装置,该输入装置具有对应于人手的独立手指的多个键,这些键是布置成与手指的相对顺序关系匹配的;及一个视觉显示装置;该方法包括实现在处理器装置上的下述步骤:
在显示装置上视觉地显示标记,各标记与一个或多个键的顺序关系一一对应,借此允许用各自的一个或多个键输入由各标记表示的指令或数据。
最好在本方法的实践中用户执行下述步骤:
象征性地将视觉显示装置划分成多个不重叠的区,各区对应于一个键且与手指的顺序关系相同地布置;以及
激活对应于由一个标记贯穿的一个或多个区的一个或多个键,以使由该标记表示的指令或数据输入有效。
最好有五个键,从而有五个象征性区。
最好该方法还包括显示两个附加标记的步骤,各附加标记对应于用户拇指的移位状态,从而提供进一步的指令或数据输入的实现。
本发明还包括用于为计算装置实现人机界面的方法,该计算装置包括一个输入装置,该输入装置具有对应于人手的独立手指的多个键,这些键布置成与手指的相对顺序关系匹配;及一个视觉显示装置;该方法包括实现在处理器装置上的下述步骤:
在显示装置上显示标记的一个规则阵列,阵列的各行与各列分别以正交方式与一个或多个键的顺序关系对应,且各标记对应于一个行与一个列键序列,借此允许用各自的键序列输入由各标记表示的指令或数据。
在最佳形式中键序列从拇指开始。
发明详述
图1a示出实现在计算装置上的人机界面的示意性布置。输入装置10与处理装置30耦合,后者又与显示装置50耦合。输入装置10具有五个标为4、3、2、1与T的输入键。从人手的表示中显而易见,各手指与拇指顺序地对应于相同的参照键,而键的任何一个或组合的激活产生“一个和弦”。图1b示出除了T键以外的两个拇指键C,A,它们用于即将描述的特殊功能。
处理装置30可以是任何流行的个人计算机,虽然对于移动应用应当是本质上紧凑与坚固的;例如PC/104规格的。显示装置50也可以是传统的,虽然它最好也是越紧凑越好,在这一方面ReflectionTechnology(反射技术)公司制造的PRIVATE BYE(TM)装置特别适用。
操作中,处理装置30产生显示装置50上的信息显示。响应该信息,用户用键入和弦来输入指令或数据。显示在显示器50上的标记直接对应于特定和弦,从而使标记表示的指令或数据输入有效。如上所述,其原则主要是“所见即所按”。
图2示出能在其上实现人机界面的计算装置的功能框图。输入装置10包括由图1a中所示的键4-1、T构成的多开关单元20。开关单元20连接在去抖动与锁存电路22上,后者配置成只在松开键时输出信号,这与在初始按键时输出信号相反。以这一方式,一组合键中的单个键可在时间上分开按,然而,只在所有这些键一起松开时才发出整个组合的信号。去抖动与锁存电路22的输出传送到传统类型的双向并行端口24,其输出构成能由常驻在处理装置30中的软件解码的位模式。在一种较佳形式中,输入位模式是二进制编码的,对于作为按键的组合的任何和弦产生一个原始十进制值。
与对个人计算机的传统键盘输入相同的方法,输入位模式起到对操作系统的中断功能。中断功能是由中断处理程序32表示的。然后中断通过输入分析程序34传送到命令管理程序36。命令管理程序36与主机操作系统38、反馈管理程序40与关联的音频处理程序42以及应用软件44交互作用。命令管理程序36还与可视处理程序46合作,后者又驱动显示装置50。
音频处理程序在激活任何键时向用户提供听觉反馈机制中起特定功能的作用。最好用五音调音阶,它将一个八音度分成五种离散的频率。划分不是均匀的,而是基于什么声音悦耳的临时考虑。一个以上的键组成和弦导致组合再生/反馈各自的音调。五音调音阶本身是众所周知的。
界面的软件组成部分对用户基本上是透明的。用户只关心呈现在显示单元50上的显示,由于它关系到等同于或映射到手指上的键的顺序关系。
图3示出呈现在显示装置50上的显示。在本实例中该显示象征性地(临时地)分成五个作为横穿显示的带延伸的不重叠的区;由所显示的标记/按钮60-70构成的面板在尺寸上与整个显示相等。这些区是用对应于图1a与1b的键/手指的名称示出的。处理装置不关心象征性的划分,而只是简单地保持一张用原始和弦值索引的当前显示的标记的页表,及在查找例程中比较用户输入的原始和弦值,来使组成和弦的指令或数据输入有效。
“箭头”标记60、64表示能步进通过操作系统级的命令,而“QUIT”标记则为用来结束对话的命令。其它三个标记66-70表示实现字处理软件包、“two-up”游戏应用或另一非特定应用程序的命令。
各区直接映射到(对等于)输入装置10上的键的相对顺序布置上。这便是,一个或多个键的顺序关系与各标记的顺序关系存在着一一对应。已使用了顺序一词,但在大多数情况中一一对应也能认为是键的空间关系或键的次序,其中这种空间关系或次序本身是与手指一一对应的。最上面的区对应于小指键4的位置,以此类推底部与拇指键T。为了使任何一个标记有效,用户选择与相应的标记对应的键组合(即和弦)。这是通过观察哪些区被一个标记贯穿(重叠、横越、覆盖、延伸过、或与之重合)来确定的。
例如,为了操作‘QUIT’命令,用户以组合方式激活(和弦)键“3,2,1”。为了使WP应用有效,用户将键组合“1与B”(组成和弦)。‘TWO UP’是用键组合“2与1”生效的,而‘APP’N3’是用键组合“4与3”访问的。用户简单地标识哪些区被什么标记贯穿,然后将观察到的键组成和弦。
在本例中,一块面板(即标记组),从而五个区,延伸在这一显示的整个范围上。只要保持区的相对顺序关系与键一一对应,一块面板与有关的区也可以不延伸在显示的整个范围上。将这些区布置成在显示上垂直延伸也同样可行。在这一情况中,标记将是水平延伸的。主要是,标记与区是正交的。还可以倒置拇指的相对位置使之映射到屏幕顶部,并因此小指映射到屏幕底部。有鉴于这些可能性,参照一个“拇指原点”来给定键相对于标记的次序概念是方便的。不管输入装置10或显示装置50的朝向如何,在所有情况中手指/键与区之间的相对顺序关系保持不变。如前面已指出的,可以设置少于五个键。所采用的约定是序列总是从拇指开始,从而只带三个键的输入装置对应于拇指、食指与中指。
图4示出在选择了图3的‘TWO UP’应用程序时呈现的后续显示。该显示包含一块具有若干标记的面板72。各标记表示玩‘TWO UP’抛硬币游戏中使用的一条命令。面板72象征性地分成五个区,用前面指出的名称表示。面板72中的各标记/按钮是用唯一的和弦激活的。$10按钮是用“T/B”单键和弦操作的,$5按钮用‘1’单键和弦,‘CANCELBET’(‘取消打赌’)按钮用“T/B与1”键和弦,而抛硬币按钮用所有的键(用“T/B与1与2与3与4”)构成的和弦。
显示中还包含一块‘下拉’面板74及一块‘上拉’面板76,各象征性地划分成与其它面板72正交布置的五个区。这些面板涉及与图1b中所示的对应于接合的拇指位置的附加拇指键A与C关联的特定功能。附加拇指键A、C使特定的‘换档’功能生效。换档状态从只用五个键(T与1-4)可以得到的最多31(25-1)种组合增加指令/数据输入集合。
C键被方便地规定预换档功能,在激活它时便进入了换档状态,这时后续和弦所取的指令或数据输入值与不曾按C键时不同。考虑图4的实例,在按下键C时得到对下拉面板74及其中所包含的五个标记的访问。在本例中,这五个标记每一个只对应于一个区。当然,有可能使任何标记延伸在一个以上的区上。
另一种换档功能称作‘即时换档’。这是用A键生效的。这一情况有些类似于传统键盘上的换档键,单独使用时键A形成对键B的替代品,它也能与其它的键1-4组合使用。上拉面板76是通过A键与键1-4的组合使用访问的。
图5示出图4的显示的一部分,特别指明下拉预换档面板74。一旦预换档键C生效,后续和弦将使这些标记之一生效。在本实例中,后续组合是单个“3”键序列(增亮的EDIT功能)。这导致‘拉出’另一面板78,并且任何后续和弦访问新面板78中表示的五个标记中的各个。这只是再一次为了方便才使这些标记与五个区一一对应的。
图6示出表示换档状态的进一步布置。显示50中示出三块‘浮动’面板80、82、84。这些面板中每一块包含若干标记(未加标签),各面板象征性地分成顺序地映射到键上的五个区,如图所示。面板80的标记是不用换档键A、C中任何一个访问的。面板82包含面板底部的加粗的线表示的‘拇指线’88(或‘基线’)。这一拇指线88提供为了访问面板82中的标记要求换档状态的视觉指示。拇指线88在面板底部表示需要按下A键。换言之,如上所述将使‘即时换档’功能生效。对于即时换档功能,如图所示面板中只有四个象征性区。这是因为拇指正用于激活A键来进入即时换档状态,从而只剩下其余四个手指可以使用。拇指线布置有一定的理由,在于拇指必须从通常的B键向下弯曲来激活A键,其向下的感觉是与拇指线88在面板82的底部一致的。其余的浮动板84具有位于顶部的拇指线90。这表示为了预换档状态需要向上弯曲拇指来操作C键。如图所示在预换档状态中有五个象征性区。
显示的左上角还包含成倒L形的另一块面板86。‘下拉’约定并不适用于这一面板86,而是拇指线原理起作用。面板86示出为单一的面板,但包含两个分开的象征性区的组,因此作为两块面板更适当。显示左侧向下出现的标记连接在出现在其底边上的拇指线92上,并象征性地分成所示出的象征性区。由于拇指线92在这一部分面板的底部,它表示使用A键,在这一情况中如前面所述只有四个区。沿显示顶边延伸的标记连接在另一条拇指线94上。这一拇指线也在面板的底边,因此又一次表示使用A键。
图7a示出包含五个标记的面板96。还示出了对应于键的象征性区。如果“1”键组成和弦,便弹出另一面板98。另一面板98包含五个不同的标记。如能注意到的,该框内的区垂直于对应于父面板96的框的区。对于第一面板96的其它标记,会出现类似的弹出效果。
图8a与8b示出五按钮输入装置和弦的完整集合(或‘群’)。虚线表示将标志限制在其中的五个象征性区的边界。标记是加阴影的,并为了方便是作为称作“条形和弦”的类型的。注意有些条形和弦并不是由相连的铵键构成的并将这些条形和弦称作“空心条形和弦”。在各标记旁边还示出其“原始和弦值”。利用约定,拇指原点在左边,且象征性区以二进制形式表示,从而任何和弦也能表示为一个唯一的十进制数,下面将会明白这在本发明的一个实施例的实现中是有用的。二进制约定是可逆的,从右至左从0增加到31,但同样能从左至右从0增加到31。
图8c示出五种不同形式的和弦表示,用于如其所表现的具有十进制值1-5的和弦。第一(最左)列示出没有图形提示来观察五个区的划分的条形和弦,将其与第三列中的条形和弦比较。第二列中,五个区的边界用底部水平线表示,而组成和弦的键利用垂直线标示。这种表示称作“雕像和弦”(glyph chord)。第四列表示条形和弦的垂直而不是水平的朝向,拇指原点出现在底部。点与线标志的第五列表示称作“点和弦”(dot chord)。
图8d示出雕像和弦连同它们的原始和弦值的群。
图9示出数字小键盘形式的面板104。表示了全部数字0-9。拇指原点在“1”标记的左下角上。面板104分成两部分,第一部分是数字1-9的3×3阵列106,第二部分为用于0数字的按钮108。“0”按钮是用和弦“T与1与2”激活的。其它数字是用“偶联体”组成和弦访问的。这便是在3×3阵列中各特定数字按扭需要两个和弦的一种独立顺序组合来访问它。例如“1”按钮用偶联体“T”与“T”来访问,而“6”按钮则用偶联体“1”与“3”来访问。偶联体和弦有些与前面讨论的弹出菜单相同,只是弹出按钮总是显示的而不是隐藏的。
图10示出虚拟打字机的格式,基本上包括并排的两块面板110、112。面板之间的划分是用垂直线表示的。面板110包括表示罗马字母表的25个字母的25个按钮的5×5阵列。用偶联体和弦来激活相应的字母按钮。面板110的拇指原点在“e”按钮的左下角上。
作为示例,字母“r”按扭是用和弦“2”与“2”激活的,而“j”按钮是用和弦“3”与“4”激活的。“空格”按钮是用和弦“T与1与2与3与4”激活的。字母按钮的空间布置考虑到在英语中字母出现的相对频率,并将该频率映射到拇指与手指的灵巧性上。从而元音a、e、i与o是用最灵巧的手指拇指与食指的组合访问的。
面板112用于典型的字处理功能。面板112的拇指原点在“句点”按钮的左下角上。这一面板也在偶联体和弦的基础上操作。从而“制表”按钮是用和弦“T与1与2”及“2”访问的。“换档”按钮是用和弦“3与4”及“T”访问的。“数字”与“符号”按钮分别具有访问诸如图9中所示的面板104等数字面板及对于符号集的其它偶联体面板阵列的弹出菜单的性质。
应指出包含在面板110、112两者中的各偶联体和弦是各不相同的。如果提供了第二输入装置,右侧面板可用用户的另一只手组成和弦。图10中所示的布置非常适用于字处理功能,并能以最少的教学以传统标准键盘十分相似的方式触摸打字。
图11示出虚拟计算器114的一种形式。该计算器包括一个3×3偶联体小键盘阵列106(如上面图9中所示),其拇指原点在“1”按钮的左下角上。计算器114还包括与偶联体小键盘阵列106分开的若干个单和弦按钮,如用虚线所示。这些和弦按钮的拇指原点在面板116的左侧。上方窗口118表示计算器114的功能的内部显示,与传统手持式计算器的性质十分相似。激活功能按钮或“0”按钮所需的单和弦与涉及小键盘阵列106内的按钮的任何偶联体的第一和弦无关。作为示例,数字643是用序列“1”与“2”、“1”与“T”以及“T”与“2”组成和弦的。这一数字上可用接连的和弦:“4”然后“T”与“1”然后“T与1与2与3与4”来运算,即乘以2。
图12示出称作交叉和弦的显示布置。沿左侧延伸在显示的上一半中及水平穿过显示的中点的加阴影的按钮的拇指原点示出为T1。布置在显示50的下一半的右侧上的按钮的拇指原点示出为T2。图12还示出激活各按钮所需的和弦,从中可以看出各和弦是互相不同的。
图13示出标记130的替代表示。本例中的约定为,由于只显示矩形框的四个顶点,而拇指永远构成和弦的一部分。接受左下顶点为原点的进一步约定,该和弦将由组合“T与3与4”构成。还示出了点和弦表示。
图14示出构成条形和弦与偶联体的两个标记132、134的组合的实例。两条可能的条形和弦上面重叠有它们的点和弦值,并分别用“T”及“1与2与3与4”构成。第二标记134也能以结合重叠在其上面的的五个条形和弦的标记136-144的偶联体的形式利用。注意已示出了对应于各和弦的点和弦表示。为了激活背景标记134上的中间标记140,偶联体和弦序列为“1与2与3与4”及“3”。
图15a与15b示出若干标记150-156的偶联体和弦的替代表示。还示出了对应的点和弦表示。所采用的约定是水平优先于垂直,从而图15a的情况中得出偶联体“4”及“4”,而图15b则为“3与4”及“T与4”。
图16a示出表示三个条形和弦的一个标记160的缩写格式。沿标记160的底边定位的两个突舌162、164表示访问三个重叠子标记166-170中任何一个需要“T与1”。还示出了这三个子标记166-170的点和弦表示。图16b中,突舌182、184位于标记180的右侧,表示需要键“3与4”以及重叠的子标记186-190的对应键来使和弦生效。
可以选择约定的库,并从这里提出的实例中得出,显而易见一个标记的左侧与/或下方表示拇指原点。拇指永远是起点,如果提供少于五个键,这一点特别重要。水平优先于垂直,顺时针优先于逆时针。所有标记都必须满足它们能分解成一条“按键路径”这一规则。
关于传统意义上的计算装置,本发明的实施例能立即应用,但也同样能包含进取景器控制系统(诸如摄录相机)、自动柜员机、传真与照相复制机、内装式界面(诸如自动售货机维修界面)、移动电话及寻呼机、便携式机械(诸如服务设备)、视频与电视遥控器、交互式电视控制器、个人立体声音响、家用电器(诸如时钟无线电)、运载工具器件(诸如空调、航行控制、立体声、仓室控制等)、动力工具界面(诸如手枪握把式钻)安装控制(诸如导向轮或操纵杆)、游戏与玩具界面、电子板式杂志、袖珍文件夹、手持式计算装置、笔记本与笔型计算机中。
本发明的优点所产生的特殊利益在于标记能容易地改变比例而仍保持其信息内容。这与传统的窗口型系统不同,其中的图符如果能够收缩将会失去它们的信息内容,并且还会难于用指点装置访问。实际上,先有技术窗口系统并没有提供“窗口”或窗口内的图符的比例改变,而只是简单地消去窗口本身。通常使用按照本发明的标记,不需要这种指点,而是只要眼睛能分辨一个标记便能保持其信息内容,当然也依赖于显示装置的象素分辨率。这意味着比传统的窗口系统在显示器上能包含更大数目的标记。
图17a-17c示出上面显示图片表示的显示,在本例中为一位女士。该显示同样可以是一张地图或诸如集成电路图。显示50示出占据整个显示的5×5区阵列。利用前面讨论的偶联体和弦原理,可以得到分段光标或“缩放”功能。
拇指原点位于显示50的左下角,在所示的实例中,偶联体的第一和弦为导致图17b中示出的增加亮度表示的“2”。在激活偶联体和弦的另一半“3”时,该特定和弦的按钮便爆炸而占据整个显示50,如图17c中所示。通过进一步组成偶联体和弦,能得到更大分辨率的细节。
图18a与18b示出分段的显示的变化,它是指点功能。通过键入偶联体和弦“3”与“2”,该特定按钮上重叠一个进一步分段的阵列。一个进一步组成的偶联体和弦还能进一步分割增强亮度的按钮内的按钮之一,来以更具体的分辨率指点所显示的对象。
图19示出输入装置10的机械配置。将主体11的尺寸定为适合于用户的手掌,并且在所示的配置中是适合于左手使用的。因此,拇指环绕主体11的一边而四指环绕顶部。因此能以前面描述的方式激活这些键。这种配置提供可在移动配置中使用的优点。主体11牢固地掌握在手掌中,除了全体闭合动作来激活这些键之外不需要移动这些手指。只要将其翻转,所示出的配置便能方便地适应右手使用,因此它是完全左右手都能使用的。
图20a与20b示出输入装置10′的另一种配置。手持式装置10′包括铰接在一起的两个主体部分12、13。示出了相对于各主体部分12、13的键布置。
这种配置的特殊优点是左右手都能使用的,并且在握在手掌中时也能以图19的控制器10所示的方式使用,在这一情况中相应的主体部分12、13是布置成互相成锐角的,或者两个主体部件在一个公共平面中供作为工作台上键盘使用。
图21示出传统标准键盘布置。本发明的又一实施例提供用这种传统标准键盘进行组合的和弦/标准操作。从而图21中所示的键盘能以通常方式操作,然而在键入与传统输入的单键按压有区别的和弦时,常驻在关联的处理装置上的软件能够识别。在本实施例中,“本位”(“home”)键与空格键用作组成和弦操作的键。如果右手用来组成和弦,则对应于从拇指开始的手指序列的标准键盘序列为:“空格键,J,K,L,;”。如果左手用来组成和弦,则组成和弦键为:“空格键,F,D,S,A”。在实施这一概念的软件的操作中,提供给用户的显示可以是诸如传统的字处理软件包,带有重叠的组成和弦标记。唯一的限制是排除所谓的“单元素”和弦(即单个位按压)。
熟悉编程技术的人员无需任何创造性才能的实践便很容易明白如何进行编码来实现上面描述的发明的实施例。在这一方面包含图22至24,它们分别是组成和弦方法、偶联体方法、以及和弦/标准方法的流程图。图22中步骤200检测按键。如果在步骤202中在松开时要形成一个和弦,则步骤204检验判定是否按下了所有的键,如果是这样,步骤206便发送键入的和弦值。如果在松开时不形成和弦,步骤208延迟键入的和弦的发送。
图23涉及将图22扩展到形成偶联体。步骤210表示等待按和弦,一旦接收到和弦,步骤212判定所按的和弦是否是当前偶联体的一部分。如果否,返回到步骤210。如果步骤212的结果为是,步骤214测试所等待的是否当前偶联体的第二部分。如果否,步骤216判定是否是第一部分,如果再一次为否,步骤218便忽略该和弦并返回到步骤210去等待另一和弦。然而,如果是和弦的第一部分,则步骤220设置“等待”标志并返回到步骤210。步骤214中如果为是,步骤220判定该和弦是否第二部分,如果为否,循环到步骤210,但是如果为是,步骤222清除“等待”标志及提交所按的偶联体。
图24表示组合的组成和弦/标准操作。步骤230等待下一次按压,并在接收到按压时在步骤232中检测是否允许组成和弦。如果为否,步骤234提交按键的标准值。如果允许和弦,步骤236判定该值是否是和弦键(即上述本位键)。如果为否,步骤238判定操作是否只用于和弦,如果为是,步骤240因此忽略按键,否则在步骤242中将按键值作为其通常的标准值提交。如果在步骤236中,按键值是用于和弦,步骤242形成该和弦。接着在步骤242中判定该和弦是否是单元素和弦,如果为否,步骤244发送所按的和弦值,但是如果为是,步骤246判定是否允许单元素和弦。如果为否,步骤248提交标定的标准键值。如果允许单元素,则步骤250发送所按的和弦值。
为了示例目的包含以下编码,它们是与图22至24的流程图相符的。编码是编写成在程序ToolBook(TM)版本3.0上运行的,该程序是美国Asymetrix公司公布的一个基于Windows(TM)的多媒体程序设计工具。代码是用前缀“-”所表示加以注释的。
to set KSQwertyOn to offOn -允许外部对象改变Kordos
system QwertyOn -内部设置
set QwertyOn to offOn -这一设置允许正常的键盘
end
to set KSremainderOn to offOn -允许非和弦键盘按键
system remainderOn
set remainderOn to offOn
end
to set KSChordingOn to offOn -和弦主接通/切断开关
system ChordingOn
set ChordingOn to offOn
end
to set KSQwertyOnly to offOn -封锁和弦
system QwertyOnly
set QwertyOnly to offOn
end
to set KSPressReleaseType to Pval -立即或在松开时形成和弦
system pressReleeseType
set PressReleaseType to Pval
end
to handle Keydown vkey -处理ToolBook(TBK)信息
-信息Keydown,即键盘键
system remainderOn
system QwertyOn -说明这一处理程序的系统变量
system QwertyOnly
system ChordingOn
system pressRelease Type
<dp n="d14"/>
get ChordingOn -检验是否接通,如果否,便跳过
ifit =″false″then
forward
break
end
system clhordList[31] -初始化左与右手
RT=keyspace
R1=keyj
R2=keyk
R3=keyl
R4=keysemicolon
LT=keyspace
L1=keyf
L2=keyd
L3=keys
L4=keya
vvkey=lowercase(vkey) -滤去信息参考数的大写字母
if vvkey=RT or VVkey=R1 or VVkey=R2 or vvkey=R3 or vvkey=R4\
or vvkey=LT or vvkey=L1 or vvkey=L2 or vvkey = L3 or vvkey = L4 then
-检验它是否是键盘上的一个组成和弦键
set chord to 0 -复位局部变量
set thumbPressed to false
set firstPressed to false
set secondPressed to false
set thirdPressed to false
set fourthPressed to false
if pressReleaseType=″WaitForRelease″then -检验和弦如何构成
do
if keyState(RT)is″down″or keystate(LT)is″down″-keyState()是-TBK
func′n
set thumbPressed to true
end
if keyState(R1)is″down″or keystate(L1)is″down″
set firstPressed to true
end
if keyState(R2)is″down″or keystate(L2)is″down″
set secondPressed to true
end
if keyState(R3)is″down″or keystate(L3)is″down″
set thirdPressed to true
end
if keySrate(R4)is″down″or keystate(L4)is″down″
set fourthPressed to true
<dp n="d15"/>
end
until keyState(RT)is″up″and keyState(R1)is″up″\
and keyState(R2)is″up″and keyState(R3)is″up″\
and keyState(R4)is″up″
if qwertyon=′false′
get flushmessagequeue() -清除键盘缓冲器
end
end
if pressReleaseType=″instant″then -其它组成和弦方法
pause 15 -去抖动其它键
if keyState(RT)is″down″or keystate(LT)is″down″
set thumbPressed to true
end
if keyState(R1)is″down″or keystate(L1)is″down″
set firstPressed to true
end
if keyState(R2)is″down″or keystate(L2)is″down″
set secondPressed to true
end
if keyState(R3)is″down″or keystate(L3)is″down″
set thirdPressed to true
end
if keyState(R4)is″down″or keystate(L4)is″down″
set fourthPressed to true
end
if qwertyon=″false″
get flushmessagequeue()
end
end
if fourthPressed is true -建立原始和弦值
set chord to 1
end
if thirdPressed is true
chord=chord+2
end
if secondPressed is true
chord=chord+4
end
if firstPressed is true
chord=chord+8
endif thumbPressed is true
chord=chord+16
end
<dp n="d16"/>
if chord=O then -内部出错陷井
get flushrmessagequeue()
break
end
if qwertyon=′true′then -提交单元素和弦
if chord=l or chord=2 orchord = 4 or chord=8 or chord=16 then
forward
break
end
end
get flushMessagequeue() -清除键盘缓冲器
chordval=chordlist[chord] -查找原始和弦内容
send kordPressed chordval to this Page -发送信息到图形页
-TBK结构
-页提交信息给它上面的所有对象
else -结束非手指字符的检测
-下面处理″ ″
if remainderOn=″true″then -它们要所有非和弦值
forward
else
get flushMessagequeue() -另一次缠人的清除
end
end
end
to handle enterbook -起动时初始化这系统卷
send resetKords -发送信息resetkords
end
to haudle resetKords -设置原始和弦内容
-put otherChords =″ ″here
Handchords=
″1,2,3,4,5,6,7,8,9,1O,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,25,27,28,29,30,
31″
dotChords=
″....|,...|.,...||,..|..,..|.|,..||.,..|||,.|...,.|..|,.|.|.,.|.||,.||..,.n.|,.|||.,.|H|,|....,|...|,|..|.,|..||,|.|..,|.|.|,|.‖.,
|.|||,||...,||..|,||.|.,||.||.|||..,|||.|,||||.,|||||″
system chordList[31]
fill chordlist with handChords in[itrm]order
system remainderOn -说明这一处理程序的系统变量
system QwertyOn
system QwertyOnly
<dp n="d17"/>
system ChordingOn
system PressReleaseType
set qwertyOn to″false″ -复位到已知状态
set remainderOn to″true″
set QwertyOnly to″false″
set ChordingOn to″true″
set PressReleaseType to″WaitForRelease″
end
--this is a typical button handler,it receives the message from the page
-this script is contained
to handle Kordpressed kordval
if kordval=myKordVal of self -检验该信息的参数
-我的预定义属性,即,是我吗?
-****perform some action
end
end
to handle buttonClick -允许鼠标器卡嗒
send Kordpressed myKordVal to self -骗我按压了一个键
至少在提供有用的计算装置适应便携性或在不利的高度移动环境中使用方面,本发明的实施例具有工业可应用性。