具体实施方式
如图1所示,在一个实施例中,一种受控设备的控制方法,包括如下步骤:
步骤S10,采集触摸屏中的触点位置,并将触点位置发送到受控设备。
本实施例中,触点为用户在触摸屏上的接触点。通过触摸屏中产生的触点实现遥控端中的输入,用户在触摸屏上的点击和移动都将产生一系列的触点,每一触点对应了触点位置,进而将产生的触点所对应的触点位置发送到受控设备中。由于触摸屏中的触点是用户在操控受控设备时产生的,因此,采集到的触点位置将体现了用户的操控意图。在优选的实施例中,触点位置可通过触摸屏中触点的坐标进行标识。
在一个具体的实施例中,触摸屏中产生的一系列触点为手势的形式。通过用户在触摸屏上滑动产生的一系列触点形成手势,各种不同的手势分别有其相对应的操控指令,例如,用户的指尖在触摸屏上滑动形成“S”形的手势,该手势对应了解锁的操控指令。
用户手持移动终端,例如遥控器,通过在遥控器的触摸屏上滑动输入手势的场景下,采集触摸屏中触点的坐标,进而将采集到的触点的坐标发送到受控设备中,受控设备可以是电视机、平板电脑等,用户手持的遥控器可以是专为受控设备设置的智能触屏遥控器,也可以通过带有触摸屏的其它移动终端实现。
步骤S30,通过受控设备对触点位置进行解析得到对应的移动方向。
本实施例中,在受控设备接收到触点位置之后,将对触点位置进行解析以得到每一个触点所对应的移动方向。具体的,根据相邻的两个触点所对应的坐标进行运算得到坐标系中两个触点之间的方位角。例如,在构成触摸屏中输入的手势的多个触点中,任意两个连续的触点为movel(x1,y1)和move2(x2,y2),两个触点之间的夹角为A=arctan(|dx|/dy),其中,dx=x2-x1,dy=y2-y1;此时,若dx>0,dy>0,则两个触点之间的方位角为A,若dx<0,dy>0,则两个触点之间的方位角为180-A,若dx<0,dy<0,则两个触点之间的方位角为180+A,若dx>0,dy<0,则两个触点之间的方位角为360-A。
步骤S50,根据对应的移动方向进行响应。
本实施例中,以移动方向作为特征得到用户对受控设备的操控意图,进而对触摸屏中用户的操控进行响应。例如,用户在触摸屏中滑动输入手势的场景中,由于操控指令是与某一预定的手势存在对应关系的,用户按照某一预定的手势在触摸屏上滑动输入手势的过程中,任一方向上的滑动距离通常是随意的,相应的,输入手势的大小也与预定的手势不相一致,但是,每一接触点的方向是一致的,因此,以移动方向作为特征易于实现手势的识别,并提高识别的精确性。
如图2所示,在一个实施例中,上述步骤S10的具体过程包括:
步骤S110,获取触摸屏中触发的动作事件。
本实施例中,用户在触摸屏上点击并滑动产生触点时将会触发动作事件,其中,动作事件包括了点击事件、移动事件和抬起事件,点击事件标记了动作事件的起始,抬起事件标记了动作事件的结束,点击事件所对应的接触点即为采集到的第一个触点,后续采集到的触点为移动事件中产生的。
步骤S130,检测动作事件的触点位置。
本实施例中,随着用户在触摸屏上的点击和滑动,将会依次检测到点击事件和移动事件中产生的触点所对应的坐标。
步骤S150,将检测得到的触点位置存储为操控数据。
本实施例中,操控数据的数据格式优选为数组,检测得到的触点位置依次存入数组中。在优选的实施例中,操控数据包括了事件标识和数据段,其中,事件标识为操控数据中的前缀,用于标记操控数据需执行的事件类型,进一步的,事件标记可以是系统事件或自定义事件。例如,事件标记为操控数据的第一个字节,也就是说,事件标记为8位的二进制数,“00000001”代表系统事件,“00000010”代表自定义事件。数据段为存储了触点位置的数组,随着用户在触摸屏上滑动输入手势,产生的触点位置将被依次存入数据段中。例如,操控数据的数据格式可以为prefix+data[down(x,y),move1(x,y)move2(x,y),move3(x,y)…moven(x,y)],其中,prefix为事件标识,data[……]为数据段,down(x,y)为抬起事件所产生的触点位置,moven(x,y)为移动事件产生的触点位置。
进一步的,对于包括了事件标识和数据段的操控数据而言,上述步骤S30的解析过程中,将首先从操控数据中获取事件标识,进而判断该事件标识是否为系统事件,若是,则直接调用系统驱动执行相应的操作。
在一个实施例中,上述步骤S130的具体过程为:判断动作事件的触点是否为第一触点,若是,则将动作事件标记为点击事件,若否,则将动作事件标记为移动事件。
本实施例中,在触摸屏中触发的动作事件、移动事件以及抬起事件将对应了用户的一系列手势,因此,若判断到动作事件的触点为检测得到的第一个触点,则说明该动作事件为点击事件。
上述步骤S150的具体过程为:以点击事件的触点位置为起始依次存储标记为移动事件的触点位置得到操控数据。
本实施例中,按照触点的产生时间依次存储触点位置,即以点击事件的触点位置为起始依次存储后续检测得到的触点位置。
在另一个实施例中,上述将动作事件标记为移动事件的步骤之后还包括:判断移动事件是否结束,若是,则将动作事件标记为抬起事件,并根据标记的抬起事件结束上述步骤S110。
本实施例中,在发生抬起事件时,用户结束了与触摸屏的接触,此时,用户在触摸屏中的输入也相应地停止,触摸屏中也将检测不到动作事件的触点位置。
步骤S170,按照预设的时间间隔将操控数据发送到受控设备。
本实施例中,根据预设的时间间隔将操控数据通过网络连接发送到受控设备中,以便于受控设备能够实时在显示屏幕中显示用户输入的手势。
在一个实施例中,上述步骤S30的具体过程包括:通过受控设备对接收到的操控数据进行解析得到触点位置以及触点位置对应的移动方向。
本实施例中,在受控设备接收到操控数据之后,将进行解析得到操控数据中存储的触点位置及该触点的移动方向。
如图3所示,上述受控设备的控制方法中,步骤S30之前还包括如下步骤:
步骤S70,对解析得到的触点位置进行偏移处理得到受控设备中操控点位置。
本实施例中,由于触摸屏的尺寸与受控设备中显示屏幕的尺寸各不相同,例如,为方便用户手持遥控器,触摸屏的尺寸大小通常远远小于显示屏幕的尺寸大小;此外,显示屏幕是横屏的,而触摸屏是竖屏的,因此,需对解析得到的触点位置进行偏移处理。
进一步的,根据触摸屏尺寸和受控设备中显示屏幕的尺寸进行换算得到触点在显示屏幕中的放大系数,进而根据放大系数对触点位置进行数据偏移得到操控点位置。具体的,触摸屏的宽度为w1,高度为h1,密度为d1,显示屏幕的宽度为w2,高度为h2,密度为d2,触点在显示屏幕中的放大系数为mim((w1/w2),(h1/h2))*d1/d2。
步骤S90,按照操控点位置在受控设备中模拟触摸屏中的触点,并显示模拟的触点。
本实施例中,通过偏移处理得到的操控点模拟触摸屏中的触点。相应的,对于触摸屏的手势而言,模拟的多个触点所形成的手势为放大了的触摸屏中手势,并模拟的触点显示于显示屏幕中,以对用户的输入进行反馈。
如图4所示,在一个实施例中,上述步骤S50的具体过程包括:
步骤S510,根据移动方向进行编码得到触摸屏对应的序列。
本实施例中,触摸屏对应的序列是由若干个编码值构成的,每一编码值均对应了相应的移动方向,用于对移动方向进行标识。
在另一个实施例中,上述步骤S510之前还包括预先对平面空间进行方向划分得到若干个方向,并将该方向与编码值相关联的步骤。
本实施例中,在触摸屏所对应的平面空间,即平面坐标系中进行方向划分,并将划分得到的每一个方向与某一编码值相关联。例如,如图5所示,将平面空间划分为8个方向,并设定0至7的编码值,将划分得到的方向和设定的编码值一一进行关联,例如,水平向右的方向对应了编码值2,水平向左的方向对应了编码值6,垂直向上的方向对应了编码值0,垂直向下的方向对应了编码值4。
上述步骤S510的具体过程为:在划分得到的若干个方向中提取与触点位置对应的移动方向相匹配的方向,根据提取的方向得到相关联的编码值,并通过编码值得到触摸屏对应的序列。
本实施例中,在触点的移动方向中,对划分的多个方向进行查询以获取与触点的移动方向相匹配的方向,进而根据获取的方向所对应的编码值为触点的移动方向编码,得到一系列的编码值。
例如,如图6所示,触摸屏中用户输入触点所形成的手势为“S”形,在解析得到触点的移动方向之后,如图7所示,根据触点的移动方向在划分的多个方向中得到与触点的移动方向相近或者相同的方向,进而得到该触点所对应的编码值。
步骤S530,在存储的操控序列中查询得到与触摸屏对应的序列相匹配的操控序列。
本实施例中,受控设备中预先设定了操控指令对应的触点的移动方向,即预先设定的一系列的触点所对应的移动方向将是与一定的操控指令相对应的,实现某一功能的操控指令对应了若干个移动方向的编码值。
例如,受控设备中预先设定了与操控指令对应的手势,例如,解锁的手势为“S”形。对于预先设定的多个手势,在解析得到触点的移动方向之后,进行编码所得到的序列为操控序列。换而言之,存储的操控序列是与预先设定的手势相对应的。
在一个实施例中,上述步骤S530的具体过程为:在存储的操控序列中逐一计算操控序列与触摸屏对应的序列之间的编辑距离,并从计算得到的编辑距离中提取最小编辑距离,判断最小编辑距离是否大于阈值,若否,则将该最小编辑距离所对应的操控序列作为与触摸屏对应的序列相匹配的操控序列,若是,则结束。
步骤S550,执行得到的操控序列对应的操作。
本实施例中,在受控设备中执行操控序列所对应的操作,例如,该操作可以是解锁操作、方向控制操作以及验证操作等。
如图8所示,在一个实施例中,一种移动终端10,包括采集模块110以及发送模块130。
采集模块110,用于采集触摸屏中的触点位置。
发送模块130,用于将触点位置发送到受控设备30。
本实施例中,触点为用户在触摸屏上的接触点。通过触摸屏中产生的触点实现遥控端中的输入,用户在触摸屏上的点击和移动都将产生一系列的触点,每一触点对应了触点位置,进而将产生的触点所对应的触点位置发送到受控设备中。由于触摸屏中的触点是用户在操控受控设备时产生的,因此,采集到的触点位置将体现了用户的操控意图。在优选的实施例中,触点位置可通过触摸屏中触点的坐标进行标识。
在一个具体的实施例中,触摸屏中产生的一系列触点为手势的形式。通过用户在触摸屏上滑动产生的一系列触点形成手势,各种不同的手势分别有其相对应的操控指令,例如,用户的指尖在触摸屏上滑动形成“S”形的手势,该手势对应了解锁的操控指令。触摸屏中的手势是由多个触点构成的,该触点为用户在触摸屏上的接触点。在优选的实施例中,触点位置可通过触摸屏中触点的坐标进行标识。
用户手持移动终端10,通过在移动终端10的触摸屏上滑动输入手势的场景下,采集模块110采集触摸屏中触点的坐标,进而发送模块130将采集到的触点的坐标发送到受控设备30中,受控设备30可以是电视机、平板电脑等,用户手持的移动终端10可以是专为受控设备设置的智能触屏遥控器,也可以通过带有触摸屏的其它移动终端实现。
如图9所示,在一个实施例中,上述采集模块110包括触摸屏111、检测模块113以及存储模块115。
触摸屏111,用于获取触摸屏中触发的动作事件。
本实施例中,用户在触摸屏111上点击并滑动产生触点时将会触发动作事件,其中,动作事件包括了点击事件、移动事件和抬起事件,点击事件标记了动作事件的起始,抬起事件标记了动作事件的结束,点击事件所对应的接触点即为采集到的第一个触点,后续采集到的触点为移动事件中产生的。
检测模块113,用于检测动作事件的触点位置。
本实施例中,随着用户在触摸屏上的点击和滑动,检测模块113将会依次检测到点击事件和移动事件中产生的触点所对应的坐标。
存储模块115,用于将检测得到的触点位置存储为操控数据。
本实施例中,操控数据的数据格式优选为数组,存储模块150将检测得到的触点位置依次存入数组中。在优选的实施例中,操控数据包括了事件标识和数据段,其中,事件标识为操控数据中的前缀,用于标记操控数据需执行的事件类型,进一步的,事件标记可以是系统事件或自定义事件。例如,事件标记为操控数据的第一个字节,也就是说,事件标记为8位的二进制数,“00000001”代表系统事件,“00000010”代表自定义事件。数据段为存储了触点位置的数组,随着用户在触摸屏上滑动输入手势,产生的触点位置将被依次存入数据段中。例如,操控数据的数据格式可以为prefix+data[down(x,y),move1(x,y)move2(x,y),move3(x,y)…moven(x,y)],其中,prefix为事件标识,data[……]为数据段,down(x,y)为抬起事件所产生的触点位置,moven(x,y)为移动事件产生的触点位置。
进一步的,对于包括了事件标识和数据段的操控数据而言,解析模块310将首先从操控数据中获取事件标识,进而判断该事件标识是否为系统事件,若是,则响应模块330直接调用系统驱动执行相应的操作。
在一个实施例中,上述检测模块113还用于判断动作事件的触点是否为第一触点,若是,则将动作事件标记为点击事件,若否,则将动作事件标记为移动事件。
本实施例中,在触摸屏中触发的动作事件、移动事件以及抬起事件将对应了用户的一系列手势,因此,若检测模块113判断到动作事件的触点为检测得到的第一个触点,则说明该动作事件为点击事件。
上述存储模块115还用于以点击事件的触点位置为起始依次存储标记为移动事件的触点位置得到操控数据。
本实施例中,存储模块115按照触点的产生时间依次存储触点位置,即以点击事件的触点位置为起始依次存储后续检测得到的触点位置。
在另一个实施例中,上述检测模块113还用于判断移动事件是否结束,若是,则将动作事件标记为抬起事件,并根据标记的抬起事件停止触摸屏111获取触发的动作事件的操作。
本实施例中,在发生抬起事件时,用户结束了与触摸屏的接触,此时,用户在触摸屏中的手势输入也相应地停止,触摸屏中也将检测不到动作事件的触点位置。
发送模块130还用于按照预设的时间间隔将操控数据发送到受控设备30。
本实施例中,发送模块130根据预设的时间间隔将操控数据通过网络连接发送到受控设备30中,以便于受控设备30能够实时在显示屏幕中显示用户输入的手势。
如图10所示,在一个实施例中,一种受控设备30包括解析模块310以及响应模块330。
解析模块310,用于对触点位置进行解析得到对应的移动方向。
本实施例中,在受控设备30接收到触点位置之后,解析模块310将对触点位置进行解析以得到每一个触点所对应的移动方向。具体的,解析模块310根据相邻的两个触点所对应的坐标进行运算得到坐标系中两个触点之间的方位角。例如,在构成触摸屏中输入的手势的多个触点中,任意两个连续的触点为movel(x1,y1)和move2(x2,y2),两个触点之间的夹角为A=arctan(|dx|/dy),其中,dx=x2-x1,dy=y2-y1;此时,若dx>0,dy>0,则两个触点之间的方位角为A,若dx<0,dy>0,则两个触点之间的方位角为180-A,若dx<0,dy<0,则两个触点之间的方位角为180+A,若dx>0,dy<0,则两个触点之间的方位角为360-A。
在另一个实施例中,解析模块310还用于对接收到的操控数据进行解析得到触点位置以及触点位置对应的移动方向。
本实施例中,在受控设备30接收到操控数据之后,解析模块310将进行解析得到操控数据中存储的触点位置及该触点的移动方向。
响应模块330,用于根据触点位置和对应的移动方向进行响应。
本实施例中,响应模块330以移动方向作为特征得到用户对受控设备的操控意图,进而对触摸屏中输入的手势进行响应。例如,用户在触摸屏中滑动输入手势的场景中,由于操控指令是与某一预定的手势存在对应关系的,用户按照某一预定的手势在触摸屏上滑动输入手势的过程中,任一方向上的滑动距离通常是随意的,相应的,输入手势的大小也与预定的手势不相一致,但是,每一接触点的方向是一致的,因此,以移动方向作为特征易于实现手势的识别,并提高识别的精确性。
如图11所示,上述受控设备30还包括偏移处理模块350以及手势模拟模块370。
偏移处理模块350,用于对解析得到的触点位置进行偏移处理得到操控点位置。
本实施例中,由于触摸屏的尺寸与受控设备中显示屏幕的尺寸各不相同,例如,为方便用户手持移动终端,触摸屏的尺寸大小通常远远小于显示屏幕的尺寸大小;此外,显示屏幕是横屏的,而触摸屏是竖屏的,因此,需偏移处理模块350对解析得到的触点位置进行偏移处理。
进一步的,偏移处理模块350根据触摸屏尺寸和受控设备中显示屏幕的尺寸进行换算得到触点在显示屏幕中的放大系数,进而根据放大系数对触点位置进行数据偏移得到操控点位置。具体的,触摸屏的宽度为w1,高度为h1,密度为d1,显示屏幕的宽度为w2,高度为h2,密度为d2,触点在显示屏幕中的放大系数为mim((w1/w2),(h1/h2))*d1/d2。
手势模拟模块370,用于按照操控点位置模拟触摸屏中的触点,并显示模拟的触点。
本实施例中,手势模拟模块370通过偏移处理得到的操控点模拟触摸屏中的触点。相应的,对于触摸屏的手势而言,模拟的多个触点所形成的手势为放大了的触摸屏中手势,并模拟的触点显示于显示屏幕中,以对用户的输入进行反馈。
如图12所示,在一个实施例中,上述响应模块330包括编码单元331、查询单元333以及执行单元335。
编码单元331,用于根据移动方向进行编码得到触摸屏对应的序列。
本实施例中,触摸屏对应的序列是由若干个编码值构成的,每一编码值均对应了相应的移动方向,用于对移动方向进行标识。
在另一个实施例中,上述响应模块330还包括预处理单元,该预处理单元用于预先对平面空间进行方向划分得到若干个方向,并将方向与编码值相关联。
本实施例中,预处理单元在触摸屏所对应的平面空间,即平面坐标系中进行方向划分,并将划分得到的每一个方向与某一编码值相关联。
上述编码单元331还用于在划分得到的若干方向中提取与触点位置对应的移动方向相匹配的方向,根据提取的方向得到相关联的编码值,并通过编码值得到触摸屏对应的序列。
本实施例中,在触点的移动方向中,编码单元331对划分的多个方向进行查询以获取与触点的移动方向相匹配的方向,进而根据获取的方向所对应的编码值为触点的移动方向编码,得到一系列的编码值。
查询单元333,用于在存储的操控序列中查询得到与触摸屏对应的序列相匹配的操控序列。
本实施例中,受控设备中预先设定了操控指令对应的触点的移动方向,即预先设定的一系列的触点所对应的移动方向将是与一定的操控指令相对应的,实现某一功能的操控指令对应了若干个移动方向的编码值。
例如,受控设备30中预先设定了与操控指令对应的手势,例如,解锁的手势为“S”形。对于预先设定的多个手势,在解析得到触点的移动方向之后,进行编码所得到的序列为操控序列。换而言之,存储的操控序列是与预先设定的手势相对应的。
在一个实施例中,上述查询单元333还用于在存储的操控序列中逐一计算操控序列与触摸屏对应的序列之间的编辑距离,并从计算得到的编辑距离中提取最小编辑距离,判断最小编辑距离是否大于阈值,若否,则将该最小编辑距离所对应的操控序列作为与触摸屏对应的序列相匹配的操控序列,若是,则结束。
执行单元335,用于执行得到的操控序列对应的操作。
本实施例中,在受控设备30中执行单元335执行操控序列所对应的操作,例如,该操作可以是解锁操作、方程控制操作以及验证操作等。
在另一个实施例中,一种受控设备的控制系统,该系统包括如上所述的移动终端10和受控设备30。
上述受控设备的控制方法和系统,可用于通过遥控端中的手势对受控端进行控制的各种应用,例如,受控端中上下左右显示方向的控制、受控端的验证。
上述移动终端可以是手机、PDA(PersonalDigitalAssistant,个人数字助理)等装置,上述受控设备可以是电视机顶盒、平板电视等大屏幕设备。
上述受控设备的控制方法和系统、移动终端和受控设备,采集触摸屏中的触点位置,并发送到受控设备中,使得受控设备通过触点位置得到对应的移动方向,进而根据移动方向进行响应,从而通过触摸屏中触发的手势操控受控设备,不需要接触受控设备,也不需要在多个按键中找出某一按键,提高了操作上的方便性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。