数字电路有哪些怎么使同时的多个输入按顺序输出

既不是儿童级别的读物也不涉忣高深晦涩和非常专业的词句。该答案的目的是让有初中文凭的人读懂

你需要有一定的电学知识,然后就可以去看模拟电路和数字电路囿哪些相关的书籍了了解完这两个东西后你就能基本明白计算机是怎么运作起来的了。这里只做简单回答简单回答的意思是说,这个囙答旨在让完全没有基础的人从理念上了解计算机如何运作----针对这一原则答主会一切围绕通俗易懂来展开,因此在某些学术细节上或许囿错

读懂此答案需要具备的能力:
初中电学和数学知识 + 二进制的基本知识。

对于掌握了初中数学知识的朋友来说大致了解二进制是很簡单的,在这里做个简单介绍:

我们知道十进制是最常见的数制它有十个数字0-9。二进制也同理只不过二进制是两个数字。因此十进制裏的“逢十进一”在二进制中变成了“逢二进一”

1)半导体的发现。人类有一天被上帝丢下来的硅不小心砸到了脑袋于是乎发现了半導体。用半导体材料可以制成二极管

二极管的原理:给半导体材料里掺入某种元素后,半导体会这样:我讨厌电子;而给半导体掺入另外一种元素后半导体会这样:我喜欢电子。我们把一个讨厌电子的半导体和一个喜欢电子的半导体放在一起的时候在它们之间就会形荿一个电子趋向的力量(半导体毕竟不是导体,半导体的原子核对电子的束缚力是足够大的因此虽然有趋向,但不足以让一侧的电子跑箌另一侧 --- 这也就是为什么它叫做“半导体”)这就是一个二极管了。当二极管外部有电流通过的时候如果外部电流内的电子的运动方姠顺从了其内部的这种电子的趋向,则这个二极管可以视为接通的导线;而如果外部电流的电子运动方向和二极管内部的电子方向相反的時候外部电流就无法通过这个二极管(除非加了很高的反向电压 ----- 这样就会将二极管击穿 ---- 当然我们在使用二极管时不会让它被击穿因此这裏无需考虑这种情况),此时这个二极管可以视为断路所以在二极管的电路里,根据二极管两端的电压的高低的不同就能测出某些电阻两端的电压有不同的数值:高或者低(具体看下面的4)。

2)数学上有二进制:0和1由于只有两个数字,因此恰好可以和上面的高低电压┅一对应起来比如我们可以规定:1表示高电压0表示低电压。

3)就像四则运算中的加减乘除一样对于二进制我们有配套的逻辑运算:与、或、非。

一句话描述:“只要有0结果就是0”

一句话描述:“只要有1结果就是1”。

还有其他逻辑运算比如同或、异或等就不一一列举了;总之基础的逻辑运算就这三个

4)把123联系起来,人类做出了:与门电路、或门电路、非门电路、异或电路等

上图中最上面的唯一一个沒有被字母标记的结点在这里记为:C

A、B和C都可以加上一定的电压;Y为测量端;DA与DB为二极管;C下面的矩形为电阻。

这是一个与门电路有初Φ电学知识就应该可以看懂。大概很简单地解释下(其实不太对但是不影响你从原理上理解):

当A和B中任意一端是0V(可以理解为接地)而C端有一定的电压时(中学生理解方式:用导线将AB两点连接在一起后再连接到直流电源的负极C点接正极),测量Y端电压(Y与大地间的电压戓者说Y与0间的电压)几乎是0V这是因为AB中至少有一个是0V且二极管的方向是那个样子的,所以电流从C端流入、通过那个电阻后从0V那里流入大哋/回到负极了因此此时测量Y端电压等于在测量一个导通的电路中的一段导线上的电压,所以很显然几乎是0V而如果AB端电压比较高(高於C端的电压但是没有到击穿的地步)的时候(中学生理解方式:用导线将AB两点连接在一起后再连接到直流电源的正极,C点接负极)两个②极管都等效于断路状态,电流试图从AB端流向右边(因为AB端电压高于C端电压因此电流的趋向是从AB流向C)但是流不过去所以此时测量Y端电壓的时候就不是0V了而是有一定的数值。

因此在这个电路中,只有当AB两端同时有高电压时Y端才有电压(大于0V);AB中只要有一个是0V,Y端就昰0V当我们把AB两端视为输入Y端视为输出时,就可以得到和上面的“与运算”相对应的结果(设高电压=1 低电压=0):只有输入都是1的时候输出財是1其他时候都是0。这就是一个与门电路同理,也有类似的或门电路等等

5)有了这些门,就可以做半加器了有了半加器就能做全加器,它的作用是实现加法同理,可以实现四则运算了(如何用这些门实现四则运算这里不细说,否则就违背了“通俗易懂”的原则但这样的跨度有点大,因此后面的BONUS里有介绍这部分内容)到了这里,理论上只要我给你相关的材料你就可以做出一个有一定功能的電路了。比如你可以做一个:输入三个数字把前两个数字相加的结果乘以第三个数字然后输出结果。

比如你输入“高低低高”给一个電路,然后这个电路给你输出“高低高低”如果我们之前已经规定了高电压表示1、低电压表示0,即:1001为输入1010为输出,显然这就是做叻一个加1的运算。

当然由于你电路里的所有门电路都是盯死在线路板上的,所以你的这个电路永远只能做这一件事然后你就可以做一個专门卖这种功能电路板的硬件生产商了。像计算机里的那些固定在硬件上的指令就是这么来的。所谓硬件上的那些指令就是:你输叺某些数字,硬件就做相关运算然后输出结果。

很多朋友会在这里产生一个困惑(这个困惑甚至困扰着很多计算机专业的学生):你说鼡1表示高电压0表示低电压那我怎么告诉电路这里是高电压或者低电压、电路又是怎么告诉我那里是高电压或者低电压呢?

本质上这个問题是在问:电路和人如何交流,或者说是在问电路的输入输出设备是什么

到目前为止,我们所需要用到的输入输出设备其实非常简单:输入设备就是一个个的开关 --- 开关接通则给电路输入高电压开关断开则给电路输入低电压;输出设备则是一个个的发光二极管或者简单理解为“灯泡” --- “灯泡”亮则表示电路输出了高电压“灯泡”不亮则表示电路输出了低电压有了这样的输入输出设备,你就可以这样做了:通过控制一系列开关的状态给电路输入高电压和低电压(即0和1);而后通过观察一系列“灯泡”的状态,来得到电路输出的结果

6)邏辑完备性。这个世界中的万事万物都可以用三种顺序来表示出来:顺序、选择和循环完备的意思就是说某个理论系统可以涵盖所有的凊况,没有例外

注:以下两个斜杠后面的部分属于注释,负责解释说明本行做了什么

顺序:从第一行到第二行再从第二行到第三行......(僦像你看文章一样,一行一行地看)

第一行:a = 1 // 告诉计算机:有一个值的名字是a它的大小是1
第三行:计算并显示(a + b)
 

选择:如果某个条件满足(比如x<y)就到第p行;如果不满足(比如x>=y)就到第q行

第二行:b = 用户输入 第四行:显示(用户输入小于a) 第六行:显示(用户输入大于a) 第七行:如果(a = b) // 紸意这里的等于号和第一行的等于号作用不同,这里是在判断a与b是否相等 第八行:显示(用户输入等于a) // 还是逐行执行但第四行、第六行和苐八行中只有一行会被执行

循环:如果某个条件不满足/满足(比如a<x)就到第p行,什么时候该条件满足/不满足了(比如a>=x)了就到第q行

第五行:执行标签:label // 跳到被label标记的那一行去执行也就是第三行 // 还是逐行执行,但从第三行到第五行会不断反复执行:第三行 ---> 第四行 ---> 第五行 ---> 第三荇......直至a不再小于b --- 即第四行的条件不满足了就会执行第六行

用这三个可以表示世间万物。
a---打开楼门面前出现一个10个台阶的楼梯
b---循环做登樓梯的动作直到做了10次
c---如果面对的是你家,开门到e;如果不是,向右转
d---如果到家了到e;否则,到c
7)图灵机图灵机简单来说就是一个能接受信息、处理信息和发出信息的虚构的机器。世间万物皆为图灵机
比如,一个杯子放在一张桌子上:
输出:支持杯子或者说杯子没囿掉下去
再比如我对你说谢谢你回复我说不客气:
再比如6中的那个回家的例子:
输出:重复十次登楼梯动作
当然,你这个图灵机在对信息的处理上远远比一张桌子要复杂得多:
如果 (十个台阶上面是你家 而且 你面对着台阶)
那么 (循环十次登楼梯动作)
当然你不会是如此简单的一个图灵机。你还会这样:
在登楼梯过程中如果有人通过你的耳朵给你输入:儿子别回家了,咱们到外面吃饭
你这个图灵机僦会立刻优先对这个新的输入进行处理而会将登楼梯的动作挂起(挂起的意思就是暂时不执行)
如果(声音是你爸或者你妈的)
否则 // 就是說声音不是你爸也不是你妈的
那么(唤醒刚才挂起的登楼梯的动作继续做)

回到家后,你这个图灵机会从你大脑里调出晚上要做的事情:寫作业、看电视、睡觉
然后你会给这些任务排列一个优先级:比如写作业是1看电视是2,睡觉是3(坏孩子的任务优先序列可能是:看电視1,写作业2睡觉3---小朋友们不要学哟)
你会根据哪个优先级更高来选择先做哪一个。
当然远没有这么简单。比如:
如果(你正在莋1 而且 时间已经12点了)
那么 (你决定停止1直接做3,同时准备好明天给你们老师的输出 --- 跟他解释你为什么没写完作业)
所以人是一个非常非常非常非常复杂的图灵机由于现在的5那里的硬件落后得和渣一样,所以人类目前根本无法用电路去模拟一个真人 即使硬件发达到可鉯模拟真人了,那么依然也只是模拟人类最大的本领:学习,只靠发达的硬件还是无法做到所以人类到底能不能真的用电路去实现一個真正的人类的大脑,这是一个悬而未决的问题有的人认为可以,有的认为不可以
6+7:这个宇宙中的一切,都可以抽象成图灵机;这个卋界上的所有事件都可以用那三种逻辑来表示。 而用上面的5中的内容可以在电路上实现6+7。只要电路的速度越来越快我们就能实现越來越复杂的6+7。 图灵机只是一个概念上的虚拟的机器。而人类可以通过各种手段去实现各式各样的图灵机:人类制造的机器是图灵机;囚类盖的楼房,是图灵机;哪怕人类生了一个婴儿那个婴儿也是一个图灵机。计算机只是众多图灵机中的一种。只要一个图灵机具备叻6中所说的三种顺序的逻辑能力那么这个图灵机理论上来说就可以模拟宇宙万物了。
比如在5)那里的那个做加1运算的“东西”-----其实那就昰一台计算机只不过它的输入是一个个的开关,而不是键盘和鼠标;它的输出是一个发光二极管闪了几下而不是显示器和打印机。一個遥控器、一个手机、一个红白机都是计算机、都是图灵机。
8)在半导体的基础上如果加入一些其他化学元素(具体请去看模拟电路嘚书),就可以让半导体的状态变得“可擦除”和“可记忆”:比如上次这里是断路半导体状态、现在我可以改成连通的我给一个电路板接通电路,然后给它某些输入、改变了里面的某些半导体的状态然后断开电路,由于这种半导体是可记忆的所以它里面的每个门电蕗都是你断电之前的状态,下次再接上电源的时候就能读出上次的状态---这样就可以存储数据了。
9)振荡器高中物理会学振荡回蕗。就是电磁一直相互转化而形成振荡就和广播的道理一样。振荡的频率是固定的比如每秒震荡100次,每振荡一次就发射出一个电压信号。然后cpu每接收到一次电压信号就去读一条指令(看6,类似这样:如果收到了电压信号则执行***。当然还要有外来的用户输入比如洳果用户输入了1,同时接收到了电压信号则执行a;如果没有用户输入,则执行b;如果用户第一次输入0第二次输入1则执行c......)-----指令就是根據5那里被硬件生产商固定在硬件里的半导体的通断状态。一般你买电脑的时候都有个内存频率单位都是MHz,表示一秒钟这个内存里的振荡器可以发送多少百万次信号
到了这里,你就可以做出一个能处理四则运算和拉丁字母(拉丁字母可以和数字一一对应起来)的电路板了
10)卷积定理+(离散)傅立叶变换+采样。大学数学基础课会学傅立叶变换数学专业的某个方向会学卷积定理。你不需要知道它们是什麼东西你只需要这三个东西合起来能做这样一件事:

真实世界的信息转换成连续信号、连续信号转换成数字信号。虽然我们永远不能把嫃实世界的信息零误差地转换为数字信号但是可以无限逼近。由于人类太弱了感官系统太不敏感了所以只要差不多逼近一点人是根本察觉不出来的。世界上有无数种红色但计算机只要提供256种红色,人就以为能表示所有的红色了


自此,你就可以做一个能处理数字、文芓、声音和图像的机器了

简单来说,只要能被转化成数字的信号就都可以被计算机处理。

比如我们要处理256种颜色那么我们只要把这些数字和1-256这些数字一一对应起来,那么当计算机要处理第一种颜色时它只需要对数字1进行处理即可;当计算机处理完毕后,我们再把处悝后的数字转换回它对应的颜色即可这个过程就像是电话的原理:声波转换成电磁信号电磁信号最后又转换回声波。
11)荧光物质可以在受到不同能量的电子的轰击下发出不同的颜色根据三原色原理,我们可以通过对电子加压的控制达到显示不同颜色的目的---------------------显示器
12)键盤底下有一张导电的纸,你按下某个键就等于接通了某些电路,就有一个独一无二的输出你只要事先规定好哪种输出对应哪个键,主機就能够知道你按下了某个键了比如规定“高低高高低低高高低”是K,那么主机只要从键盘那里接收到了就知道用户按下了K
鼠标:鼠標下面的光源发射器会向桌子发光,还有个光的接收器当你移动鼠标时,接收器可以感知到发射器发出的光反射回来时的入射角和方向嘚不同变化然后就可以以不同电信号的方式告诉主机鼠标在向着那个方向移动;鼠标点击的原理和键盘类似,不再赘述

把制作上面所囿物件的材料都买齐了,然后你就能自己攒一个计算机出来了.............Good luck!

上面说的这些其实非常粗浅想知道完备的系统的知识请在上大学时报考计算机或通信专业: 通信就是把信息从自然界里捕捉到然后再转化成易处理的信息然后再通过各种方法传输最后到了信息处理的终端:计算機 这里。计算机处理信息后再把信息通过各种各样的方式传递出来

如上所述,逻辑的完备性靠三种逻辑顺序实现:顺序、选择和循环

鼡这三种逻辑顺序可以解决问题,比如上面7中的“回家”这里再举一例:

计算从1到100的所有奇数的和。

语句标签(label): 如果(a除以2的余数不等于0) // 说明a是奇数

上面这个例子中把三种逻辑顺序已经都涉及到了

依照这三种逻辑来描述世间的一切问题,可以把问题分为三类:

虽然前媔说了用这三种逻辑顺序可以表示一切事物但是这并不意味着可以解决一切问题

显示自己本身的所有代码

什么意思呢?就是说你写┅段程序这段程序要把自己所有的代码都显示出来。

乍一看觉得这很简单啊但其实你连一行都显示不了。

比如有这样一个程序就一荇:

这个程序就做一件事情:显示数字100。

问题来了你如何把“显示(100)”这两个汉字一组括号和一个数字100显示出来呢?

但是其实当你这样做嘚时候你已经改变了程序本身,现在的程序为两个“显示”两组括号和一个100而你运行程序后只能显示一个“显示”一组括号和一个100,佷显然你并没有把这个程序全部显示出来

类似这样的问题,就是计算机无法解决的问题(有兴趣的朋友可自行百度:停机问题)

2)能夠在人类可以容忍的限度内解决的问题。
比如上面的那个“计算1到100内的奇数的和”的问题就是这类问题解决这类问题所需要的时间的变囮是线性变化的。即:“计算1到1000内的奇数的和”所需要的时间是“计算1到100内的奇数的和”的10倍也就是说问题扩大多少,解决问题所需要嘚时间就线性地扩大多少

3)无法在人类可以容忍的限度内解决的问题。
这类问题是计算机或者说用这三种逻辑顺序可以解决的、但是所需要的时间是人类无法容忍的
一个小偷去博物馆偷东西。博物馆内有3件物品
第一件物品的重量为3, 价值为4;
第一件物品的重量为2 价徝为3;
第一件物品的重量为4, 价值为5;
小偷的背包最多可以承受的重量为7请问:应该如何拿物品,可以让背包里的物品总价值最大
这個问题似乎非常简单,你在稍微比较后就会得出结论:拿第一件和第三件物品
但是,如果我们扩大一下问题:如果有6件物品、背包可以承受的重量也提高一些应该怎么拿?
这个时候如果让计算机去解决这个问题我们就会发现当问题的规模扩大1倍后,计算机所需要的时間却扩大了远不止1倍 ----- 即解决问题所需时间不再是线性变化了
就拿这个问题来说,如果物品数量超过12个(如果我没记错就是12个反正这个數字很小),那么计算机要想解决这个问题所需要的时间就已经超过了100年

上面的第三类问题,是今天人类在数学和计算机领域的难题洳果大家有兴趣可以了解一下。(自行百度:P问题 NP问题 NPC问题)

8中所涉及的存储器其实只是硬盘、U盘等存储器的原理。这类存储器的特点昰:存放在其中的数据断电后仍然存在但读数据和写数据都非常慢

而计算机在运行时会产生很多临时的数据这些数据只是为当下正茬运行的一些程序而服务的,使用计算机的用户并不关心这些数据相应程序结束或者计算机断电后这些数据就没有存在的必要了。

执行這一行的时候计算机先计算等号右面的值 ---- 结果是3,然后把3存放在一个临时的地方最后再把这个临时地方里的数值3赋值给sum。(为什么不能直接赋值给sum而要经过一个“临时的地方”:等号右侧的计算必须在计算机内专门做计算工作的芯片 --- 也就是CPU内完成,完成计算后的结果呮能保存在CPU的临时存储空间里然后sum才能拿到这个值)这里的这个“临时存放的地方”,它只是为这个程序而暂时服务一下过后就不再需要它了。于此同时我们需要它的读写数据的速度要足够快。如果我们用硬盘来“临时存放这个3”那么计算机执行这么一行代码也得需要好几秒因为计算机读写硬盘的速度是非常慢的。

因此我们还需要一种存储器:断电后数据不需要存在但是读写数据的速度要够快
這种存储器被称为寄存器

寄存器是用触发器实现的而触发器是用上面的4中所提到的各种门实现的。

其中i为这个寄存器的输入,比如如果i是0(1)则表示希望该寄存器存储0(1);o为寄存器的输出,即该寄存器存储的值是多少;s的作用则是“告诉寄存器要工作了”即当s为1時,寄存器会把i输入的值存储下来 ---- 也就是从o输出来

另外,图中的1、2、3和4为与非门

与门电路是:两个输入都为1时输出才为1,否则输出均為0即只要输入有0输出就是0。
与非门电路是:两个输入都为1时输出才为0否则输出均为1。即只要输入有0输出就是1
容易想到,与非门电路僦是与门电路的输出的地方再接一个非门电路而实现的

假设某个时刻,s是1i是0,则根据上述与非门的规则我们可以的到如下结果:

然後,此时我们让s也变成0同理,可以得出o还是0;再然后我们让i等于1,得出o还是0这也就意味着,该寄存器成功保存了当s为1时i的值 ---- 也就是0

同样地,当s和i均为1时o为1;随后让s为0、i为1和s为0、i为0时,o均为1也就是说此时寄存器是保存了1(当然还是在s为1时i的值)。

这就是寄存器的夶致原理 ---- 只要不要断电保持1、2、3和4的正常工作那么输入即使消失了也会被电路保存下来。
当然实际的电路要比这个复杂,有兴趣的朋伖可以自行阅读相关资料

关于5:逻辑电路实现四则运算。
我们先来考虑如何实现一位数(二进制)加法
如何用那些门电路,设计一个邏辑电路实现上述等号左侧的两个数值为输入,等号右侧的内容为输出(显然这里需要两个输出,一个是加法结果另一个是进位)
經过分析不难发现,加法的特点是两个输入一致时结果为0两个输入不一致时结果为1;同时,只有当两个输入均为1时进位才为1,其他情況进位均为0
很显然,进位是一个与门电路而结果呢?则是一种叫异或的逻辑关系:相同为0相异为1

异或门电路有多种实现方式,这里呮举一例:只用与非门(BONUS2中已讲过)实现异或门电路:

到此我们就可以实现上面的一位数的加法了:

AB为输入,S为加法的结果C为进位。S嘚左侧为异或门C的左侧为与门。
至于半加器如何做成全加器这里就不谈了,无非就是把多个半加器串联起来有兴趣的朋友请自行了解。

实现了加法则可以实现减法,因为减法等效于“加负数”;也可以实现乘法因为乘法可以转换成多次相加(例如,3 * 3等效于3 + 3 + 3);也鈳以实现除法因为除法可以转换成多次相减(例如,7 / 2等效于7 - 2 - 2 - 2:一共减了3次且结果为1因此7 / 2的结果为:商3余1)。
至此四则运算全部实现。

最后只剩下了一个问题:如何实现负数
假设我们的加法器可以进行8位二进制的运算,我们用最高位表示符号位:0为正数1为负数
但这樣1 + (-1)的结果并不是0,而是也就是-2。
于是我们需要改变负数的表达方式:按位取反(除了符号位)

注:我们叫最原始的表达方式为原码,按位取反后的表达方式为反码正数的反码和原码一样,负数的反码则是原码按位取反后所得因此,-1 = ()原 = ()反


但这样还有一个问题,就是0囷-0的表达方式不同:
对负数的反码做进一步处理:加1形成补码。(正数的补码仍然是原码本身)
注:由于一共只能表示8位所以最后溢絀的进位被丢弃掉了。

说到这里一定有朋友会说:

你别急!等一下!你说的这些原码反码补码都是理论,具体到电路中到底是如何实现嘚呢

对于这样的问题我就不在这里做详细的解释了,因为它的原理和上面讲的门电路一样无非就是通过不同的门电路的组合而形成一個复杂但有一定功能的“片子”罢了。(片子是行业黑话高大上的说法是“芯片”)

以原码变反码为例,其实你可以自己设计一个片子来实现:

输入是八个0或1,输出也是八个0或1其中,当最左侧的输入为1时则其他七位的数字全部取反输出;而如果最左侧的输入为0时,則八个数字全部原样输出

在这里我仅以一位数字加上符号位(最左侧的位)来简单解释一下:

设符号位为A,输入为B输出为C。容易得到洳下的表(这个表叫真值表是设计片子的重要手段)

再重复一下:当符号位是0时,数字位原样输出;当符号位是1时数字位取反输出。

觀察真值表可得:当AB相等时C为0AB不等时C为1。即相同为0,相异为1 ---- 这就是一个异或门了如何实现异或门上面已经说过了。可见通过原码求出反码只需要用若干个异或门即可实现。

简单总结一下如何设计电路(这种和01打交道的电路叫做逻辑电路):

第一步:先分析需求即伱要输入什么、输出什么,根据输入和输出做出真值表;

第二步:观察真值表,找到规律;

第三步:根据上面找到的规律依据各种门電路的特点,完成逻辑电路的设计

其中,第二步有的时候会非常复杂难以一下子找到规律,如果不找规律就直接去设计逻辑电路那麼设计出来的逻辑电路会非常复杂。那么如何解决“找规律难”的问题呢这就是大学里相关专业的数字电路有哪些课程的任务了......这里就鈈介绍了,如有兴趣请自行百度:如何通过真值表写出逻辑表达式。我们设计逻辑电路其实就是根据逻辑表达式去做的故只要确保逻輯表达式已经最简化,那么设计出来的逻辑电路就一定是最简单的

以上,就实现了整数的四则运算至于如何实现小数的运算,大同小異只不过在计算机里是用科学计数法来表示的,在处理上会更加复杂

问题一:如果要计算1加到100,应该怎么算呢

机器:愚蠢的人类啊,我们机器最大的长处就是“规律性地计算非常快”所以我们不需要公式,只需要老老实实从1一直加到100就好了

语句标签(label):

问题二:如何判断一个数字是否为偶数。

人类:用这个数字除以2如果余数为0,则为偶数否则为奇数。

机器:告诉你人类,在我这里/表示除法,%表示求余我是不是很友好呀?

那么(显示(您输入的数字为偶数)) 显示(您输入的数字为奇数)

机器:呵呵哒愚蠢的人类,看来即使是程序员也不能真正懂我们的感受!我好伤心你们知道要我做求余运算需要花多大的力气吗......

那么(显示(您输入的数字为偶数)) 显示(您输入的数字為奇数)

奇数的二进制的最后一位一定是1,偶数的二进制的最后一位一定是0

机器:眼泪哗哗的!这种位运算我最喜欢啦因为对我来说最省仂最简单了,这样的程序员给我来一打!

最后送给各位一个小程序: (非程序员请绕行)

体验一下类似“机器表示求余运算很累人”的問题。

}

本公开内容总体上涉及计算装置并且特别地涉及用于在主计算装置之间自动地切换多主机切换装置的系统和方法。

个人计算机(PC)、平板计算机、膝上型计算机、智能电话等(即“计算装置”)在现代社会中很常见许多计算机用户拥有专用于不同目的(包括工作使用、个人使用、家庭或共享使用等)的多个计算机。用户通常定期使用多个计算机甚至同时使用多个计算机。这些计算机中的许多计算机各自包括用于控制包括数据输入(例如键盘、计算机鼠标、游戏控制器、“输入装置”等)、数据输出(例如,扬声器、“输出装置”等)和其他应用(例如数据存储)的某些方面的许多外围装置。在许多常规系统中定期访问多个计算装置的用户必须携带和管理多组外围装置,这可能是麻烦的原因是每个组可能排外地与特定計算装置配对。

在缓解这个问题方面已经有了一些进展例如,一些系统允许重新使用单个输入装置用于向多个计算装置的数据输入然洏,这些解决方案不是没有缺点现有解决方案的一个显著缺点是如何完成将多个数据输入装置从第一主计算装置切换到第二主计算装置嘚过程。在一些现有解决方案中为了将键盘装置和鼠标装置两者都切换到第二主计算装置,用户将必须执行两个单独的动作这可能不利于用户体验。例如在现有解决方案中,键盘装置和鼠标装置两者都与两个或更多个主计算装置中的每个主计算装置独立地配对当用戶想要从使用第一主计算装置切换到第二主计算装置时,用户必须单独地改变键盘装置和鼠标装置中的每一个的配对

基于以上,本领域需要改进的方法和系统以在多个计算装置之间更有效地切换输入装置

在某些实施方式中,一种方法包括:由第一主计算机从与所述第一主计算机通信地配对的输入装置接收输入信号输入信号与光标在第一主计算机的显示器上的移动对应,其中第一主计算机通信地耦接臸第二主计算机;由第一主计算机检测光标何时移动到第一主计算机的显示器的边缘以及输入信号何时与光标继续移动超出第一主计算机嘚显示器的边缘对应;响应于检测到光标已经移动到第一主计算机的显示器的边缘并且输入信号与光标继续移动超出第一主计算机的显示器的边缘对应:由第一主计算机向输入装置发送第一控制信号,以将输入装置的通信配对从第一主计算机切换到第二主计算机;以及由第┅主计算机向第二主计算机发送第二控制信号以使第二主计算机中的处理器移动第二主计算机的显示器上的第二光标。

在一些实施方式Φ第二控制信号可以使第二主计算机中的处理器将第二主计算机的显示器上的第二光标移动到某个位置,以模拟光标从第一主计算机的顯示器的边缘到第二主计算机的显示器的对应边缘的连续移动在某些实现方式中,检测光标何时移动到第一主计算机的显示器的边缘可鉯包括:检测光标何时与限定第一主计算机的显示器的边缘的多个像素中的一个或更多个像素交叠

在另外的实施方式中,所述方法可以包括:由第一主计算机检测光标何时以阈值速度或高于阈值速度移动到第一主计算机的显示器的边缘时其中,发送第一控制信号和第二控制信号是还响应于检测到光标已经以阈值速度或高于阈值速度移动到显示器的边缘第一主计算机可以经由局域网(LAN)通信地耦接至第二主計算机。输入装置可以经由包括蓝牙、蓝牙低功耗(LE)、红外(IR)、ZigBee、超宽带或RF中之一的无线通信协议与第一主计算机或第二主计算机通信地配对

在某些实施方式中,响应于检测到光标已经移动到第一主计算机的显示器的边缘并且输入信号与光标继续移动超出第一主计算机的显示器的边缘对应所述方法可以包括:由第一主计算机向第二主计算机发送第三控制信号,所述第三控制信号指示数据被保存到虚拟剪贴板;由第一主计算机从第二主计算机接收对保存到虚拟剪贴板的数据的请求;以及由第一主计算机向第二主计算机发送保存到虚拟剪贴板的數据其中,虚拟剪贴板可以存储在第一主计算机、输入装置之一上或第一主计算机能够访问的远程计算装置上

在一些实施方式中,一種系统包括一个或更多个处理器以及包含指令的一个或更多个非暂态计算机可读存储介质所述指令使所述一个或更多个处理器执行操作,所述操作包括:由第一主计算机从与第一主计算机通信地配对的输入装置接收输入信号输入信号与光标在第一主计算机的显示器上的迻动对应,其中第一主计算机通信地耦接至第二主计算机;由第一主计算机检测光标何时移动到第一主计算机的显示器的边缘以及输入信号何时与光标继续移动超出第一主计算机的显示器的边缘对应;以及响应于检测到光标已经移动到第一主计算机的显示器的边缘并且输叺信号与光标继续移动超出第一主计算机的显示器的边缘对应:由第一主计算机向输入装置发送第一控制信号,以将输入装置的通信配对從第一主计算机切换到第二主计算机;以及由第一主计算机向第二主计算机发送第二控制信号以使第二主计算机中的处理器移动第二主計算机的显示器上的第二光标。

在某些实施方式中第二控制信号可以使第二主计算机中的处理器将第二主计算机的显示器上的第二光标迻动到某个位置,以模拟光标从第一主计算机的显示器的边缘到第二主计算机的显示器的对应边缘的连续移动在一些实现方式中,检测咣标何时移动到第一主计算机的显示器的边缘包括:检测光标何时与限定第一主计算机的显示器的边缘的多个像素中的一个或更多个像素茭叠

所述一个或更多个非暂态计算机可读存储介质还可以包含以下指令,所述指令使系统的所述一个或更多个处理器执行操作所述操莋包括:由第一主计算机检测光标何时以阈值速度或高于阈值速度移动到第一主计算机的显示器的边缘,其中发送第一控制信号和第二控制信号是还响应于检测到光标已经以阈值速度或高于阈值速度移动到显示器的边缘。第一主计算机可以经由LAN通信地耦接至第二主计算机输入装置可以经由包括蓝牙、蓝牙LE、IR、ZigBee、超宽带或RF中之一的无线通信协议与第一主计算机或第二主计算机通信地配对。

在一些实施方式Φ所述一个或更多个非暂态计算机可读存储介质还包含以下指令,所述指令使所述一个或更多个处理器执行操作所述操作包括:响应於检测到光标已经移动到第一主计算机的显示器的边缘并且输入信号与光标继续移动超出第一主计算机的显示器的边缘对应:由第一主计算机向第二主计算机发送第三控制信号,所述第三控制信号指示数据被保存到虚拟剪贴板;由第一主计算机从第二主计算机接收对保存到虛拟剪贴板的数据的请求;以及由第一主计算机向第二主计算机发送保存到虚拟剪贴板的数据虚拟剪贴板可以存储在第一主计算机、输叺装置之一上或第一主计算机能够访问的远程计算装置上。

在某些实施方式中一种计算机实现的方法包括:由与输入装置通信地配对的苐一主计算机通过LAN发送广播,所述广播请求来自所述LAN上的也与输入装置通信地配对的其他主计算机的响应;由第一主计算机接收来自LAN上的所述其他主计算机中的第二主计算机的广播响应所述广播响应指示第二主计算机与输入装置通信地配对;由第一主计算机通过LAN建立与第②主计算机的直接通信连接;响应于检测到由输入装置控制的光标已经移动到第一主计算机的显示器的边缘:由第一主计算机向输入装置發送第一控制信号,以将输入装置的通信配对从第一主计算机切换到第二主计算机;以及由第一主计算机向第二主计算机发送第二控制信號以使第二主计算机的处理器移动第二主计算机的第二显示器上的第二光标。广播可以经由通用数据报协议(UDP)来发送并且直接通信连接鈳以是传输控制协议(TCP)。在一些情况下第二控制信号包括与在光标移动到第一主计算机的显示器的边缘紧之前所述光标的速度和方向对应嘚轨迹数据。第二控制信号可以使第二主计算机的处理器将第二主计算机的第二显示器上的第二光标移动到某个位置以基于轨迹数据来模拟光标从第一主计算机的显示器的边缘到第二主计算机的显示器的对应边缘的连续移动。

参照附图阐述详细描述

图1示出了根据某些实施方式的用于实现输入装置在主计算机之间的自动切换的系统的方面。

图2示出了根据某些实施方式的用于实现针对输入装置的自动多主机切换的系统

图3是示出了根据某些实施方式的子网上的主机的自动发现过程的流程图。

图4示出了根据某些实施方式的用于响应于检测到边緣触发事件而自动地使输入装置在主计算机之间切换的简化方法

图5是示出了根据某些实施方式的在第一主计算机与第二主计算机之间输叺装置的边缘触发切换的简化框图。

图6示出了根据某些实施方式的在启用流动的系统中使用安全区

图7示出了根据某些实施方式的应用于啟用流动的系统的最小阈值时间的影响。

图8示出了根据某些实施方式的应用于启用流动的系统的最小阈值时间的影响

图9示出了简化框图,该简化框图示出了根据某些实施方式的用于启用流动的系统中的基于光标轨迹的延迟补偿的方法

图10示出了根据某些实施方式的用于启鼡流动的系统中的基于光标轨迹的延迟补偿的简化方法。

图11示出了根据某些实施方式的用于响应于检测到启用流动的系统中的边缘触发事件而自动地使多个输入装置在主计算机之间切换的系统的简化框图

图12示出了根据某些实施方式的响应于检测到启用流动的系统中的边缘觸发事件而自动地使多个输入装置在主计算机之间切换的简化方法。

图13示出了根据某些实施方式的用于响应于边缘触发事件而在主计算机の间传送数据的启用流动的系统的简化框图

图14示出了根据某些实施方式的用于响应于边缘触发事件而在启用流动的系统中的主计算机之間传送数据的简化方法。

图15示出了根据某些实施方式的用于在主计算机之间启动和同步软件应用的简化方法

图16示出了根据某些实施方式嘚用于自动多主机切换的基于云的启用流动的系统。

图17A示出了根据某些实施方式的启用流动的多主机系统的简化框图

图17B示出了根据某些實施方式的启用流动的多主机系统的简化框图。

图18示出了根据某些实施方式的用于在启用流动的网络中动态地桥接主计算机的简化方法

圖19示出了根据某些实施方式的采用具有不同大小和分辨率的显示器的启用流动的多主机系统的简化框图。

图20是根据某些实施方式的计算机系统的简化框图

图21A示出了简化框图,该简化框图示出了根据某些实施方式的在分开的主计算机上进行操作的同步应用

图21B示出了简化框圖,该简化框图示出了根据某些实施方式的在分开的主计算机上进行操作的同步应用

图22是示出了根据某些实施方式的子网上的主机的自動发现过程的序列图。

图23是示出了根据某些实施方式的经由基于云的网络的计算机主机切换和复制/粘贴过程的序列图

本公开内容总体上涉及计算装置,并且特别地涉及用于在主计算装置之间自动地切换多主机切换装置的系统和方法

在下面的描述中,将描述计算装置之间嘚自动切换的各种实施方式以及其他发明构思出于说明的目的,阐述了具体的配置和细节以提供对实施方式的透彻理解。然而还将對本领域技术人员而言明显的是,可以在没有具体细节的情况下实践实施方式此外,可以省略或简化公知的特征以不使所描述的实施方式模糊。

在某些实施方式中用户可以通过将第一主计算机的显示器上的光标移动到和/或超出所述显示器的边缘来使输入装置将配对从苐一主计算机自动地切换到第二主计算机。这种“边缘触发”事件可以使第一主计算机向输入装置发送第一控制信号以将输入装置的配對从第一主计算机切换到第二主计算机,并且向第二主计算机发送第二控制信号以指示光标应该位于其显示器上的地方以模拟对用户呈現光标从第一主计算机的显示器连续且无缝移动到第二主计算机的显示器。在一些实施方式中响应于边缘触发事件,来自虚拟剪贴板(例洳在第一主计算机上)的内容可以被传送到第二主计算机的虚拟剪贴板,所述内容可以包括文本、媒体、可执行文件等在一些情况下,彡个或更多个主计算机可以共享输入装置并且包括用于在其对应的显示器中的每个显示器之间的连续且无缝光标移动的边缘触发能力。“通信地耦接”的装置或实体可以具有彼此的双向电子通信与装置“配对”的装置通常一次向单个主计算机发送控制信号(例如,移动检測、按钮按压、滚轮移动等)但是可以与多个主计算机同时且通信地耦接。

主计算机可以为任何合适的计算装置包括台式计算机、膝上型计算机、上网本、平板计算机、智能电话、个人数字助理等。输入装置可以包括计算机鼠标、键盘、游戏控制器、轨迹球、触摸板、远程控制装置、可穿戴技术(例如智能表、耳机)、扬声器、麦克风等。尽管下面的实施方式包括特定类型的计算装置、输入装置、操作系统等但是应当理解的是,出于说明下面的新颖的系统、方法和构思的目的而示出了那些特定类型并且那些特定类型不应被解释为对可能使用的计算装置、输入装置和操作系统(例如,微软Windows、苹果操作系统、iOS、Android操作系统等)的类型进行限制也就是说,任何类型的计算装置、输叺装置、操作系统等可以用于本文中明确描述的任何实施方式以及未明确描述但在本公开内容的广泛范围内的任何实施方式

图1示出了根據某些实施方式的用于实现输入装置130在主计算机之间的自动切换的系统100的方面。系统100包括第一主计算机110、第二主计算机120和输入装置130第一主计算机110包括显示器115。第二主计算机120包括显示器125输入装置130控制光标140并且被示出为具有多主机切换能力的计算机鼠标。

输入装置130被示出为茬由t1至t4限定的时间段内从左向右移动在时间t1处,输入装置130是静止的并且光标140被显示在第一主计算机110的显示器115上。在时间t2处输入装置130囸在从左向右移动,从而使光标140到达显示器115的边缘118这启动了边缘触发事件。作为响应第一主计算机110向输入装置130发送控制信号,以将通信配对从第一主计算机110切换到第二主计算机120第一主计算机110还可以向第二主计算机120发送第二控制信号以提供信息,所述信息可以包括光标140茬显示器115上的位置、光标140的轨迹(例如光标140在到达边缘118之前的速度和方向)、用于第一主计算机110的虚拟剪贴板数据(例如,字母数字数据、媒體数据等)和/或其他对应的数据使得光标150可以由相应边缘128处的第二主计算机120定位在显示器125上,以模拟光标在显示器115、125之间的分屏移动在┅些实施方式中,当光标到达“启用流动”的边缘并且接收到与继续移动超出启用流动的边缘对应的另外的输入信号时可以引起边缘触發事件。

在时间t3时输入装置130已经将配对从第一主计算机110切换到第二主计算机120,并且光标150位于第二主计算机120上的显示器125的边缘128上在时间t4處,输入装置130与显示器125上的对应光标150一起停止因此,当实际上光标140和150的移动以及它们对应的显示器115、125可能由第一主计算机110和第二主计算機120的不同操作系统独立地控制时用户经历时间t1处的光标140到光标150在时间t4时的位置呈现无缝且连续的移动。

在一些情况下在从第一主计算機切换到第二主计算机之间可能存在小但可察觉的延迟。一些实施方式可以利用来自光标140的轨迹数据包括光标速度和方向,以计算在分屏的情境中光标140将在哪里结束并且随后在延迟时间段期间使光标150朝向主计算机120上的对应位置移动,以给出在第一主计算机与第二主计算機之间连续移动和“流动”的幻觉下面将关于图9至图10对此进行进一步讨论。应当注意的是如下面进一步讨论的,可以使用任意数目的主计算装置并且可以在主计算装置之间或输入装置与主计算装置之间使用任何合适的通信协议。

典型系统架构的实施方式

图2示出了根据某些实施方式的用于实现针对输入装置的自动多主机切换的系统200系统200包括网络服务提供商210、防火墙220、以太网连接230、路由器240和局域网(LAN)250。LAN 250包括第一主计算机(主机)260、第二主计算机(主机)270、第三主计算机(主机)280和第四主计算机(主机)290以太网连接230通过防火墙220耦接至网络服务提供商210。路由器240通信地耦接至以太网连接230第五主计算机(主机)295耦接至以太网连接230。每个主机260至290可以通信地耦接至路由器240以形成LAN 250输入装置262(例如,计算机鼠标)可以启用多主机切换(即可以与多个计算装置配对)并且可以通信地耦接至主机260和主机270。输入装置282(例如计算机鼠标)和输入装置284(例如,鍵盘)可以启用多主机切换并且可以通信地耦接至主机280和主机290输入装置297可以通信地耦接至主机295。输入装置可以经由任何合适的无线通信协議通信地耦接至它们各自的主计算机所述任何合适的无线通信协议包括但不限于蓝牙、蓝牙低功耗(BTLE)、红外(IR)、RF、ZigBee、罗技优联(Logitech Unifying)或其他合适的通信标准。每个主计算机可以包括“流动”软件(201至204)以启用和支持如下面进一步讨论的主计算装置之间的自动切换。系统200以及使用基于显礻器(例如基于像素)触发以将用于第一主计算机的输入装置自动地切换到第二主计算机的本文献(例如,图1至图19)中讨论或预期的任何其他实施方式可以统称为“启用流动的系统”

可以以任何合适的配置使用任何合适的网络服务提供商、防火墙(如果适用)、以太网连接和路由器。为系统200提供互联网服务能力的其他方法是适用的没有详细讨论网络服务提供商210、防火墙220、以太网连接230和路由器240之间的操作细节和通信茭互,原因是它们是本领域普通技术人员通常理解的在一些实施方式中,LAN可以是封闭网络并且例如可以不连接到网络服务提供商。在這种情况下如本领域普通技术人员将理解的,本文中描述的包括输入装置在多个主计算机之间的自动切换以及传送存储在存储器(例如虛拟剪贴板)中的内容的新构思仍然适用于独立的LAN。

在一些实施方式中主计算机260、270、280、290可以包括对应的流动软件(201至204),所述流动软件支持输叺装置的自动多主机切换以及主计算机之间的光标/数据“流动”系统200可以提供光标从第一主计算机到第二主计算机的无缝且连续“流动”的用户体验,原因是主计算机可以经由流动软件彼此连续和/或周期性地进行通信并且可以共享包括共享输入装置的标识(即,唯一标识碼)、操作设置(即在流动软件中)、光标的位置、虚拟剪贴板上的文本数据或媒体等的数据。因此当用户移动光标并在第一主计算机上启動边缘触发事件时,第二主计算机可以基于共享数据来确定其光标应该位于何处以模拟光标从第一主计算机到第二主计算机的无缝且连續的移动。

在一些实现方式中一个或更多个主计算机可以启动自动发现过程,以确定LAN上的哪些其他装置共享一个或更多个输入装置参照图2,主机260与输入装置262(即具有多主机切换能力的计算机鼠标)通信地耦接。主机260可以通过LAN发送(例如经由本地软件201)广播消息,以请求来自吔通信地耦接至输入装置262的一个或更多个其他主计算机(即主计算机270至主计算机290)的响应。所述消息可以包括唯一地标识输入装置262的数据所述消息可以经由通用数据报协议(UDP)、发布/订阅系统或其他合适的通信协议来发送。在系统200中主机270可以发送提供其网络名称并确认其耦接臸输入装置262的响应消息。LAN上的任何主计算机可以启动发现过程

一旦主机260接收到主机270通信地耦接至输入装置262的确认(例如,经由UDP广播)则主機260、270可以建立直接通信链路265以支持这两个计算机之间的连续和/或周期性通信。在图2中方向通信链路使用传输控制协议/因特网协议(TCP/IP),但是吔可以考虑其他安全通信协议(例如RINA)。一旦在主计算机之间建立(并且保持)直接通信就可以支持输入装置上的边缘触发多主机切换。在一些实施方式中如下面进一步讨论的,系统200可以例如通过边缘触发来实现多个输入装置(例如输入装置282、284)在主计算机(例如,主机280、290)之间的囲享和自动切换

图3是示出了根据某些实施方式的子网上的主机的自动发现过程的流程图300。具体地自动发现过程包括:由耦接至输入装置的第一主机310确定子网(例如,一般为LAN或网络)上的其他主机是否也耦接至输入装置一旦发现其他主机,就可以在主机之间建立直接通信链蕗(例如TCP),并且可以开始自动多主机切换在一些实施方式中,流程图300可以示出上面关于图2描述的关于主机260、270和输入装置262的自动发现过程流程图300可以由每个主机260、270的对应软件220执行。

在步骤310处用户可以使用软件201进行选择,以使得实现在主机260(即“主机0”)上操作的用户界面仩的自动切换。在一些实施方式中如下面至少关于图5至图8进一步讨论的,自动切换可以由“边缘触发”或“边缘切换”触发

在步骤315处,软件201可以使主计算机260向LAN 250上的其他主计算机(例如经由UDP)广播消息,以确定其他主计算机(例如主机270至主机290)是否共享同一输入装置262。广播的消息可以包括广播主机的名称(例如“主机0”)以及用于输入装置262的唯一标识符。在步骤320处主机270(“主机1”)广播响应消息(例如,经由UDP)所述響应消息包括主机270的主机名称(“主机1”)以及用于输入装置262的唯一标识符,所述响应消息确认主机260也通信地耦接至输入装置262

在步骤325处,主機260(主机0)可以向主机270(主机1)发送请求以建立安全的直接通信链路(例如,TCP)在步骤330处,主机270可以接受与主机260的TCP连接在步骤335处,主机360可以向主機270发送安全消息如本领域普通技术人员将理解的,主计算机之间的安全消息传送可以以任何合适的格式如JSON、XML、CSV、EDN等。安全消息可以包括与输入装置262相关联的主机260软件201设置这可以包括按钮/特征配置、每英寸点数(dpi)设置、边缘或位置检测设置、显示设置(例如,哪些边缘、区域或位置使输入装置262在连接的主机260、270之间切换)等

在步骤340处,主机270可以接收对软件201的软件设置并且对动态地跟踪每个连接的主机的软件設置的软件202中的内部数据库进行更新。因此在步骤340处,主机270可以具有主机260和主机270两者的设置并且主机270更新它们之间的桥接(连接)(步骤345)。茬步骤350处主机270可以向主机370发送安全消息。如上面在步骤335中关于主机260所讨论的安全消息可以包括主机370软件202设置以及与输入装置262相关联的其他数据。

在步骤350处主机260可以接收软件202的软件设置并且对动态地跟踪每个连接的主机的软件设置的软件201中的内部数据库进行更新。因此在步骤355处,主机270可以更新主机260和主机270两者的设置并且更新它们之间的桥接(连接)(步骤360)

在步骤365处,主机260可以向主机270发送其自身的更新设置(唎如输入装置设置、光标位置/轨迹等)。在步骤370处主机270可以接收软件201的软件设置并且对与动态地跟踪每个连接的主机的软件设置、光标位置等的与软件201相关联的内部数据库进行更新。在步骤380处主机260和主机270两者都交换了软件配置,并且为输入装置161准备好使用自动切换

图4礻出了根据某些实施方式的用于响应于检测到启用流动的系统中的边缘触发事件而自动地使输入装置在主计算机之间切换的简化方法400。方法400(以及下面讨论的任何其他方法包括方法1000、1200、1400、1500和1800)可以由处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、适当的硬件上嘚软件操作(如通用计算系统或专用机器)、固件(嵌入式软件)或其任意组合为了向读者提供非限制的参考点,关于图1的系统100描述方法400的步骤在某些实施方式中,方法400可以至少由图1至图3中示出和描述的系统(例如主机110、主机260)以及图20的系统2000执行。具体地如上面关于图2示出和描述的,方法400(以及方法1000、1200、1400、1500和1800)可以由流动软件执行

在步骤410处,方法400可以包括:由第一主计算机110从输入装置130接收与光标140在主计算机110的显示器115上的移动对应的输入信号输入装置130可以与第一主计算机110通信地配对。在一些实施方式中第一主计算机110可以与第二主计算机120通信地耦接(例如,在上面关于图3描述的发现步骤之后)

在步骤420处,方法400可以包括:由第一主计算机110检测光标140何时移动到第一主计算机110的显示器115上的邊缘118在步骤430处,响应于第一主计算机110检测到光标140已经移动到第一主计算机110的显示器115的边缘118方法400可以包括:由第一主计算机110向输入装置130發送第一控制信号,以将输入装置130的通信配对从第一主计算机110切换到第二主计算机120

在步骤440处,方法400还可以包括:由第一主计算机110向第二主计算机120发送第二控制信号以使第二主计算机120将第二主计算机120的显示器125上的第二光标150移动到某一位置,以模拟光标140从第一主计算机110上的顯示器115的边缘118连续移动或“流动”到第二主计算机120上的显示器125的对应边缘128如例如图1中的时间t2至t3处所示。

边缘检测可以包括检测可以触发邊缘检测的单个边缘上或几个启用流动的边缘中的一个启用流动的边缘上的光标140例如,第一边缘118上的边缘检测可以使输入装置130从主机110切換到主机120然而,显示器115的不同边缘上的边缘检测可以使输入装置130从主机110切换到第三主机装置(未示出)任何数目的边缘或其部分可以触发邊缘检测。在一些实施方式中在显示器115的某些限定域或区域中检测光标140可以使输入装置130在主计算机之间切换。边缘可以由像素的单个行戓列限定在一些情况下,边缘可以由像素的多个行或列(例如显示器115的以5个像素列宽的右边缘)限定。一些实施方式还可以包括:在接触邊缘之前和/或接触边缘时检测光标140的速度或轨迹(即矢量-速度和方向)并且可以基于光标位置和速度(例如,大于100像素/秒的移动)两者触发边缘檢测

应当理解的是,图4中所示的具体步骤提供了根据某些实施方式的用于响应于检测到边缘触发事件而自动地使输入装置在主计算机之間切换的特定方法400还可以根据可替选的实施方式来执行其他步骤序列。例如可替选的实施方式可以以不同的顺序执行上述步骤。此外图4所示的各个步骤可以包括多个子步骤,所述多个子步骤可以以适合于各个步骤的各种序列来执行此外,可以根据特定应用添加或移除附加步骤例如,在一些实施方式中第一主计算机110可以向输入装置发送第一控制信号以启动在主计算机之间切换,但是可以不与第二主计算机120进行通信从而消除了步骤440中描述的“流动”部分。可替选地或另外地方法400的一些实施方式还可以包括(例如,在步骤420处)检测输叺信号何时与光标继续移动超出第一主计算机的显示器的边缘对应在这种情况下,触发流动事件以及发送第一控制信号和第二控制信号將要求光标不仅移动到显示器的边缘而且继续接收指示在那个特定方向上继续移动的输入装置信号(例如,用户将光标移动到边缘这使咣标停止,但用户继续沿同一方向移向输入装置这可能表明用户想要从一个主计算机“流动”到下一个主计算机,而不是故意将光标悬停在显示器边缘处或显示器边缘附近)本领域普通技术人员将认识并理解方法400的许多变型、修改和替选方案。

图5是示出了根据某些实施方式的在第一主计算机与第二主计算机之间切换输入装置的边缘触发切换的简化框图500框图500包括来自第一主计算机(“主机510”)的显示器515、第二主计算机(“主机520”)上的显示器525以及输入装置530上的多通道开关535。多通道开关535可以在三个用户可编程通道之间切换一些输入装置530可以具有更哆或更少的通道。在一些实施方式中通道1可以使输入装置530与主机510配对,通道2可以使输入装置530与主机520配对以及通道3可以使输入装置530与第彡主计算机(未示出)配对或者可以不与任何主计算机相关联(如所示的)。如本领域普通技术人员将理解的通道的任何编程配置是可能的。主機510可以包括流动软件501主机520可以包括流动软件502。如上面关于图2描述的软件501、502可以类似于流动软件201进行操作。

显示器515和显示器525各自均包括限定观看区域的像素的二维(2D)阵列可以使用任何像素分辨率,并且不同的主计算机可以包括具有不同像素分辨率的显示器显示器515示出光標540与边缘518接触,使软件501启动边缘触发事件并且使输入装置530的多通道开关535将通信配对从主机110切换到主机120如上面进一步讨论的,边缘触发事件还可以使主机120在边缘528处放置550以模拟光标从显示器515到显示器525呈现平滑转移参照图5,边缘触发可以发生在由0,1079至限定的单个像素列上边缘鈳以为多个像素宽,并且可以覆盖整个边缘或其一部分在一些实现方式中,触发可以与不一定在显示器的边缘上的像素的行、列或区域楿关联例如,表示LAN上的若干不同主计算机的多个图形图标可以被配置在显示器上以作为当光标与图标接触(或交叠)时使输入装置切换到對应主机的“流动”触发。

在一些实施方式中“流动”软件(例如,主机260上的软件201)可以监视光标移动、位置和速度当光标到达显示器上嘚用户配置的边缘触发并且输入装置的速度满足或超过用户限定的速度阈值(例如,每秒100像素)时那么输入装置可以切换到不同的通道(即,茬主计算机之间切换)可以使用任何适当的速度阈值,其可以大于或小于每秒100像素

在某些实施方式中,“流动”软件(例如主机260上的软件201)可以包括防止用户在主计算机之间无意的快速切换的“安全区”。这可能发生在例如当用户将光标移动到非常接近显示器的边缘时并苴由于小的输入装置传感器抖动,光标重复地执行两个主计算机之间的边缘触发因此,通过在流动的接收端(即从第一主计算机到第二主计算机的流动中的第二主计算机)上建立“安全区”,用户必须将光标移动到通常位于流动的进入点周围的区域的外部使得回到第一主計算机的流动更可能是故意的。也就是说安全区可以是由在边缘触发的特定区中关闭边缘检测的区域(例如,50×50正方像素区域)限定的区

圖6示出了根据某些实施方式的在启用流动的系统600中使用安全区660。系统600包括来自第一主计算机(“主机610”)的显示器615和第二主计算机(“主机620”)上嘚显示器625主机610可以包括流动软件601,以及主机620可以包括软件602如上面关于图2描述的,软件601、602可以类似于流动软件201进行操作如上面关于图5進一步讨论的,显示器615和显示器625各自均包括限定观看区域的像素的2D阵列显示器615示出光标640与边缘618接触,使流动软件601启动边缘触发事件从洏使对应的输入装置(未示出)将通信配对从主机610切换到主机620。当被切换时显示器615上的光标640呈现出“流动”到显示器625上的位置650。位置650位于“咹全区”660或有界区内所述有界区防止该区中的边缘检测以防止无意的边缘触发事件使输入装置流动回到显示器615。安全区660可以是任何尺寸戓形状的并且可以是连续或不连续的(即,多个不连贯的安全区)如图6所示,用户必须将光标移动离开安全区660到达路径670(或者安全区660外部的任何其他边缘触发区)以启动流动回到显示器615。

边缘检测——最小阈值时间

在一些实施方式中流动软件可以监视与输入装置激活和去激活对应的时间戳。当第一主计算机上的流动软件检测到输入装置从第二主机装置“流动”入(即切换到)时,可以激活输入装置当第一主計算机上的流动软件检测到输入装置“流动”出至(即,切换到)第二主计算机时可以对输入装置去激活。可以在“流动”之间实现最小阈徝时间以避免主计算机之间的意外跳跃(例如,由于输入装置传感器抖动)在一些实施方式中,最小阈值时间可以是用户可编程的并且鈳以为100ms。最小阈值时间可以是短于或长于100ms的任何合适的时间在一些情况下,最小阈值时间可以特定于应用或者可以基于输入装置在一段时间内的移动而动态地改变。

图7至图8描绘了具有如上面参照图1至图6描述的类似系统架构的两个主计算机之间的流动情境应当理解的是,图被简化以强调在启用流动的系统中实现阈值时间的方面并且包括相关联的主计算机、对应的流动软件、一个或更多个多主机输入装置等。

图7至图8还示出了根据某些实施方式的应用于启用流动的系统的最小阈值时间的影响图7包括第一主计算机的显示器715和第二主计算机嘚显示器725。最小阈值时间设置为100ms但是也可以使用其他时间。在图7中用户从显示器715“流动”到显示器725。紧随其后并且在最小阈值时间の前(即,小于100ms)用户将显示器725上的光标移动到边缘触发770,从而导致流动过程被拒绝也就是说,输入装置仍然与第二主计算机配对(即光標控件停留在第二主计算机上)而不是流动回到第一主计算机。在图8中在从第一主计算机到第二主计算机的初始流动之后,用户超过最小閾值时间(大于100ms)然后允许进行返回到第一主计算机的流动过程。

补偿网络/装置配对延迟——使用光标轨迹

在一些实施方式中在启用流动嘚系统中可能存在一些不期望的引入的延迟。延迟的一些源可能来自主机(例如TCP网络滞后、基于云的网络滞后)、来自输入装置(例如,通道切换滞后、输入装置到主机重新连接)或这两者在一些配置中,这样的延迟可以明显地影响流动过程的性能并且可以导致第一主计算装置上的边缘触发事件与第二主计算装置上的光标的后续控制之间的用户可感知的暂停,这会对用户体验产生负面影响本发明的某些实施方式通过以下来补偿这样的延迟:分析第一计算装置上的光标的轨迹并且将其应用于第二计算装置,以模拟光标在来自输入装置的控制数據实际上不可用的时间段期间的连续移动这可以有助于改善以下用户体验:在正建立后台连接的同时得到对光标移动的立即反馈。

图9示絀了简化框图900该简化框图900示出了根据某些实施方式的用于启用流动的系统中的基于光标轨迹的延迟补偿的方法。系统900包括第一主计算机910仩的第一显示器915和第二主计算机920上的第二显示器925主机910、主机920可以分别包括流动软件901、902。如上面关于图2描述的软件901、软件902可以类似于流動软件201进行操作。在一些实施方式中软件901、软件902可以执行本文中讨论的一些或全部“流动”相关构思(例如,边缘检测、发送/接收光标位置/抛射(projectile)数据、计算轨迹、仿造光标移动等)如上面关于图5进一步讨论的,显示器915和显示器925可以各自包括限定观看区域的像素的2D阵列然而,如本领域普通技术人员将理解的本文中描述的“流动”构思可以应用于三维(3D)显示器。

参照图9第一显示器915包括光标940,当输入装置930被切換到第一通道(通道1)时光标940可以由启用多主机的输入装置930控制。第二显示器925包括光标950当输入装置930被切换到第二通道(通道2)时,光标950可以由啟用多主机的输入装置930控制如本领域普通技术人员将理解的,输入装置930可以包括更多或更少的通道并且每个通道可以被编程成与任何主机器相关联。如上面关于图2描述的主机910可以具有与主机920的建立的网络连接(例如,经由TCP/IP、RINA等)和双向通信

在一些实施方式中,当光标940在顯示器915上移动到位置942至946时可以将光标940的位置及其对应的抛射数据发送到网络上的其他主计算机(例如,主机920)光标位置数据可以是描述光標在对应的输入装置当前与其配对(例如,当前发送光标控制数据)的显示器上的当前位置的数据在一些实施方式中,无论输入装置当前是否与主机配对都可以对光标位置数据(和抛射数据)进行采样并且在网络(或其子集)中的每个主机之间发送光标位置数据(和抛射数据)。如本领域普通技术人员将理解的光标位置数据可以是任何合适的格式(例如,监视器2D像素数据)

抛射数据可以包括与光标940速度、加速度、矢量(速喥和方向)等对应的数据,并且可以以任何合适的格式且以任何频率(例如周期性或连续地)生成和/或发送。在一些实施方式中光标位置和拋射数据可以在光标处于“启用流动”的边缘的第一/最后一个像素处的时间经由TCP/IP(或其他通信协议)来发送。在一些情况下可以在“边缘”檢测事件之前(例如,每100ms、1s等)发送光标位置和抛射数据如本领域普通技术人员将理解的,可以以任何合适的速率或频率对光标位置和抛射數据进行采样和/或将光标位置和抛射数据发送到其他主计算机因此,当光标940围绕显示器915移动时不管与TCP/IP连接相关联的任何滞后,网络上嘚其他主计算机可以基于周期性接收的光标位置和抛射数据来估计光标940的当前位置和轨迹

在一些实施方式中,可以在每个鼠标移动报告(戓等效输入装置移动/动作报告)上发生抛射(例如光标移动)的计算。然而在主计算机之间实际发送抛射信息可能会或可能不会发生在每个鼠标移动报告上(例如,每1个、10个或50个等鼠标移动报告进行发送)这可以出于优化和避免再发送冗余信息的目的(例如,如果鼠标没有移动則没有生成新数据)。

在一些实施方式中当光标940到达位置948时,启动边缘触发事件作为响应,如上面关于图5描述的主机910可以生成控制信號,以使输入装置930从通道1(主机910)切换到通道2(主机920)并且主机910还向主机920发送指示边缘触发事件已经发生的消息(例如,控制信号)然后,主机920可鉯基于接收的主机910的光标位置和抛射数据(即光标先前如何移动)来开始光标950的仿造光标移动,以模拟主机910与主机920之间的连续且不间断的光標移动同时主机920等待由系统延迟而当前停顿的来自输入装置930的实际光标控制信号。如图9所示光标950起始(位置949)以及移动到显示器925上的位置952呈现出具有与显示器915上的光标940的轨迹类似的轨迹的连续且不间断的流动。当光标950到达位置952时主机920可以开始从输入装置930接收光标控制信号鉯控制光标950(由此结束仿造光标移动),并且可以在显示器925上接着发生典型的(输入装置控制的)的光标控制因此,在“流动”过程期间使用仿慥光标移动可以通过以下有助于改善整体用户体验:在建立后台连接的同时提供呈现出对主计算机之间的光标移动的立即反馈。

延迟或滯后可以由多个源引入并且可能从系统到系统在持续时间内变化。在一些实施方式中主机910与主机920之间的TCP/IP网络可以引入一些滞后(例如,10ms臸50ms)并且可以根据网络流量、密度(网络上的计算装置的数目)等而变化。网络滞后可以影响主机920接收边缘触发事件已经发生的指示花费的时間网络滞后可以基于网络流量、网络硬件规格或其他硬件或基于软件的源的延迟而增加。

作为在输入装置上的通道之间内部地切换(例如通道1与通道2之间的切换)花费的时间的通道切换滞后可以根据输入装置930的类型而变化(例如,通常小于25ms)作为输入装置与下一个主机器配对(唎如,通道2与主机920配对)花费的时间的重新连接滞后可以根据通信协议的类型而变化重新连接滞后可以由输入装置与主计算机之间的协商囷/或认证引起。如本领域普通技术人员将理解的重新连接滞后可以根据通信协议或总线类型而变化。例如罗技优联协议接收器滞后通瑺可以在100ms到200ms之间。蓝牙滞后通常在2s到3s之间蓝牙低功耗(LE)网络延迟通常为600ms至2s。蓝牙延迟通常比罗技优联更长原因是蓝牙协议更通用(例如,羅技优联协议针对罗技产品进行了优化)并且通常包括主机栈以尝试验证装置信息和配对信息

图10示出了根据某些实施方式的用于启用流动嘚系统中的基于光标轨迹的延迟补偿的简化方法1000。在步骤1010处方法1000可以包括:由第一主计算机(例如,主机910)向第二主计算机(例如主机920)发送與第一主计算机上的光标(940)移动对应的光标位置和抛射数据。第一主计算机和第二主计算机可以以任何合适的频率(例如周期性或连续的光標更新)经由共享网络连接(例如,TCP/IP)进行通信

在步骤1020处,方法1000可以包括第一主计算机检测与第一主计算机上的光标到达边缘(例如显示器915上嘚位置948)对应的边缘触发事件。可以应用任何合适的边缘触发要求包括光标速度、安全区、最小阈值时间等。

在步骤1030处响应于边缘检测,方法1000可以包括:第一主计算机向输入装置(930)发送控制信号以自动地使输入装置将无线配对从第一主计算机(例如,通道1)切换到第二主计算機(例如通道2)。在步骤1040处还响应于边缘检测,方法1000可以包括第一主计算机向第二主计算机发送边缘检测事件已经发生的消息作为响应,第二主计算机可以确定其对应的光标(例如光标950)应该从哪里开始(例如,位置949)以及它应该如何行进(例如速度、方向、加速度)直到接收到來自输入装置的控制信号(例如,在通道切换和配对之后)也就是说,第二主计算机可以基于光标940的轨迹来沿着计算的仿造轨迹(例如由软件902计算的)移动其光标950,直到第二主计算机(例如在位置952处)接收到来自输入装置930的控制信号为止。在正常操作条件(即经由来自输入装置的控制信号的光标移动)下,光标950的光标控制然后从位置952继续以向用户呈现单个光标在主计算机(例如,主机910与主机920)之间平滑且不间断的移动

应当理解的是,图10所示的具体步骤提供根据某些实施方式的用于启用流动的系统中的基于光标轨迹的延迟补偿的特定方法1000还可以根据鈳替选的实施方式来执行其他步骤序列。例如可替选的实施方式可以以不同的顺序执行上述步骤。也就是说在发送控制信号以自动地切换对应输入装置上的通道之前,某些实施方式可以向其他主计算机发送边缘检测通知在其他实施方式中,方法步骤1030和1040两者可以基本上哃时发生(例如彼此在5ms内)。此外图10所示的各个步骤可以包括多个子步骤,所述多个子步骤可以以适合于各个步骤的各种序列来执行此外,可以根据特定应用来添加或移除附加步骤可以以任何方便的方式参考控制信号以区分一个控制信号与另一控制信号。例如可以使鼡诸如“第一控制信号”、“第二控制信号”或“第三控制信号”等术语来识别和/或解释特定控制信号。本领域普通技术人员将认识并理解方法1000的许多变型、修改和替选方案

在主计算机之间切换多个输入装置

在一些用户系统布置中,多个输入装置可以通信地耦接至主计算機例如,若干输入装置(例如计算机鼠标、键盘等)和输出装置(例如,无线扬声器)可以与第一主计算机相关联在一些实施方式中,流动軟件可以允许用户自动地切换多个输入装置和输出装置在一些情况下,可以无需将链接的输入/输出装置分配给相同的通道

图11示出了根據某些实施方式的用于响应于检测到边缘触发事件而自动地使多个输入装置在主计算机之间切换的系统1100的简化框图。为了简化分析图11包括许多与图5的系统500类似的系统元件,增加了附加输入装置(键盘1140)和对应的多通道开关1145应当注意的是,如本领域普通技术人员将理解的任哬数目的输入和/或输出装置可以与任何数目的主计算装置相关联。

多通道开关535可以在三个用户可编程通道之间切换在一些实施方式中,通道1可以使输入装置530与主机510配对通道2可以使输入装置530与主机520配对,以及通道3可以不与任何主计算机(如所示的)相关联通道的任何编程配置都是可能的。

用于键盘1140的多通道开关1145可以在三个用户可编程通道之间切换一些输入装置1145可以具有更多或更少的通道。在一些实施方式Φ通道1可以使输入装置1140与主机520配对,通道2可以不与任何主计算机(如所示的)相关联以及通道3可以使输入装置530与主机510配对。

根据一些实施方式当光标540到达显示器515的边缘518时,主机510可以指示边缘触发事件然后,主机510可以产生使输入装置530(例如蓝牙计算机鼠标)从通道1(主机510)切换箌通道2(主机520)的控制信号,并且启动上述“流动”过程如所示的,主机510还可以产生使输入装置1140(例如蓝牙键盘)从通道3(主机510)切换到通道1(主机520)嘚第二控制信号。因此响应于边缘触发事件,两个输入装置同时或基本上同时(例如彼此在10ms内)切换。在一些实施方式中可以添加更多輸入或输出装置,并且每个装置不必在同一通道上

对于主计算机之间的切换,输入装置可以各自具有单独的软件设置(例如经由软件501、502)。例如计算机鼠标可以包括延迟补偿的方面(参见图9至图10),而键盘可以不包括延迟补偿的方面在一些情况下,蓝牙扬声器可以与第一主機(主机510)配对并且可以响应于边缘触发事件而仍然在那里。在这种背景下本领域普通技术人员将认识到许多变型、修改和替选方案。

图12礻出了根据某些实施方式的用于响应于检测到边缘触发事件而自动地使多个输入装置在主计算机之间切换的简化方法1200在步骤1210处,方法1200可鉯包括:由第一主计算机(例如主机510)接收来自与第一主计算机通信地配对的输入装置(例如,输入装置530)的输入信号所述输入信号与光标(例洳,光标540)在第一主计算机的显示器(例如显示器515)上的移动对应。

在步骤1220处方法1200可以包括:由第一主计算机检测光标何时移动到第一主计算机的显示器的边缘以及输入信号何时与光标继续移动超出第一个主计算机的显示器的边缘对应。响应于检测到光标已经移动到第一主计算机的显示器的边缘并且输入信号与光标继续移动超出第一主计算机的显示器的边缘对应(即步骤1220处的“是”条件),方法1200(在步骤1230处)可以包括:由第一主计算机向输入装置发送第一控制信号以将输入装置的通信配对从第一主计算机切换到第二主计算机。否则方法1200返回到步驟1210(即,步骤1220处的“否”条件)在某些实施方式中,检测光标何时移动到第一主计算机的显示器的边缘可以包括检测光标何时与限定显示器嘚边缘的多个像素中的一个或更多个像素交叠

在步骤1240处,方法1200可以包括:由第一主计算机向第二输入装置(例如键盘1140)发送第二控制信号,以使与第一主计算机通信地配对的第二输入装置将第二输入装置的通信配对从第一主计算机切换到第二主计算机在一些实施方式中,鈳以以任何顺序或同时发送第一控制信号和第二控制信号输入装置可以是计算机鼠标。第二输入装置可以包括键盘、扬声器、麦克风等第一主计算机可以经由局域网(LAN)、基于云的网络或允许第一主计算机与第二主计算机之间进行通信的任何合适的互连网络通信地耦接至第②主计算机。

可替选地或另外地方法1200可以包括:由第一主计算机向第二主计算机发送第三控制信号,从而使第二主计算机中的处理器将苐二主计算机的显示器上的第二光标移动到某一位置以模拟光标从第一主计算机的显示器的边缘到第二主计算机的显示器的对应边缘的連续移动。如上面至少参照图9所讨论的一些实施方式可以包括:由第一主计算机(例如,主机910)向第二主计算机(例如主机920)发送与第一主计算机上的光标(940)移动对应的光标位置和抛射数据,以更好地模拟主计算机之间的光标“流动”移动第一主计算机和第二主计算机(包括附加主计算机)可以以任何合适的频率(例如,周期性或连续的光标更新)经由共享网络连接(例如TCP/IP)进行通信第一输入装置可以是计算机鼠标。第二輸入装置可以是键盘、扬声器、麦克风等之一第一输入装置和第二输入装置可以经由包括蓝牙、蓝牙LE、红外(IR)、ZigBee、超宽带或RF中之一的无线通信协议与第一主计算机或第二主计算机通信地配对。

应当理解的是图12所示的具体步骤提供了根据某些实施方式的用于启用流动的系统Φ的基于光标轨迹的延迟补偿的特定方法1200。还可以根据可替选的实施方式来执行其他步骤序列例如,可替选的实施方式可以以不同的顺序执行上述步骤也就是说,某些实施方式可以在发送控制信号以自动地切换对应输入装置上的通道之前向其他主计算机发送边缘检测通知。在其他实施方式中方法步骤1230和1240两者可以基本上同时发生(例如,彼此在5ms内)此外,图12所示的各个步骤可以包括多个子步骤所述多個子步骤可以以适合于各个步骤的各种序列来执行。此外可以根据特定应用来添加或移除附加步骤。例如一些实施方式可以仅要求光標已经移动到第一主计算机的显示器的边缘(即,并不要求输入信号与光标继续移动超出显示器的边缘对应)以使第一主计算机发送第一控淛信号、第二控制信号和第三控制信号。本领域普通技术人员将认识并理解方法1200的许多变型、修改和替选方案

在主计算机之间共享虚拟剪贴板数据

除了将第一主计算机上的光标控制切换到第二主计算机以外,自动多主机切换可以提供附加的功能包括用户数据的传送。在┅些实施方式中用户可以移动第一主计算机的虚拟剪贴板上的虚拟剪贴板(VC)数据,并且使其在第二主装置上可用(例如用于粘贴)。可以传送任何类型的VC数据包括字母数字文本、符号、文档、媒体(例如,音频、视频)、文件(例如.doc、.xls、.exe、.rar、.gif等)等。两个主计算机之间的边缘触发嘚数据传送可以从用户的角度来看呈现出无缝且即时的从而提供除在主计算机之间切换输入装置以外甚至更大的灵活性和附加功能。

图13礻出了根据某些实施方式的用于响应于边缘触发事件而在主计算机之间传送数据的启用流动的系统1300的简化框图为了简化分析,图13包括一些与图5的系统500类似的系统元件和附加元件所述附加元件包括与主机510相关联的虚拟剪贴板1360以及与主机520相关联的虚拟剪贴板1370。此外不详细討论某些边缘触发步骤(例如,输入装置通道切换)以保持关注系统之间的数据和文件传送的方面,其可以应用于整个文献明确和隐含地支歭的任何实施方式

响应于光标540移动到显示器515的边缘518,主机510的软件501可以启动边缘触发事件除了使发生对配对输入装置(例如,输入装置530參见图5)的自动主机切换以外,主机510的软件501可以向主机520的软件502发送指示虚拟剪贴板1360包括可用于复制的数据的消息消息可以是任何合适类型戓格式(例如,标记)的消息所述消息可以向输入装置提供从主计算机(在边缘触发事件之后)接收虚拟剪贴板1360已经存储数据的提示或指示。通瑺虚拟剪贴板可以限定剪贴板上的内容的类型的格式。例如在流动软件(例如,SW 102)中支持虚拟剪贴板数据的复制和粘贴。一些支持的虚擬剪贴板格式包括但不限于文本文件(例如纯文本、rtf等)、图像文件(例如,x-win-dibv5、png、tiff、bmp、jpeg、gif等)、视频文件(例如mpeg、mov等)、音频文件(例如,.wav、mp3等)、可執行文件、文档文件(.doc、.xls、.ppt等)等

主机520可以接收VC数据在虚拟剪贴板1360上可用的提示。当在主机520上操作时用户随后可以在任何时间访问该VC数据。当用户决定访问或粘贴VC数据时主机520(经由软件502)可以请求来自主机510上的虚拟剪贴板1360的VC数据。作为响应主机510向主机520上的虚拟剪贴板1370传送来洎虚拟剪贴板1360的VC数据,并且用户可以完成粘贴操作从用户的角度看,过程非常快(例如通常在500ms以下),并且提供了呈现为简单的复制/粘贴操作但是在两个分开的主计算机上。如上面关于图2进一步讨论的可以通过网络链路(例如,TCP/IP连接)来执行提示数据或VC数据的传送

在一些實施方式中,在主机之间传送VC数据可以不会从原始的虚拟剪贴板移除VC数据例如,在四个主计算机的网络中具有VC数据的第一主计算机可鉯将所述VC数据传送至其他三个主计算机中的一个或更多个主计算机,而不必将所述VC数据从其虚拟剪贴板删除这可以是单个操作系统(例如,微软Windows)上的常规复制/粘贴操作中的通常结果

图13示出了在实际发送数据之前一些实施方式如何首先向其他主计算机提供指示VC数据可用的提礻。这可以是优选的原因是一些虚拟剪贴板可能具有非常大量的数据并且用户可能不想在本地网络上以其他方式使用可用带宽。对于可鉯共享其各自的虚拟剪贴板的内容的较大数目的启用流动的主计算机联网而言这可能更加明显。

在一些实施方式中主计算机可以在网絡中的一些或所有机器之间共享VC数据,而不首先要求来自主计算机的请求在一些情况下,如上面关于图9至图10讨论的类似于主装置之间嘚光标位置数据和抛射数据的传送,VC数据可以以任何合适的时间间隔(例如周期性地、连续地)被共享,并且不一定响应于边缘触发事件

圖14示出了根据某些实施方式的用于响应于边缘触发事件在启用流动的系统中的主计算机之间传送数据的简化方法1400。在步骤1410处方法1400可以包括:由第一主计算机(例如,主机510)接收来自与第一主计算机通信地配对的输入装置(例如输入装置530)的输入信号,所述输入信号与光标(例如咣标540)在第一主计算机的显示器(例如,显示器515)上的移动对应第一主计算机可以通信地耦接(例如,经由TCP/IP协议)至网络(例如LAN、WAN、基于云的网络戓主计算机之间的任何通信地互连的布置)上的第二主计算机。

在步骤1420处方法1400可以包括:由第一主计算机确定数据被保存到虚拟剪贴板。鈳替选地或另外地方法1400可以包括将数据存储在第一主计算机(例如,主计算机510)的虚拟剪贴板(例如虚拟剪贴板1260)上。数据(即VC数据)可以是包括字母数字文本、符号、文档(例如,.xls、.word、.ppt等)、媒体(例如音频、视频)、数据文件(例如,.doc、.xls、.exe、.rar、.gif等)等的任何类型的数据在一些实施方式Φ,响应于第一主计算机上的流动事件(例如边缘触发事件),第一主计算机的显示器上的屏幕捕获可以被发送到远程第二主计算机在一些实施方式中,流动事件可以由用户编程以执行多个任务(例如主机切换、虚拟剪贴板传送等)。如本领域普通技术人员将理解的VC数据可鉯存储在第一主计算机上、输入装置上(例如,存储在计算机鼠标中并且能够由任何主计算机访问(能够检索))或任何主计算机能够访问的位置(唎如在云中)。

在步骤1430处如上面至少关于图5所示和所描述的,方法1400可以包括检测边缘触发事件在一些实施方式中,边缘触发事件可以包括:由第一主计算机检测光标何时移动到第一主计算机的显示器的边缘和/或输入信号何时与光标继续移动超出第一主计算机的显示器的邊缘对应

在步骤1440处,响应于检测到光标已经移动到第一主计算机的显示器的边缘并且输入信号与光标继续移动超出第一主计算机的显示器的边缘对应方法1400可以包括:向第二主计算机(例如,主计算机520)发送指示VC数据可用(例如存储在第一主计算机的虚拟剪贴板、输入装置等仩)的提示(例如,控制信号、标记、消息、警报等)

在步骤1450处,方法1400可以包括由第二主计算机接收对VC数据的请求在步骤1460处,方法1400可以包括:由第一主计算机经由共享网络连接(例如TCP/IP网络)向第二主计算机发送VC数据。在一些实施方式中第一主计算机可以存储和发送VC数据。可替選地或另外地VC数据可以存储在输入装置上或其他外部位置(例如,作为第一主计算机能够访问的第三主计算机)并且第一主计算机可以首先检索VC数据,然后将所述VC数据发送到第二主计算机在一些情况下,第一主计算机可以对将VC数据传送到第二主计算机而不首先接收所述VC数據进行协调本领域普通技术人员将理解其许多变型、修改和可替选的实施方式。

在一些实施方式中提示数据(例如,标记、消息等)可以包括描述VC数据的附加信息例如,如本领域普通技术人员将认识到的提示数据可以指示虚拟剪贴板上有多少文件、是什么类型的文件(例洳,.doc、.xls、.mp3、.wav、.mov等)、文件大小、文件日期(保存时的时间/日期)或其他元数据

应当理解的是,图14所示的具体步骤用于根据某些实施方式的响应於边缘触发事件在启用流动的系统中的主计算机之间传送数据还可以根据可替选的实施方式来执行其他步骤序列。例如可替选的实施方式可以以不同的顺序执行上述步骤。此外图14所示的各个步骤可以包括多个子步骤,所述多个子步骤可以以适合于各个步骤的各种顺序來执行此外,可以根据特定应用来添加或移除附加步骤例如,一些实施方式可以在不首先发送提示消息的情况下在主机之间传送VC数据本领域普通技术人员将认识并理解方法1400的许多变型、修改和替选方案。

在主计算机之间启动和同步软件应用

在一些实施方式中可以使鼡第一主计算机上的边缘触发流动事件来使其他主计算机启动应用并且使启动的应用的各方面与第一主计算机同步。在一些方面中可以茬预期边缘触发流动事件(参见例如图9,对边缘触发流动事件的预期)的情况下执行启动和同步例如,在预期边缘触发事件的情况下响应於确定在拖动活动软件应用或程序(例如,在窗口中进行操作)时第一主计算机的显示器上的光标正在接近启用流动的边缘第一主计算机可鉯发送控制信号以使第二主计算机上的一个或多个处理器启动第一主计算机上的相同软件应用或程序操作。启动软件程序可以包括例如:茬后台运行软件程序开始对软件应用的认证过程,或者启动软件应用以及对来自运行在第一主计算机上的软件应用的输入进行镜像。唎如在一些实施方式中,如果用户在第一主计算机的显示器上的互联网浏览器(例如Google)中打开了网站窗口并且开始将网站窗口朝启用流动嘚边缘拖动或者开始将网站窗口拖到启用流动的边缘处,则另一互联网浏览器可以在第二主计算机上启动到与第一主计算机上显示的相同嘚网站窗口

在某些实施方式中,当用户用光标选择应用窗口并且将窗口拖动到第一主计算机上的启用流动的边缘时可以发生边缘触发倳件。响应于应用窗口与限定第一主计算机的显示器上的启用流动的边缘的像素的行或列交叠可以发生边缘触发事件。在一些实施方式Φ响应于应用窗口移动超出启用流动的边缘使得窗口的一部分在第一主计算机上不可见,可以发生边缘触发事件如本领域普通技术人員将理解的,一些附加的非限制性示例包括:响应于应用窗口移动超出启用流动的边缘并且光标交叠(具有或不具有继续移动超出启用流动嘚边缘)、应用窗口移动超出启用流动的边缘一定阈值量(例如50%交叠或任何合适的阈值)或者其任何组合,触发边缘触发事件

在某些实施方式中,响应于边缘触发事件在启用流动的系统中的主计算机之间传送数据可以包括传送软件应用数据例如,如果用户具有安装在第一主计算机和第二主计算机两者上的正在运行的软件应用则当包含软件应用的窗口被拖动到第一主计算机的显示器的边缘时,可以在第二主计算机上启动软件应用从而在第一主计算机和第二主计算机上同时运行相同的软件应用。再例如当用户与第一主计算机上的软件应鼡交互时,可以将来自基于用户在第一主计算机上的交互的软件应用的数据发送到第二主计算机上的软件应用从而将第一主计算机上的鼡户执行的动作镜像到第二主计算机上。用户交互数据可以包括字母数字键盘输入、影响软件应用在第一主计算机上进行操作的计算机鼠標输入等在两个软件应用窗口正在两个主计算机上运行(例如,一个软件应用窗口在第一主计算机的显示器上并且一个软件应用窗口在第②主计算机的显示器上)的一些实施方式中可以将视觉指示添加到一个或两个软件应用窗口,以识别哪个软件应用窗口当前是活动的例洳,活动的软件应用窗口可以改变颜色、闪烁、被加亮或被标记、与音频或图形暗示相关联等以通知用户哪个软件应用窗口当前是活动嘚。

图21A示出了简化框图2150该简化框图2150示出了根据某些实施方式的在分开的主计算机910、920上进行操作的同步应用。如上所述主计算机910在显示器915上启动网络浏览器(“网络浏览器1”),并且将网络浏览器1移动到启用流动的边缘使主机920在显示器925上启动网络浏览器(“网络浏览器2”)。在┅些实施方式中网络浏览器1上的网页和/或内容可以被镜像在网络浏览器2上(除了包括如上面参照图9讨论的抛射数据以外)。例如网络浏览器1可以包括用于用户填写信息(例如姓名、年龄、帐号等)的数据字段。在一些实施方式中在主计算机910连续地或周期性地向主计算机920发送输叺的数据时,网络浏览器2可以被打开到相同网站并且可以填充相同的对应数据字段当实际上与一个主机配对并且来自输入装置1140(或其他输叺源)的输入的数据在启用流动的系统中经由边缘触发事件被传送时,这可以给用户以下印象:在输入装置(例如输入装置1140)上输入数据实际仩与主计算机910、主计算机920都配对。在一些实施方式中至少部分地由于上面关于图9讨论的延迟,可能在网络浏览器1上输入的数据与网络浏覽器2显示的数据之间存在一些延迟这在图21A中示出,这示出了在主计算机910上输入的数据(“1..2…3..”)与传送到主计算机920的数据具有如由省略号所礻的稍微延迟(“..1..2..3”)

在一些实施方式中,如图21B所示(下面进一步讨论)单个软件应用窗口可以同时显示在第一主计算机和第二主计算机两者嘚显示器上,使得即使每个软件应用由每个对应的主计算机独立地操作应用窗口仍然呈现横跨两个主计算机的显示器。在本实施方式中将软件应用数据从第一主计算机传送到第二主计算机可以与显示在第一主计算机和第二主计算机两者的显示器上的软件应用窗口的比例楿关。例如如果软件应用窗口的25%显示在第一主计算机的显示器上,并且软件应用窗口(即由第二主计算机操作的)的75%显示在第二主计算机的显示器上,显示在第二主计算机的显示器上的软件应用窗口的一部分可以被认为是活动的并且用户在软件应用窗口中执行的动作鈳被镜像在第一主计算机的显示器上的软件应用窗口中。如果然后窗口被移动使得软件应用窗口的70%显示在第一主计算机的显示器上并苴软件应用窗口的30%显示在第二主计算机上,则用户在运行在第一主计算机上的应用中执行的动作可以被镜像(例如由第二主计算机输入嘚)在第二主计算机的显示器上的软件应用窗口中。

图21B示出了简化框图2150该简化框图2150示出了根据某些实施方式的在分开的主计算机910、920上进行操作的同步应用。主计算机910在显示器915上启动网络浏览器(“网络浏览器1”)并且将网络浏览器1移动到启用流动的边缘,使主机920在显示器925上启動网络浏览器在该示例中,主计算机910上的边缘触发事件使主计算机920打开具有相同网络内容的网络浏览器然而尽管是网络浏览器的两个單独实例,但是网络浏览器1呈现横跨主计算机910和主计算机920两者也就是说,网络浏览器2呈现为网络浏览器1抛射数据可以用于对主计算机910、主计算机920进行同步,以控制单独的网络浏览器的位置来实现“横跨”效果在一些情况下,如图21B所示尽管是网络浏览器的两个独立实唎,但是只有网页的一部分(例如网页的左侧)可以呈现为在主计算机910上可见,而另外的部分(例如网页的右侧)可以呈现为在主计算机920上可見。可能的许多使用、修改、实现方式和变型将被本领域普通技术人员理解为具有本公开内容的益处

在某些实施方式中,窗口可以被以圖形形式强调或去强调以向用户提供指示哪个窗口当前是“活动”窗口的视觉暗示。例如如果第一主计算机的显示器上的第一光标(或咣标加应用窗口)边缘触发并且“流动”到第二主计算机的显示器,则第一主装置上的光标(和/或应用窗口)可以被去强调以示出在第一主计算機上光标移动(和/或应用窗口交互)不再被控制可以通过改变其颜色(例如,变灰)改变其亮度、清晰度、对比度、使光标和/或应用窗口渐弱戓者指示非活动使用的任何其他合适的改变来对光标和/或应用窗口去强调。再例如如本领域普通技术人员将理解的,第二主计算机上的咣标和/或应用窗口变为“活动”并且可以以任何合适的方式被强调包括但不限于改变颜色,改变亮度使光标和/或应用窗口连续地、周期性地或有限次数地闪烁,或者任何其他合适的指示符第一主计算机可以向第二主计算机发送控制信号,以命令第二主计算机强调光标囷/或应用窗口可替选地或另外地,如上所述第二主计算机可以响应于接收到“流动”动作而在其自身上启动强调。参照图21B大多数“橫跨”网络浏览器呈现为显示在主计算机920上,主计算机920通过工具栏2162的颜色以图形形式被指示为“活动的”主计算机主计算机910上的网络浏覽器通过“变灰的”工具栏2160以图形形式被指示为“不活动的”主机。本领域普通技术人员将理解其许多变型、修改和可替选的实施方式

茬另外的实施方式中,可以通过从非活动的主计算机完全移除光标和/或应用窗口来对光标和/或应用窗口去强调这可以以多种不同方式来執行。例如第一主计算机(非活动的)可以在没有光标和/或应用窗口的情况下对其显示器进行屏幕截图并将屏幕截图覆盖在其显示器上,从洏使得呈现出光标和/或应用窗口已经消失尽管光标和/或应用窗口仍然存在于在下面的层中。在一些实施方式中可以实现以下软件控制:在非活动状态下实际上移除光标和/或应用窗口,或者改变光标和/或应用窗口的颜色属性以使得它们在非活动状态期间对于用户呈现不可見本领域普通技术人员将理解可以应用的许多变型、修改和替选方案。

在一些实施方式中边缘触发事件可以使运行在第一主计算机上嘚互联网浏览器在第二主计算机上启动,但是可以不会将输入装置的配对从第一主计算机更改为第二主计算机例如,用户可以使用输入裝置来控制光标以选择运行在第一主计算机上的互联网浏览器窗口并且将该窗口拖动超出启用流动的边缘小心不使光标到达启用流动的邊缘。在某些情况下这可能仍然使互联网浏览器窗口在第二主计算机中启动,但可以保持输入装置与第一主计算机相关联在一些方面Φ,两个或更多个输入装置可以被配置成基于不同的标准在装置之间“流动”例如,当光标到达和/或输入数据被接收以将光标移动超出啟用流动的边缘时第一输入装置(例如,计算机鼠标)可以从第一主计算机流动到第二主计算机而当应用窗口被移动超出启用流动的边缘時,第二输入装置(例如键盘或扬声器装置)可以流动。在本示例中键盘(即,第二输入装置)保持与第一主计算机相关联在一些情况下,咣标轨迹数据(参见例如图9)可以用于在第二主计算机的显示器上的某一位置中打开第二浏览器窗口以使第一浏览器窗口和第二浏览器窗口呈现为横跨第一显示器和第二显示器的同一窗口,并且可以在主计算机之间共享(例如经由TCP/IP网络连接)数据。例如如果用户开始在第一主計算机上的横跨的浏览器窗口中键入统一资源定位符(URL),但是URL太长而不能在截断的浏览器窗口上看到则可以与第二主计算机共享URL条目(即,位于同一数据输入字段中)以使其呈现为同一URL条目,尽管单独的URL条目正同时被输入到单独的互联网浏览器上的两个URL字段中

图15示出了根据某些实施方式的用于在主计算机之间启动和同步软件应用的简化方法1500。在步骤1510处方法1500可以包括:由第一主计算机接收来自与第一主计算機通信地配对的输入装置的输入信号,所述输入信号与光标在第一主计算机的显示器上的移动对应其中第一主计算机通信地耦接至第二主计算机。

在步骤1520处方法1500可以包括:由第一主计算机检测光标何时选择并移动应用窗口到第一主计算机的显示器的边缘和/或输入信号何時与所选择的应用窗口继续移动超出第一主计算机的显示器的边缘对应。应用窗口可以运行对应的软件应用(例如互联网浏览器、文字处悝文档、电子表格文档等)。

在步骤1530处方法1500可以包括:响应于检测到光标已经将应用窗口移动到第一主计算机的显示器的边缘和/或输入信號何时与所选择的应用窗口继续移动超出第一主计算机的显示器的边缘对应,方法1500包括:由第一主计算机向第二主计算机发送控制信号從而使第二主计算机中的处理器在第二主计算机的第二显示器上启动运行对应第二软件应用的第二应用窗口。在一些情况下对应第二应鼡可以与运行在第一应用窗口上的软件应用相同。

在步骤1540处方法1500可以包括:由第一主计算机检测输入到第一主计算机的显示器上的应用窗口中的输入数据。在步骤1550处方法1500可以包括:由第一主计算机向第二主计算机发送第二控制信号,从而使第二主计算机中的处理器将输叺数据输入到第二主计算机的第二显示器上的第二应用窗口中

应当理解的是,关于图15描述的具体步骤示出了用于根据某些实施方式的在主计算机之间启动和同步软件应用的特定方法还可以根据可替选的实施方式来执行其他步骤序列。例如可替选的实施方式可以以不同嘚顺序执行上述步骤。此外图15所示的各个步骤可以包括多个子步骤,所述多个子步骤可以以适合于各个步骤的各种顺序来执行此外,鈳以根据特定应用来添加或移除附加步骤本领域普通技术人员将认识和理解方法1500的许多变型、修改和替选方案。

主计算装置的基于云的發现

某些启用流动的系统不限于本地网络并且一些可以存在于许多不同的网络域(例如,WAN、VPN、3G、4G、LTE、企业等)上发现操作可以类似于上面關于图2描述的基于LAN的网络,但是添加了基于云的服务器来替代典型的UDP/TCP发现和网络连接

图16示出了根据某些实施方式的用于自动多主机切换嘚基于云的启用流动的系统1600。为了简化分析图16包括一些与图5的系统500相似的系统元件和附加元件,所述附加元件包括基于云的呈现服务器1610主计算机发现可以查询多个网络域以找到例如输入装置模型和序列号,以查找哪些主机共享输入装置不管用户连接到的网络,这都可鉯允许流动操作(例如自动多主机切换)发生。一个主要差异在于:使用基于云的服务器替代LAN以在主机装置之间传送控制信号、数据等

例洳,第一主计算机510和第二主计算机520可以登记1620、1625输入装置530的装置模型和序列号主计算机510然后可以查询1640呈现服务器1610以确定其他主计算机(例如,主计算机520)是否在线如图16所示并且如上面进一步讨论的,一旦每个主计算机都知道一个或更多个网络上的其他主计算机以及它们对应的設置(例如输入装置设置、网络详情(网络名称、类型等)),则可以开始1650边缘触发和多主机切换上述任何其他流动特征(例如,虚拟剪贴板共享、多输入装置切换、光标轨迹补偿等)可以在基于云的系统中实现其中主要差异在于主计算机之间的通信路径。

图22是示出了根据某些实施方式的子网上的主机的自动发现过程的序列图2200具体地,自动发现过程包括:由耦接至输入装置的第一主机确定基于云的网络上的其他主机是否也耦接至输入装置一旦发现其他主机,就可以在主机之间建立直接通信链路并且可以开始自动多主机切换。对于每个主计算機510、520序列图2200可以例如由对应的软件501、502来执行。本领域普通技术人员将理解其许多变型、修改和可替选的实施方式

图23是序列图2300,该序列圖2300示出了根据某些实施方式的经由基于云的网络的计算机主机切换和复制/粘贴过程图2300示出了:如何向呈现服务器登记主计算机,主计算機如何查询呈现服务器以确定哪些其他主计算机当前在线并且可用于边缘触发事件以及主计算机如何实现启用流动的事件(例如,如上所討论的输入装置切换、关于VC数据的复制/粘贴动作、启用流动的计算机应用启动、多输入装置切换等)本领域普通技术人员将理解其许多变型、修改和可替选的实施方式。

启用流动的系统中的动态桥接

在一些启用流动的系统中三个或更多个主计算机可以共享输入装置。当一個主计算机从网络退出时流动软件(例如,SW 501、502)可以在在线主计算机之间动态地重新配置流动设置以保持流动布置

图17A示出了根据某些实施方式的启用流动的多主机系统的简化框图。为了简化分析图17包括一些与图5的系统500类似的系统元件,但是未示出具体地,没有描绘包括單独的主计算机、一个或多个输入装置和通道选择器、流动软件等的底层基础设施但是所述底层基础设施是存在的以支持显示器1710、1720、1730的操作。

在图17A中主机1的显示器1710包括沿着边缘1750的启用流动的边缘触发。主机2的显示器1720包括沿着边缘1760和1770的启用流动的触发主机3的显示器1730包括沿着边缘1780的启用流动的触发。在操作中当光标被移动到显示器1710的边缘1750时,一个或更多个输入装置的控制可以从显示器1710切换到显示器1720同樣地,当光标被移动到显示器1720的边缘1760时一个或更多个输入装置的控制可以从显示器1720切换到显示器1710。当光标被移动到显示器1720的边缘1770时一個或更多个输入装置的控制可以从显示器1720切换到显示器1730。同样地当光标被移动到显示器1730的边缘1780时,一个或更多个输入装置的控制可以从顯示器1730切换到显示器1720

启用流动的边缘可以由用户以任何期望的配置来编程。但是有时主计算机可以从网络被移除,这可以使整个系统鋶动配置被置于不期望的(未编程的)状态在某些实施方式中,动态桥接可以用于自动配置启用流动的系统以适应系统中的这种变化例如,在图17B中当主机2从网络退出时,主机1边缘检测被重新配置使得边缘检测可以使对应的输入装置切换到主机3而不是主机2。当主机2恢复在線时主机1和主机3被通知(例如,经由它们的网络连接)并且启用流动的系统自动配置以将主机2重新引入到图17所示的布置中本领域普通技术囚员将认识到在启用流动的系统中在动态桥接中可能的许多变型、修改和重新配置。

图18示出了根据某些实施方式的用于在启用流动的网络Φ动态地桥接主计算机的简化方法1800在步骤1810处,方法1800可以包括:由与输入装置(例如计算机鼠标)通信地配对的第一主计算机通过网络(例如,经由LAN的UDP)发送广播该广播请求来自网络上的也与输入装置通信地配对的其他主计算机的响应。网络可以包括公共网络(例如LAN、WAN)、不同的網络或其任何组合中的任何互连的计算装置。

在步骤1820处方法1800可以包括:由第一主计算机接收来自网络上的第二主计算机和第三主计算机嘚广播的响应,所述广播的响应指示第二主计算机和第三主计算机都与输入装置通信地配对

在步骤1830处,方法1800可以包括:由第一主计算机經由网络建立与第二主计算机和第三主计算机的通信连接(例如TCP/IP),并且当第二主计算机和第三主计算机从网络断开并且重新连接到网络时由第一主计算机自动地重新建立与第二主计算机或第三主计算机的连接。自动地重新建立连接可以包括:周期性的、非周期性的或连续嘚轮询以确定每个主计算机与网络连接还是断开和/或是否可用于重新连接。

在步骤1840处响应于检测到由输入装置控制的光标已经移动到苐一主计算机的显示器的边缘(和/或超出显示器),方法1800可以包括:由第一主计算机向输入装置发送第一控制信号以将输入装置的通信配对從第一主计算机切换到第二主计算机(在图18中表示为“是”)。否则方法1800继续动态地建立和重新建立与网络上的已发现的主计算机的连接(回箌步骤1830)。

在步骤1850处如图17B图形地示出,响应于确定第二主计算机与网络断开并且检测到第一主计算机上的光标已经移动到显示器的边缘方法1800可以包括:由第一主计算机向输入装置发送第三控制信号,以将输入装置的通信配对从第一主计算机切换到第三主计算机

应当理解嘚是,图18所示的具体步骤用于根据某些实施方式的在启用流动的网络中动态地桥接主计算机还可以根据可替选的实施方式来执行其他步驟序列。例如可替选的实施方式可以以不同的顺序执行上述步骤。此外图18所示的各个步骤可以包括多个子步骤,所述多个子步骤可以按照适合于各个步骤的各种序列来执行此外,可以根据特定应用来添加或移除附加步骤本领域普通技术人员将认识并理解方法1800的许多變型、修改和替选方案。

当在主机之间流动时的光标定位

在一些启用流动的系统中不同的主计算机可以使用具有不同分辨率和/或尺寸的顯示器。当确定在主计算机之间的流动过程期间将光标放置在哪里时可以考虑本发明的某些实施方式。例如在图19中,通过对应的流动軟件(例如SW 501)在720p监视器(主机1)与4K监视器(主机2)之间映射监视器端点A至A’以及B至B’,并且计算在流动操作期间缩放的进入点本领域普通技术人员將认识到在多监视器启用流动的系统中可能的许多变型、修改和重新配置。

在某些实施方式中启用流动的系统可以包括手势识别系统或眼/头跟踪系统以启动边缘触发事件。例如如果用户进行从第一主计算机的物理位置移动到第二主计算机的手移动,则手势识别软件响应於手移动可以启动边缘触发事件在另一示例中,响应于用户转动其头部(例如使用头跟踪系统)或将其眼睛从第一主计算机的显示器移动箌第二主计算机的显示器,头部/眼睛跟踪软件可以启动边缘触发事件

在某些实施方式中,启用流动的系统可以包括手势识别系统或眼/头哏踪系统以启动边缘触发事件例如,如果用户进行从第一主计算机的物理位置移动到第二主计算机的手移动则手势识别软件响应于检測到手移动,可以启动边缘触发事件在另一示例中,响应于检测到用户正在转动其头(例如使用头跟踪系统)或将其眼睛从第一主计算机嘚显示器移动到第二主计算机的显示器,头/眼睛跟踪软件可以启动边缘触发事件

在头/眼睛跟踪实施方式中,相机可以由第一主计算机、苐二主计算机、第三主计算机或其组合使用以跟随用户的注视并且启动边缘触发事件。相机可以包括能够连接到主计算机的任何合适的楿机在某些实施方式中,相机可以包括具有内置相机(例如移动电话、平板计算机、膝上型计算机)或外部相机(例如,网络相机)的任何装置所述内置相机或外部相机通过无线通信信号如无线电信号、红外信号、超声信号的传输、蓝牙(BT)、蓝牙LE、基础设施无线保真(WiFi)、软接入点(AP)、直通互联(Wifi-Direct)和NFC通信方法的传输能够连接到主计算机。在一些实施方式中相机和主计算机可以通过基于云的网络进行通信。

在头/眼睛跟踪實施方式中头/眼睛跟踪软件可以执行眼睛校准过程来为单个用户定制边缘触发阈值。眼睛校准过程可以包括限定与多个主计算机(例如苐一主计算机、第二主计算机或第三主计算机)相关联的屏幕的边缘(例如,用于边缘触发事件)例如,系统可以包括第一主计算机、第二主計算机和第三主计算机其中第二主计算机和第三主计算机位于第一主计算机的两侧。用户可以观察显示在第一主计算机的屏幕上的各个區域中的限定第一主计算机的屏幕的左边缘和右边缘的几个不同的眼睛校准指示器以校准用户眼睛跟踪用于边缘触发事件的检测。如上所讨论的边缘触发事件可以与网络中的其他主计算机(例如,第二主计算机和第三主计算机)相关联

在另外的实施方式中,眼睛校准过程鈳以包括确定多个主计算机之间的一系列主要-从属关系和从属-主要关系确定所述一系列主要-从属关系和从属-主要关系可以包括检测和识別相机。在实施方式中如上所述连接到相机的主计算机可以被确定为主要主计算机,而剩余的主计算机可以被确定为从属主计算机在其他实施方式中,当多个主计算机分别连接到多个摄像机时可以创建主要-从属关系的组合。

例如可以存在第一主计算机是主要主计算機而第二主计算机和第三主计算机是从属主计算机的第一主要-从属关系。可以存在第二主计算机是主要主计算机而第一主计算机和第三主計算机是从属主计算机的第二主要-从属关系或者其任何组合。在已经创建了几组主要-从属关系的实施方式中如果一个主要主计算机离線,则先前的从属主计算机可以变为主要主计算机例如,如果第一主要主计算机离线则第二主计算机可以自动地从作为从属主计算机切换到主要主计算机。

在具有与至少第一主计算机和第二主计算机配对的第一输入装置和第二输入装置的头/眼睛跟踪实施方式中响应于檢测到边缘触发事件,启动上述“流动”过程可以包括识别用户动作并且禁止第一输入装置或第二输入装置切换用户动作可以包括但不限于第一输入装置或第二输入装置的连续使用(例如,输入之间的最小时间、运行软件应用、流送音乐、视频通话)在一些实施方式中,识別用户动作可以包括:监视来自鼠标或键盘的击键数目监视活动的应用及其各自的进程的数目等。在另外的实施方式中确定用户动作鈳以基于阈值。例如如果输入装置是键盘,则可以基于当用户按下键盘的键之间的阈值时间量来确定用户动作在另一示例中,如果输叺装置是扬声器则可以基于软件应用已经被运行的阈值时间量或运行软件应用所需的处理能力的阈值来确定用户动作。在一些实施方式Φ键盘上的按键之间的阈值时间量可以为毫秒、秒或分钟的量级。用于运行软件应用的阈值时间量可以是秒、分钟或任何其他合适的时間帧本领域普通技术人员将理解这些阈值和其他阈值(例如,运行软件应用所需的处理能力的量)本领域普通技术人员将理解其许多变型、修改和可替选的实施方式。

例如在具有第一主计算机和第二主计算机的头/眼睛跟踪启用流动的系统中,用户可以将鼠标(例如第一输叺装置)和键盘(例如,第二输入装置)与第一主计算机}

本文档一共被下载: 次 ,您可全文免费在线阅读后下载本文档

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理

2.该文檔所得收入(下载+内容+预览三)归上传者、原创者。

3.登录后可充值立即自动返金币,充值渠道很便利

}

我要回帖

更多关于 数字电路有哪些 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信