CN117478682A - 建立点对点通道的方法、设备及协同工作*** - Google Patents

建立点对点通道的方法、设备及协同工作*** Download PDF

Info

Publication number
CN117478682A
CN117478682A CN202210859323.0A CN202210859323A CN117478682A CN 117478682 A CN117478682 A CN 117478682A CN 202210859323 A CN202210859323 A CN 202210859323A CN 117478682 A CN117478682 A CN 117478682A
Authority
CN
China
Prior art keywords
channel
electronic device
identifier
information
tablet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210859323.0A
Other languages
English (en)
Inventor
何明祺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210859323.0A priority Critical patent/CN117478682A/zh
Publication of CN117478682A publication Critical patent/CN117478682A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供了一种建立点对点通道的方法、设备及协同工作***。该方法省略掉传统的P2P通道建立标准,在建立P2P通道时发起请求的第二电子设备直接指定自己的角色信息,而标识双方身份的标识符在认证阶段已经实现交换,因此第一电子设备在接收到第二电子设备发送的P2P通道建立请求报文后,直接根据认证阶段获得的标识符对P2P通道建立请求报文中携带的标识符进行校验,在校验通过后根据角色信息确定是创建热点,还是直接接入热点,最终根据热点信息,如密码和账号实现二者之间的连接,大大简化了建立P2P通道的流程,并且基于热点信息以无线接入点的方式建立二者之间的P2P通道,使得建立P2P通道的成功率大大提高。

Description

建立点对点通道的方法、设备及协同工作***
技术领域
本申请涉及通信技术领域,尤其涉及一种建立点对点通道的方法、设备及协同工作***。
背景技术
随着互联网技术和物联网(Internet of Things,IOT)技术的发展,各种IOT设备层出不穷。这些IOT设备可以单独工作,也可以与其他电子设备,如手机、平板电脑(下文简称为:平板)配合,适应于更多的使用场景。以IOT设备为具备摄像功能、音频功能的台灯(下文称为:台灯)为例,目前台灯通过与手机、平板等具备强大处理能力的电子设备建立点对点(Peer-to-Peer,P2P)通道,从而可以将采集到的图像数据、音频数据传输给电子设备,由电子设备进行后续处理。
但是目前建立P2P通道的过程,涉及的流程较多,操作繁琐,且存在冗余流程,而IOT设备通常为瘦设备(***资源、处理能力有限),因此目前建立P2P通道的方式受限于IOT设备的能力,建立过程缓慢。这对于资源较少的IOT设备来说,资源和时间消耗巨大,因此亟需提供一种快速、高效的建立P2P通道的方法。
发明内容
为了解决上述技术问题,本申请提供一种建立点对点通道的方法、设备及协同工作***,旨在简化P2P通道的建立流程,从而降低对IOT设备资源和时间的消耗,达到快速、高效的建立IOT设备和电子设备之间的P2P通道。
第一方面,本申请提供一种建立点对点通道的方法。该方法应用于第一电子设备,第一电子设备与第二电子设备在认证阶段交换了标识自身的标识符,方法包括:接收第二电子设备发送的点对点P2P通道建立请求报文,P2P通道建立请求报文包括第二电子设备的标识符、角色信息、角色对应的认证信息,角色信息用于指示第二电子设备是创建热点的一方,或者接入热点的一方;根据认证阶段获得的第二电子设备的标识符对P2P通道建立请求报文中包括的标识符进行校验;在校验成功,且角色信息指示第二电子设备是接入热点的一方时,创建热点;向第二电子设备发送P2P通道建立响应报文,P2P通道建立响应报文包括第一电子设备的标识符、创建的热点的第一热点信息。
其中,第一电子设备例如为IOT设备。
示例性的,在一些实现方式中,IOT设备例如可以任意能够收集数据,并与第二电子设备建立P2P通道,进行数据传输的设备。具体到本申请中,以IOT设备为具备摄像功能、音频功能的台灯、摄像头等为例。
其中,第二电子设备例如为手机、平板等具备强大处理能力的电子设备。
其中,认证阶段交换标识符的流程,具体是由第一电子设备先通过软件启动一个无线接入点(softap),这样第二电子设备就可以接入该softap,从而使第一电子设备和第二电子设备处于同一局域网中。接着,第一电子设备和第二电子设备就可以基于受限应用协议(The Constrained Application Protocol,COAP),将能够标识设备唯一性的标识符发送给对方,即第一电子设备基于COAP协议将标识第一电子设备的标识符发送给第二电子设备,同理第二电子设备基于COAP协议将标识第二电子设备的标识符发送给第一电子设备。
示例性的,在本申请中,P2P通道的建立是在第一电子设备和第二电子设备已经完成认证阶段交换标识符的操作后进行的,故而在建立P2P通道时无需用户手动输入认证信息进行认证,从而简化了用户操作。
此外,即便发起建立P2P通道的请求时,第一电子设备与第二电子设备未进行认证,在本申请中,第一电子设备和第二电子设备按照上述给出的认证流程完成认证即可,由于认证阶段用户也无需手动输入认证信息,故而本申请提供的建立P2P通道的方案相交于现有的方式,建立流程依旧简洁。
其中,创建热点的一方,例如下文中所说的GO;接入热点的一方,例如下文所说的GC。
其中,角色对应的认证信息根据角度的不同有所差异。示例性的,在角色为GO时,认证信息例如为热点信息,在角色为GC时,认证信息例如为个人身份识别码(Personalidentification number,PIN码)。
示例性的,在本申请中,热点信息具体包括热点对应的账号和密码。
此外,为了便于区分第一电子设备创建的热点的热点信息和第二电子设备创建的热点的热点信息,本申请中将第一电子设备创建的热点的热点信息称为第一热点信息,将第二电子设备创建的热点的热点信息称为第二热点信息。
由此,本申请提供的建立P2P通道的方法,省略掉传统的P2P通道建立标准,即跳过扫描MAC地址、发送广播、协商角色、P2P网口连接、用户输入认证信息等流程,在建立P2P通道时发起请求的第二电子设备直接指定自己的角色信息,而标识双方身份的标识符在认证阶段已经实现交换,因此第一电子设备在接收到第二电子设备发送的P2P通道建立请求报文后,直接根据认证阶段获得的标识符对P2P通道建立请求报文中携带的标识符进行校验,在校验通过后根据角色信息确定是创建热点,还是直接接入热点,最终根据热点信息,如密码和账号实现二者之间的连接,大大简化了建立P2P通道的流程,并且基于热点信息以无线接入点(Access Point,AP)的方式建立二者之间的P2P通道,使得建立P2P通道的成功率大大提高。
也就是说,本申请提供的建立P2P通道的方法,能够有效降低对IOT设备资源和时间的消耗,从而达到快速、高效的建立IOT设备和电子设备之间的P2P通道,进而能够更好的适用于与各种瘦设备的交互场景。
此外,应当理解的是,本申请提供的建立P2P通道的方法,同样适用于非IOT设备,即任意两个第二电子设备也可以基于该方式建立P2P通道。对于这种场景,发送据P2P通道建立请求报文的电子设备就是名义上的第二电子设备,接收的则为第一电子设备。
示例性的,在另一些实现方式中,本申请提供的建立P2P通道的方法,任意两个第一电子设备也可以基于该方式建立P2P通道。对于这种场景,发送据P2P通道建立请求报文的电子设备就是名义上的第二电子设备,接收的则为第一电子设备。
即,本申请中的第一电子设备、第二电子设备并不限定电子设备的具体类型,仅仅是为了区分角色。
根据第一方面,在角色信息指示第二电子设备是创建热点的一方时,认证信息为第二电子设备创建的热点的第二热点信息;方法还包括:在校验成功,且角色信息指示第二电子设备是创建热点的一方时,根据第二热点信息,建立与第二电子设备之间的P2P通道;向第二电子设备发送P2P通道建立响应报文,P2P通道建立响应报文包括第一电子设备的标识符、角色信息、角色对应的认证信息。
这样,在第二电子设备是创建热点的一方时,第一电子设备直接根据P2P通道建立请求报文中携带的第二热点信息采用AP方式与第二电子设备建立连接,就可以实现P2P通道的建立,无需其他额外操作,快速、简洁。
根据第一方面,或者以上第一方面的任意一种实现方式,在创建热点之后,方法还包括:为第二电子设备分配网际协议IP地址,并建立IP地址和第二电子设备的标识符之间的对应关系;根据对应关系,将IP地址和第二电子设备的标识符添加到IP地址/标识符管理表。
这样,第一电子设备通过为需要与之建立P2P通道的第二电子设备分IP地址,并建立分配的IP地址与第二电子设备的标识符之间的对应关系,从而可以实现一对多的连接管理,便于获知有哪些第二电子设备使用哪些IP地址与之建立P2P通道,方便后续管理,如数据的传输、P2P通道的断开等。
根据第一方面,或者以上第一方面的任意一种实现方式,方法还包括:在建立与第二电子设备之间的P2P通道之后,获取P2P通道的状态信息,状态信息指示P2P通道打开或断开;将状态信息添加到IP地址/标识符管理表中,与第二电子设备的标识符和IP地址建立对应关系。
这样,通过实时获取已经建立成功的P2P通道的状态信息,并将状态信息更新到IP地址/标识符管理表中对应的标识符和IP地址处,作为对该标识符和IP地址对应的P2P通道的标定,从而可以根据状态信息便于后续后续管理,如数据的传输、P2P通道的断开等。
根据第一方面,或者以上第一方面的任意一种实现方式,在建立与第二电子设备之间的P2P通道之后,方法还包括:接收第二电子设备发送的P2P通道断开通知报文,P2P通道断开通知报文包括第二电子设备的标识符;断开与P2P通道断开通知报文中的标识符标识的第二电子设备之间的P2P通道。
这样,根据P2P通道断开通知报文中携带的标识符,就可以快速确定需要断开与哪一第二电子设备之间的P2P通道。
根据第一方面,或者以上第一方面的任意一种实现方式,方法还包括:将IP地址/标识符管理表中,第二电子设备的标识符对应的状态信息修改为断开。
这样,在P2P通道断开时,先修改对应的状态信息,而不是直接删除,从而可以在断开的P2P通道立马重新连接时无需重新分配IP地址,并建立对应关系,能够更好的适用于因为网络原因或其他异常大致P2P通道瞬时断开后立马重连的场景。
根据第一方面,或者以上第一方面的任意一种实现方式,方法还包括:删除IP地址/标识符管理表中记录的第二电子设备的标识符,以及与第二电子设备的标识符对应的状态信息、IP地址。
这样,可以减少IP地址/标识符管理表中的冗余信息,减少对设备资源、空间的占用。
根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备的标识符为媒体存取控制MAC地址。即,第一电子设备对应的MAC地址。
需要说明的是,这种采用MAC地址作为第一电子设备标识符的方式,通常适用于MAC地址固定不变的使用场景。
根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备的标识符为基本服务群标识BSSID。
由于部分架构的芯片的P2P网口对应的MAC地址可能不固定,因此通过采用固定且唯一的BSSID作为第一电子设备的标识符,能够保证每一个标识符标识的第一电子设备是唯一且固定的。
根据第一方面,或者以上第一方面的任意一种实现方式,第二电子设备的角色信息根据第二电子设备的产品特性决定。
例如,对于第二电子设备是手机、平板等需要处理数据的一方时,其角色信息可以确定为GC;而对于能够接入多个电子设备,并向接入的电子设备传输数据的第二电子设备,其角色信息可以确定为GO。
同理,第一电子设备的角色信息也可以基于产品特性确定,具体的确定方式与第二电子设备的类似,此处不再赘述。
由于产品的特性根据其当前所处的使用场景,以及历史使用场景可以确定,因此角色信息可以直接确定,从而在建立P2P通道时无需进行角色协商,节省了大量的时间。
第二方面,本申请提供了一种建立点对点通道的方法。该方法应用于第二电子设备,第二电子设备与第一电子设备在认证阶段交换了标识自身的标识符,包括:向第一电子设备发送点对点P2P通道建立请求报文,P2P通道建立请求报文包括第二电子设备的标识符、角色信息、角色对应的认证信息,角色信息用于指示第二电子设备是创建热点的一方,或者接入热点的一方;在角色信息指示第二电子设备是接入热点的一方时,接收第一电子设备发送的P2P通道建立响应报文,P2P通道建立响应报文包括第一电子设备的标识符、创建的热点的第一热点信息;根据认证阶段获得的第一电子设备的标识符对P2P通道建立响应报文中包括的标识符进行校验;在验证成功时,根据第一热点信息,建立与第二电子设备之间的P2P通道。
根据第二方面,方法还包括:向第一电子设备发送P2P通道断开通知报文,P2P通道断开通知报文包括第二电子设备的标识符。
根据第二方面,或者以上第二方面的任意一种实现方式,第二电子设备的标识符为媒体存取控制MAC地址。即,第二电子设备对应的MAC地址。
需要说明的是,这种采用MAC地址作为第二电子设备标识符的方式,通常适用于MAC地址固定不变的使用场景。
根据第二方面,或者以上第二方面的任意一种实现方式,第二电子设备的为基本服务群标识BSSID。
由于部分架构的芯片的P2P网口对应的MAC地址可能不固定,因此通过采用固定且唯一的BSSID作为第二电子设备的标识符,能够保证每一个标识符标识的第二电子设备是唯一且固定的,进而保证根据第二电子设备的标识符能够在第一电子设备侧记录的IP地址/标识符管理表中查询到唯一且固定的第二电子设备,以及与该第二电子设备之间的P2P通道的状态信息、为该第二电子设备分配的IP地址,便于后续管理维护。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请提供了一种电子设备。该电子设备包括:存储器和处理器,存储器和处理器耦合;存储器存储有程序指令,程序指令由处理器执行时,使得所述电子设备执行第一方面以及第一方面的任意可能的实现方式中的方法的指令,或者用于执行第二方面以及第二方面的任意可能的实现方式中的方法的指令。
示例性的,在一些实现方式中,电子设备例如可以是上文所说的第一电子设备,或者第二电子设备。
示例性的,在另一些实现方式中,电子设备可以根据实际的使用场景进行角色置换,即同一电子设备既可以作为第一电子设备,也可以作为第二电子设备。
示例性的,当电子设备为上文所说的第一电子设备时,第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
示例性的,当电子设备为上文所说的第二电子设备时,第三方面以及第三方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,本申请提供了一种协同工作***,包括用于执行第一方面以及第一方面的任意一种实现方式的第一电子设备,以及用于执行第二方面以及第二方面的任意一种实现方式的第二电子设备。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面以及第一方面的任意一种可能的实现方式中的方法的指令,以及用于执行第二方面以及第二方面的任意一种可能的实现方式中的方法的指令。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请提供了一种计算机程序,该计算机程序包括用于执行第一方面以及第一方面的任意一种可能的实现方式中的方法的指令,以及用于执行第二方面以及第二方面的任意一种可能的实现方式中的方法的指令。
第六方面以及第六方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第七方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第一方面以及第一方面的任一种可能的实现方式中的方法,或者执行第二方面以及第二方面的任一种可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
第七方面以及第七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式,或者第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a-图1b为示例性示出的一种应用场景;
图2a为示例性示出的电子设备的硬件结构示意图;
图2b为示例性示出的电子设备的软件结构示意图;
图3a为示例性示出的物联网设备的硬件结构示意图;
图3b为示例性示出的物联网设备的软件结构示意图;
图4a为本申请实施例提供的一种模块交互示意图;
图4b为本申请实施例提供的一种模块交互示意图;
图5a-图5b为示例性示出的一种应用场景;
图6a为本申请实施例提供的一种模块交互示意图;
图6b为本申请实施例提供的一种模块交互示意图;
图7a-图7b为示例性示出的一种应用场景;
图8为本申请实施例提供的一种模块交互示意图;
图9a-图9c为示例性示出的一种应用场景;
图10为本申请实施例提供的一种模块交互示意图
图11a-图11b为示例性示出的一种应用场景;
图12为示例性示出的电子设备和IOT设备建立P2P通道时涉及的功能模块图;
图13为示例性示出的一种建立P2P通道的示意图;
图14为示例性示出的又一种建立P2P通道的示意图;
图15为示例性示出的断开P2P通道的示意图;
图16为示例性示出的认证阶段涉及的功能模块的交互示意图;
图17为示例性示出的建立P2P通道阶段涉及的功能模块的交互示意图;
图18为示例性示出的断开P2P通道阶段涉及的功能模块的交互示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个***是指两个或两个以上的***。
随着互联网的发展,在线教育受到越来越多人的欢迎,用户(如学生)对在线教育的需求也越来越大。在一些应用场景中,当遇到生词时,学生可以进行在线查词以获取相关解释;在一些应用场景中,对书本内容的在线朗读更便于学生学习知识和发音;在一些应用场景中,学生需要将其作业进行在线提交。因此,如何基于智能设备满足用户的在线教育需求,是需要解决的问题。
目前,针对在线教育场景用户通常使用兼备拍摄功能和显示功能的智能学习机,此种设备需要在特殊位置摄像头或者反光镜,以实现对书本的拍摄,通用性和易用性不强。另外,兼具拍摄功能和显示功能的设备需要较强的硬件和***支持,设备成本较高。进而,如何基于智能设备为用户提供较好的在线教育体验,提升通用性和易用性,降低在线教育成本,是需要解决的问题。
本申请实施例提供的一种协同工作***,可以应用于在线教育场景。该***工作***包括建立通信连接的电子设备和台灯,台灯上设置有摄像头,可用于向下拍摄书本。电子设备调用台灯的摄像头采集图像,并结合平台在线教育资源即可满足用户的在线教育需求。其中,电子设备可以是平板电脑或手机等。除了在线教育场景,电子设备和台灯还可以基于各自的基本功能(即通信功能和照明功能)为用户服务。这样,该***工作***可以基于用户常用的两个智能设备为用户打造更好的在线教育体验,通用性和易用性都较强。另外,由于平板电脑或手机等早已是家家户户的必备产品,且只有拍摄功能的台灯设备成本显示会低于兼具拍摄功能和显示功能的设备,极大地降低了用户的在线教育成本。
下述以电子设备为平板为例,对本申请提供的技术方案进行解释说明。
图1a示例性的示出了一种应用场景。如图1a所示,协同工作***包括建立通信连接的平板100和台灯200。其中,台灯200包括摄像头201,用于向下采集图像,例如可以是向下拍摄书本中文字内容或图片内容。平板100中安装教育APP(Application,应用程序),该教育APP可以调用台灯200的摄像头201采集图像,并根据台灯200的摄像头201采集到的图像为用户提供各种在线教育功能,例如在线查词、在线朗读、在线提交作业等。
虽然平板也具有前置摄像头和后置摄像头,但无论使用哪个摄像头拍摄书本,都需要用户手持平板将摄像头对准书本,不仅拍摄不稳定,还影响用户用手执行的指读、点读操作,无法给用户提供较好的在线教育体验。如图1a所示,平板100和台灯200均可以固定位置放置,平板100使用台灯200的摄像头201拍摄书本,拍摄画面稳定使得内容识别成功率高,用户也可以灵活地在书本中进行指读、点读操作。由此,平板和台灯联动可以给用户提供较好的在线教育体验。
如图1b所示,平板100和台灯200可以进行近场通信或远场通信。其中,近场通信可以通过路由器等设备完成设备间信息交互,远场通信可以通过云服务器完成设备间信息交互。示例性的,平板100和台灯200可以基于Wi-Fi(wireless fidelity,无线保真)网络协议等实现近场通信。
如图2a所示为电子设备100的结构示意图。可选地,电子设备100可以为终端,也可以称为终端设备,终端可以为蜂窝电话(cellular phone)或平板电脑(pad)等设备,本申请不做限定。需要说明的是,电子设备100的结构示意图可以适用于图1a~图1b中的平板。应该理解的是,图2a所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,加速度传感器,温度传感器,运动传感器,气压传感器,磁传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器,骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,显示屏194可以显示拍摄预览界面和拍照图像界面等。需要说明的是,在本申请实施例中,拍摄预览界面是指用户可通过显示屏194观看台灯摄像头实时采集的图像的界面。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的协同工作方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。在一些实施例中,电子设备100可以设置多个扬声器170A。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
按键190包括开机键(或称电源键),音量键等。按键190可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图2b是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,***层,HAL层(Hardware Abstract Layer,硬件抽象层),以及内核层。
应用程序层可以包括一系列应用程序包。
如图2b所示,应用程序包可以包括通话、视频、蓝牙、相机、WLAN、教育应用、设备管家应用等。应用程序包还可以包括日历、地图、导航、音乐、短信息等应用程序。
其中,教育应用可以用于为用户提供在线教育功能,例如在线识词、在线朗读、在线提交作业等。
在一些示例中,设备管家应用可以用于对台灯等IOT(Internet of Things,物联网)设备进行绑定。在一些示例中,教育应用可以实现对台灯等IOT(Internet of Things,物联网)设备的绑定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2b所示,应用程序框架层可以包括相机服务、鉴权服务、硬件虚拟化服务、设备管理服务、传输管理服务等。
其中,相机服务(camera service)可以用于响应于应用的请求,调用摄像头(包括前置摄像头和/或后置摄像头)。
在本申请实施例中,相机服务可以用于响应于应用的请求,调用电子设备侧的虚拟摄像头,也即调用IOT设备中的摄像头。
鉴权服务用于提供安全权限管理能力。
硬件虚拟化服务,可以用于在电子设备侧(即中心设备侧)与IOT设备侧之间建立逻辑通道,提供虚拟化相机的能力。
设备管理服务,可以用于IOT设备发现及管理,为教育应用等应用程序提供远场(即云端)IOT设备信息以及近场(即附近可连接)的IOT设备信息。
传输管理服务,可以用于建立物理传输通道,提供数据传输能力。
除此之外,还可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
***库与运行时层(即***层)包括***库和安卓运行时(Android Runtime)。
Android Runtime(安卓运行时)包括核心库和虚拟机。Android Runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
在本申请实施例中,Android Runtime还包括虚拟相机适配层,提供虚拟相机注册的能力。
***层中的***库可以包括多个功能模块。例如:多媒体平台、图形图像处理库、编解码等。
多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
HAL层为位于操作***内核与硬件电路之间的接口层。HAL层包括但不限于:音频HAL、传感器HAL、调制解调HAL、相机HAL、虚拟相机HAL。
其中,音频HAL用于对音频流进行处理,例如,对音频流进行降噪、定向增强等处理。相机HAL用于对与电子设备侧摄像头对应的图像流进行处理,虚拟相机HAL用于对电子设备侧注册的虚拟相机对应的图像流进行处理,也即用于对IOT设备侧摄像头采集的图像流进行处理。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,相机区域,音频驱动,网络驱动(如Wi-Fi驱动),CPU驱动,USB驱动,存储驱动,打印驱动等。其中,硬件至少包括处理器、显示屏、Wi-Fi模块等。
可以理解的是,图2b示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
如图3a所示为物联网设备200的硬件结构示意图。需要说明的是,物联网设备200的结构示意图可以适用于图1a~图1b中的台灯。应该理解的是,图3a所示的物联网设备200仅是电子设备的一个范例,并且物联网设备200可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图3a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
物联网设备200可以包括:处理器210,摄像头201,无线通信模块202,存储器203,音频模块204,USB接口205,充电管理模块206,电源管理模块207,电池208,照明装置209,按键211等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括GPU,ISP,控制器,存储器,视频编解码器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是物联网设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
摄像头201用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。以台灯为例,摄像头201可以设置于台灯支架上,用于向下采集图像。
物联网设备200可以通过ISP,摄像头201,视频编解码器,GPU等实现拍摄功能。
ISP用于处理摄像头201反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头201中。
无线通信模块202可以提供应用在物联网设备200上的包括WLAN(如Wi-Fi网络),蓝牙(bluetooth,BT)等无线通信的解决方案。在一些实施例中,物联网设备200的天线和无线通信模块202耦合,使得物联网设备200可以通过无线通信技术与网络以及其他设备通信。
存储器203可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在存储器203的指令,从而执行物联网设备200的各种功能应用以及数据处理,例如使得物联网设备200实现本申请实施例中的协同工作方法。
物联网设备200可以通过音频模块204,扬声器212等实现音频功能,例如音乐播放等。
USB接口205是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口205可以用于连接充电器为物联网设备200充电,也可以用于物联网设备200与***设备之间传输数据。
充电管理模块206用于从充电器接收充电输入。充电管理模块206为电池208充电的同时,还可以通过电源管理模块207为物联网设备200供电。
电源管理模块207用于连接电池208,充电管理模块206与处理器210。电源管理模块207接收电池208和/或充电管理模块206的输入,为处理器210,存储器203,摄像头201,无线通信模块202,以及照明装置209等供电。
按键211包括开机键(或称电源键)等。
物联网设备200的软件***可以采用分层架构或者其他架构等。本申请实施例以分层架构为例,示例性说明物联网设备200的软件结构。
图3b是本申请实施例的物联网设备200的软件结构框图。
物联网设备200的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将物联网设备200的***分为三层,从上至下分别为应用程序层,应用程序框架层,***层,以及内核层。
如图3b所示,应用程序层可以包括设备应用服务,设备应用服务可以理解为***级应用,物联网设备200***启动后设备应用服务启动。
如图3b所示,应用程序框架层可以包括设备互联服务、硬件抽象服务、资源管理器等。
设备互联服务,可以用于建立物理传输通道,提供数据传输能力,同时可以管理硬件抽象服务的启动开关。
硬件抽象服务,可以用于在电子设备侧(即中心设备侧)和IOT设备之间建立逻辑通道,提供虚拟化相机的能力,同时提供IOT设备的相机开放接口。
资源管理器可以为应用程序提供各种资源。
如图3b所示,***层可以包括多媒体平台、图形图像处理库、编解码器、设备适配模块等。
多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
设备适配模块可以实现硬件抽象服务的接口,可以提供设备信息和能力查询,还可以提供在IOT设备侧执行相关操作的功能,例如打开摄像头、拍照、预览等功能。
可以理解的是,电子设备100和物联网设备200为了实现本申请实施例中的协同工作方法,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图4a所示为各模块的交互示意图。参照图4a,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
0.设备服务初始化阶段
S0.1,响应于用户操作,台灯的设备应用服务启动,加载设备互联服务。
示例性的,用户操作可以时用户开启台灯电源的操作。响应于用户操作,台灯***启动,设备应用服务随之启动,并加载设备互联服务。其中,设备互联服务可以用于在平板和台灯之间建立物理传输通道,用于提供数据传输能力。
S0.2,台灯的设备互联服务加载硬件抽象服务。
设备互联服务还可以控制硬件抽象服务的开启。示例性的,在设备互联服务启动后,设备互联服务可以以插件的形式加载硬件抽象服务。其中,硬件抽象服务可以用于在平板和台灯之间建立逻辑通道,提供虚拟化相机的能力,同时还可以提供台灯相机的开放接口。
参照图4b所示的模块交互示意图,硬件抽象服务至少可以包括基础组件和相机组件。其中,在设备服务初始化阶段,设备互联服务加载首先加载基础组件,并对基础组件进行初始化。在基础组件初始化之后,可以与台灯的设备适配模块进行信息交互,获取设备信息和虚拟化能力信息。示例性的,设备信息包括但不限于设备名称、设备标识、设备类型等。示例性的,虚拟化能力信息包括但不限于是否支持虚拟化相机、是否支持虚拟化麦克风等。
其中,台灯具有支持虚拟化相机的能力,可以理解为台灯的摄像头允许其他电子设备(如平板)调用,也即可以理解为台灯的摄像头允许被作为其他电子设备的虚拟相机。
在基础组件获取到台灯的设备信息和能力信息之后,如果台灯具有支持虚拟化相机的能力,则基础组件加载相机组件,以提供虚拟化相机的能力。此时,基础组件即可进行协商通道建立准备,以待与平板建立协商通道协商网络连接相关信息(包括但不限于IP地址和端口等)。其中,在基础组件进行协商通道建立准备时,创建一个会话服务(SessionServer),并将会话服务的会话名称(Session Name)发送至设备互联服务中,以待平板侧的传输管理服务与台灯侧的设备互联服务建立协商通道。
1.设备发现阶段
S1.1,响应于用户操作,平板的教育APP向设备管理服务发送设备发现指令。
其中,用户操作可以是用户点击教育APP中需要调用虚拟相机的功能选项的操作。示例性的,用户操作可以时用户点击教育APP中点读功能、查词功能、作业功能、拍照功能的操作。
平板的教育APP接收到用户操作,响应于该操作,向平板的设备管理服务发送设备发现指令。其中,设备发现指令,用于指示查找能够与平板建立连接的IOT设备。示例性的,设备发现指令中可以包括但不限于指令类型和待发现的设备类型。在本实施例中,设备发现指令具体用于查找能够与平板建立连接的台灯。
S1.2,平板中设备管理服务调用鉴权服务对教育APP进行鉴权,获取到对教育APP的鉴权结果。
设备管理服务接收到设备发现指令后,可以基于安卓***已有机制获取到教育APP的名称(或标识),并根据教育APP的名称对教育APP进行APP鉴权。其中,设备管理服务可以调用鉴权服务对教育APP进行鉴权,以得到对教育APP的鉴权结果。
在本实施例中,平板侧应用程序框架层中还提供有与设备管理服务对应的设备管理API,以及与硬件虚拟化服务对应的硬件虚拟化API。为了实现本实施例提供的技术方案,教育APP需要在相关平台(例如平板厂商提供的平台)上注册,适配设备管理服务、硬件虚拟化服务以及传输管理服务的框架,并申请设备管理API和硬件虚拟化API的权限。
示例性的,鉴权服务访问鉴权服务器,以通过鉴权服务器对教育APP进行鉴权,包括但不限于鉴权是否在相关平台上注册,是否适配了相关框架,是否申请了相关API权限。
又示例性的,鉴权服务可以根据本地白名单对教育APP进行鉴权。
在鉴权服务得到教育APP的鉴权结果(鉴权成功或鉴权失败),将鉴权结果发送给设备管理服务。
S1.3,平板中设备管理服务在教育APP鉴权成功时向传输管理服务发送设备搜索指令。
如果教育APP鉴权成功,则设备管理服务向传输管理服务发送设备搜索指令。其中,设备搜索指令可以包括但不限于指令类型、待搜索的设备类型以及搜索方式。示例性的,搜索方式包括但不限于近场设备扫描和从云服务器中获取设备信息。在本实施中,待搜索的设备类型为台灯。
S1.4,平板中传输管理服务根据设备搜索指令获取到远近场设备列表,并将远近场设备列表发送给设备管理服务。
远近场设备列表包括远场设备列表和近场设备列表。其中,远场设备列表中包括的远场设备是指从云服务器中获取到的已注册设备,近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在远场设备列表和近场设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
传输管理服务接收到设备搜索指令时,根据设备搜索指令中携带的待搜索的设备类型以及搜索方式执行相关设备搜索操作,如执行近场设备扫描操作以及在云服务器中获取相关设备信息的操作,得到远场设备列表和近场设备列表,并将远场设备列表和近场设备列表发送给设备管理服务。
S1.5,平板中设备管理服务根据远近场设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。
设备管理服务根据远场设备列表和近场设备列表进行设备过滤,确定能够与平板联动的台灯信息,并发送给教育APP。其中,设备管理服务可以对远场设备列表和近场设备列表执行取交集的操作,过滤掉仅存在于远场设备列表或仅存在于近场设备列表中的台灯,将既存在于远场设备列表又存在于近场设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
在另一种可选的实施方式中,若平板和台灯无论是否处于同一个局域网下,平板的传输管理服务可以根据设备搜索指令获取通信设备列表和注册设备列表。其中,通信设备列表中包括的设备是指通过近场通信或远场通信扫描到的设备,注册设备列表中包括的设备是指从云服务器中获取到的已注册设备。近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在通信设备列表和注册设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
平板中传输管理服务将通信设备列表和注册设备列表发送至设备管理服务,设备管理服务根据通信设备列表和注册设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。其中,设备管理服务可以对通信设备列表和注册设备列表执行取交集的操作,过滤掉仅存在于通信设备列表或仅存在于注册设备列表中的台灯,将既存在于通信设备列表又存在于注册设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
2.虚拟相机使能阶段
S2.1,平板的教育APP确定待联动的台灯。
设备管理服务过滤得到的能够与平板联动的台灯数量可以为一个或多个。当台灯数量为一个时,教育APP将其默认作为待联动的台灯;当台灯数量为多个时,教育APP可以为用户展示待联动的台灯列表,以供用户在其中选择,响应于用户的选择操作,教育APP将用户选择的台灯作为待联动的台灯。
需要指出的是,教育APP确定待联动台灯的步骤也可以划分至设备发现阶段,本实施例对此不做限定。
S2.2,平板的教育APP对台灯进行设备校验、设备连接,并获取到台灯具有支持虚拟化相机的能力。
S2.3,平板的教育APP向硬件虚拟化服务发送虚拟相机使能请求。
平板的教育APP在获取到台灯具有支持虚拟化相机的能力之后,向硬件虚拟化服务发送虚拟相机使能请求。其中,虚拟相机使能请求用于指示在虚拟相机HAL中注册虚拟相机。虚拟相机使能请求中可以包括但不限于请求类型、设备名称、设备标识、设备类型以及虚拟相机的标识。
S2.4,平板的硬件虚拟化服务向虚拟相机HAL注册虚拟相机。
硬件虚拟化服务接收到虚拟相机使能请求之后,根据虚拟相机使能请求中向虚拟相机HAL注册相应的虚拟相机。
S2.5,平板的虚拟相机HAL在虚拟相机注册完成之后,向教育APP发送虚拟相机使能成功指示。
下面结合图4b所示的模块交互示意图,对虚拟相机使能阶段的流程进行详细解释说明。参照图4b,虚拟相机使能阶段的流程,主要包括设备校验子阶段(S301-S309)、设备连接子阶段(S310-S321)、设备服务能力请求子阶段(S322-S325)和虚拟相机使能子阶段(S326-S331)。
参照图4b,虚拟相机使能阶段的流程,具体包括如下步骤:
S301,平板中教育APP向硬件虚拟化API发送虚拟相机使能指令。
其中,虚拟相机使能指令用于指示使能虚拟相机,虚拟相机使能指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S302,平板中硬件虚拟化API在接收到虚拟相机使能指令之后,向硬件虚拟化服务的接口调度模块发送设备校验指令。
设备校验指令,用于指示对虚拟相机使能指令中携带的设备信息进行校验。其中,设备校验指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S303,平板中硬件虚拟化服务的接口调度模块向硬件虚拟化服务的权限管理模块发送APP鉴权指令。
硬件虚拟化服务的接口调度模块接收到设备校验指令之后,首先向硬件虚拟化服务的权限管理模块发送APP鉴权指令,以对发起虚拟相机使能指令的APP进行鉴权。其中,APP鉴权指令中可以包括但不限于APP的名称。
S304,平板中硬件虚拟化服务的权限管理模块对教育APP进行APP鉴权。
示例性的,权限管理模块可以访问鉴权服务器,以通过鉴权服务器对教育APP进行鉴权,包括但不限于鉴权是否在相关平台上注册,是否适配了相关框架,是否申请了相关API权限。其中,权限管理模块可以通过鉴权服务来访问鉴权服务器,本实施例对此不做限定。
S305,平板中硬件虚拟化服务的权限管理模块在对教育APP鉴权成功时,向接口调度模块发送鉴权成功指示。
权限管理模块得到教育APP的鉴权结果之后,如果教育APP鉴权成功,则向接口调度模块发送鉴权成功指示,如果教育APP鉴权失败,则向硬件虚拟化API发送鉴权失败指示,以使硬件虚拟化API根据鉴权失败指示向教育APP返回APP无权限的指示信息。
S306,平板中硬件虚拟化服务的接口调度模块在确定教育APP鉴权成功时,向设备管理模块发送设备校验指令。
硬件虚拟化服务的接口调度模块接收到鉴权成功指示,确定教育APP鉴权成功之后,向设备管理模块发送设备校验指令。其中,设备校验指令用于对待联动的设备进行状态校验,在本实施例中具体用于对待联动的台灯进行状态校验。示例性的,设备校验指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S307,平板中硬件虚拟化服务的设备管理模块向设备管理服务的设备简介模块发送设备信息查询指令。
其中,设备管理服务的设备简介模块中存储有当前在线的设备信息。
硬件虚拟化服务的设备管理模块接收到设备校验指令之后,向设备管理服务的设备简介模块发送设备信息查询指令,设备信息查询指令中可以包括但不限于设备名称、设备标识、设备类型。
S308,平板中设备管理服务的设备简介模块向硬件虚拟化服务的设备管理模块返回设备信息。
设备管理服务的设备简介模块根据设备信息查询指令如果查询到相应的设备,则将设备信息返回给硬件虚拟化服务的设备管理模块。其中,返回的设备信息中可以包括但不限于设备名称、设备标识、设备类型和在线状态。
设备管理服务的设备简介模块根据设备信息查询指令如果未查询到相应的设备,则向硬件虚拟化服务的设备管理模块返回空值,以指示未查询到相应的设备。此时,硬件虚拟化服务的设备管理模块可以向硬件虚拟化API发送设备校验失败指示,以使硬件虚拟化API根据设备校验失败指示向教育APP返回设备校验失败的指示信息。
S309,平板中硬件虚拟化服务的设备管理模块接收到设备信息后,向硬件虚拟化API发送设备校验成功指示。
硬件虚拟化服务的设备管理模块如何接收到设备管理服务的设备简介模块返回的设备信息,则向硬件虚拟化API发送设备校验成功指示,以指示待联动的台灯校验成功。
S310,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备连接请求。
硬件虚拟化API在确认待联动的台灯校验成功之后,向硬件虚拟化服务的设备管理模块发送设备连接请求。其中,设备连接请求用于指示与待联动的设备建立网络连接,在本实施例具体用于指示与待联动的台灯建立网络连接。设备连接请求中可以包括但不限于请求类型、设备名称、设备标识、设备类型。
S311,硬件虚拟化服务的设备管理模块接收到设备连接请求后,执行协商通道建立准备操作,并向传输管理服务发送协商通道打开请求。
硬件虚拟化服务的设备管理模块接收到设备连接请求后,准备协商通道。其中,设备管理模块准备协商通道时,创建一个Session Server,并将会话服务的Session Name发送至传输管理服务中。在准备好协商通道之后,向传输管理服务发送协商通道打开请求。其中,协商通道打开请求用于指示建立协商通道,协商通道打开请求中可以包括但不限于对端设备标识(即台灯标识)以及的Session Name。
在本实施例中,协商通道打开请求是平板侧主动发起的,也即是平板需要与台灯建立连接。此时,台灯可以理解为服务端,平板可以理解为需要访问服务端的客户端。
S312,平板中传输管理服务与台灯中设备互联服务建立协商通道。
传输管理服务接收到协商通道打开请求之后,根据Session Name与台灯中设备互联服务交互以建立协商通道。其中,建立协商通道可以具体为创建会话,确定会话标识。
S313,台灯中设备互联服务向硬件抽象服务中的相机组件发送协商通道成功建立指示。
在协商通道建立完成之后,台灯中设备互联服务向硬件抽象服务中的相机组件发送协商通道成功建立指示,以指示协商通道建立完成以及当前存在需要建立连接的设备。其中,该协商通道成功建立指示中可以包括但不限于需要建立连接的设备信息(即平板设备信息)以及会话标识。
S314,平板中传输管理服务向硬件虚拟化服务的设备管理模块发送协商通道成功建立指示。
在协商通道建立完成之后,平板中传输管理服务向硬件虚拟化服务的设备管理模块发送协商通道成功建立指示,以指示协商通道建立完成以及当前存在需要建立连接的设备。其中,该协商通道成功建立指示中可以包括但不限于需要建立连接的设备信息(即台灯设备信息)以及会话标识。
本实施例对S313和S314的执行顺序不做限定。
S315,平板中硬件虚拟化服务的设备管理模块基于协商通道向台灯中硬件抽象服务的相机组件发送设备信息协商请求。
其中,设备协商请求中可以包括但不限于设备信息(如设备名称、设备标识、设备类型等)以及控制通道连接请求。
S316,台灯中硬件抽象服务的相机组件接收到设备协商请求之后,准备控制通道,并向平板中硬件虚拟化服务的设备管理模块返回设备协商信息。
台灯中硬件抽象服务的相机组件接收到设备协商请求之后,解析设备协商请求获取到对端的设备信息进行记录,并根据控制通道连接请求确定一个待监听的IP地址及端口,将IP地址及端口添加至设备协商信息中返回给平板中硬件虚拟化服务的设备管理模块。
需要指出的是,设备协商请求以及设备协商信息是基于建立的协商通道传输的。
S317,平板中硬件虚拟化服务的设备管理模块接收到返回的设备协商信息之后,关闭协商通道。
其中,关闭协商通道可以具体为关闭会话。当平板中硬件虚拟化服务的设备管理模块接收到返回的设备协商信息之后,此次会话结束,硬件虚拟化服务的设备管理模块可以根据会话标识关闭相应的会话。
S318,平板中硬件虚拟化服务的设备管理模块向传输管理服务发送控制通道打开请求。
控制通道打开请求,用于指示与台灯建立网络通信连接。其中,控制通道打开请求中可以包括但不限于通信协议、源IP、源端口、目的IP和目的端口,该目标IP和目的端口即为台灯中硬件抽象服务的相机组件监听的IP和端口。
S319,平板中传输管理服务连接台灯中硬件抽象服务的相机组件的控制通道,并向平板中硬件虚拟化服务的设备管理模块发送控制通道成功连接指示。
平板中传输管理服务接收到控制通道打开请求,根据控制通道打开请求携带的信息与台灯建立控制通道连接,也即建立平板和台灯的网络通信连接。进而,平板中硬件虚拟化服务的设备管理模块与台灯中硬件抽象服务的相机组件,可以基于该控制通道进行网络通信。
在控制通道建立成功之后,平板中传输管理服务向平板中硬件虚拟化服务的设备管理模块发送控制通道成功连接指示。其中,控制通道成功连接指示中可以包括但不限于连接成功标识以及控制通道相关信息。
S321,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送设备连接成功指示。
其中,设备连接成功指示中可以包括但不限于连接成功标识以及连接的设备信息。
S322,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备能力请求。
在接收到设备连接成功指示之后,硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备能力请求。其中,设备能力请求可以用于请求获取对端设备(即台灯)的虚拟化能力信息。示例性的,虚拟化设备能力信息包括但不限于是否支持虚拟化相机、是否支持虚拟化麦克风等。
S323,平板中硬件虚拟化服务的设备管理模块在控制通道中向台灯中硬件抽象服务的相机组件发送设备能力请求。
S324,台灯中硬件抽象服务的相机组件在控制通道中向平板中硬件虚拟化服务的设备管理模块返回设备能力信息。
在本实施例中,返回的台灯的设备能力信息至少可以包括支持虚拟化相机的能力以及台灯的摄像头标识。
S325,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送设备能力信息。
平板中硬件虚拟化服务的设备管理模块将接收到的设备能力信息发送至硬件虚拟化API,以使硬件虚拟化API获知台灯是否具有支持虚拟化相机的能力。
S326,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送虚拟相机使能请求。
平板中硬件虚拟化API获知到台灯具有支持虚拟化相机的能力,向硬件虚拟化服务的设备管理模块发送虚拟相机使能请求。其中,虚拟相机使能请求中可以包括但不限于请求类型和台灯的摄像头标识。
S327,平板中硬件虚拟化服务的设备管理模块在虚拟相机HAL中注册虚拟相机。
其中,硬件虚拟化服务的设备管理模块接收到虚拟相机使能请求后,向虚拟相机HAL发送虚拟相机注册请求。虚拟相机注册请求中可以包括但不限于请求类型和台灯的摄像头标识。虚拟相机HAL接收到虚拟相机注册请求之后,在虚拟相机HAL中给台灯的摄像头注册一个虚拟相机驱动,并给台灯的摄像头分配一个摄像头ID(即虚拟相机ID),将该摄像头ID注册到***中。由此,在虚拟相机HAL中建立了台灯摄像头与虚拟相机的映射关系。
S328,平板中硬件虚拟化服务的设备管理模块向台灯中硬件抽象服务的相机组件发送服务状态更新指示。
服务状态更新指示,用于指示台灯中硬件抽象服务的相机组件对其虚拟化服务状态进行更新。其中,虚拟化服务状态可以包括占用状态、未占用状态,或者称可以包括注册状态、未注册状态。示例性的,服务状态更新指示中可以包括但不限于对端设备(即台灯)的设备信息,硬件标识(如台灯摄像头标识),以及与硬件标识对应的虚拟化服务状态。
S329,台灯中硬件抽象服务的相机组件根据服务状态更新指示进行服务状态更新。
当服务状态更新指示中指示与台灯摄像头对应的虚拟化服务状态为占用状态(或称注册状态)时,相机组件将与其灯摄像头对应的虚拟化服务状态更新为占用状态(或称注册状态)。
S330,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送虚拟相机使能成功指示。
其中,虚拟相机使能成功指示中可以包括但不限于使能成功标识(或称虚拟化成功标识)、台灯的摄像头标识以及与虚拟相机对应的摄像头ID(或称与台灯摄像头对应的摄像头ID)。
本实施例对S328和S330的执行顺序不做限定。
S331,平板中硬件虚拟化API向教育APP发送虚拟相机使能成功指示。
3.虚拟相机预览访问阶段
S3.1,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令。
虚拟相机访问指令,指的是用于调用虚拟相机的指令。其中,虚拟相机访问指令中可以包括但不限于指令类型、虚拟相机ID和摄像头配置参数,配置参数包括但不限于摄像头分辨率和采集帧率。
S3.2,平板中相机服务根据虚拟相机访问指令向虚拟相机HAL发送图像预览请求。
相机服务接收到虚拟相机访问指令后,根据虚拟相机ID生成相应的图像预览请求发送至虚拟相机HAL。其中,该图像预览请求用于请求预览图像数据流。示例性的,该图像预览请求中可以包括但不限于请求标识、虚拟相机ID和摄像头配置参数等。
S3.3,平板中虚拟相机HAL向硬件虚拟化服务发送图像预览请求。
虚拟相机HAL接收到图像预览请求后,根据图像请求中携带的虚拟相机ID,确定匹配的虚拟化硬件标识。在本实施例中,虚拟相机HAL根据虚拟相机ID,以及虚拟相机ID与台灯摄像头的映射关系,确定联动的台灯摄像头,并根据确定的虚拟化硬件标识生成相应的图像请求发送至硬件虚拟化服务。示例性的,该图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
S3.4,平板中硬件虚拟化服务向传输管理服务发送图像预览请求。
硬件虚拟化服务将图像预览请求发送至传输管理服务。其中,图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
在平板中硬件虚拟化服务向传输管理服务发送图像预览请求时,如果发现未与台灯建立数据通道,则生成数据通道建立请求,发送至传输管理服务中。数据通道建立请求,用于指示与台灯之间传输数据。其中,数据通道建立请求中可以包括但不限于会话标识、连接信息、数据编解码模式等。
平板中传输管理服务接收到数据通道建立请求,根据数据通道建立请求携带的信息与台灯建立数据通道连接,也即在平板和台灯之间建立数据通道。进而,平板中传输管理服务和台灯中设备互联服务可以基于该数据通道传输各种数据,包括但不限于图像数据。
在数据通道建立成功之后,平板中传输管理服务向平板中硬件虚拟化服务发送数据通道成功连接指示,台灯中设备互联服务向硬件抽象服务中相机组件发送数据通道成功连接指示。其中,数据通道成功连接指示中可以包括但不限于连接成功标识以及数据通道相关信息。
S3.5,平板中传输管理服务向台灯的设备互联服务传输图像预览请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的设备互联服务传输图像预览请求。
S3.6,台灯中设备互联服务向相机驱动下发图像预览请求。
台灯中设备互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的图像预览请求发送至相机驱动。
S3.7,台灯中相机驱动驱动摄像头采集图像,并将预览图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动驱动摄像头开启,并驱动摄像头以图像预览请求中携带的摄像头配置参数采集图像,得到预览图像数据流,并将预览图像数据流通过硬件抽象服务发送至设备互联服务,以使设备互联服务在数据通道中向平板的硬件虚拟化服务中持续传输预览图像数据流。其中,关于预览图像数据流的分包组包及编解码流程,此处不再赘述。
S3.8,平板中硬件虚拟化服务将预览图像数据发送至虚拟相机HAL。
硬件虚拟化服务持续接收到预览图像数据流,将预览图像数据流发送至虚拟相机HAL。
S3.9,平板中虚拟相机HAL将预览图像数据发送至相机服务。
此时,虚拟相机HAL持续获取到台灯摄像头采集的预览图像数据,并将预览图像数据持续发送至相机服务。
S3.10,平板中相机服务将预览图像数据发送至教育APP。
S3.11,平板中教育APP显示预览图像。
教育APP通过相机服务接收到预览图像数据流之后,即可在相应的界面中显示预览图像。
4.虚拟相机拍照阶段
S4.1,响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。
用户操作例如可以是点击拍照选项的操作。响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。其中,拍照请求中可以包括但不限于拍摄图像序号、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。摄像头配置参数包括但不限于图像分辨率。
其中,拍照请求还可以携带任务标识,以保证多拍照任务的有序管理。
S4.2,平板中硬件虚拟化服务向传输管理服务发送拍照请求。
S4.3,平板中传输管理服务将向台灯的设备互联服务传输拍照请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的设备互联服务传输图像预览请求。
S4.4,台灯中设备互联服务向相机驱动下发拍照请求。
台灯中设备互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的拍照请求发送至相机驱动。
S4.5,台灯中相机驱动驱动摄像头拍摄图像,并将拍摄图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动驱动摄像头以拍照请求中携带的摄像头配置参数采集图像,得到拍摄图像数据,并将拍摄图像数据通过硬件抽象服务发送至设备互联服务,以使设备互联服务在数据通道中向平板的硬件虚拟化服务中持续传输拍摄图像数据。其中,关于拍摄图像数据的分包组包及编解码流程,此处不再赘述。
S4.6,平板中硬件虚拟化服务将拍摄图像数据发送至教育APP。
S4.7,平板中教育APP显示拍摄图像。
教育APP通过硬件虚拟化服务接收到拍摄图像图像之后,即可在相应的界面中显示拍摄图像。
在本实施例中,虚拟相机预览访问阶段基于安卓原生的相机框架实现,虚拟相机拍照阶段基于私有的虚拟化相机框架实现,使得虚拟相机拍照阶段涉及的处理路径更短,拍摄的时延更小。同时,由于图像预览还是基于安卓原生的相机框架实现,使得教育APP为了适配本实施例提供技术方案的改动更少。
需要注意的是,上述流程中的阶段划分仅为示例性的表达,本申请实施例对此不做限定。而且,执行虚拟相机预览访问阶段流程平板上显示预览图像之后,实时显示预览图像的流程与虚拟相机拍照阶段的流程作可以同时执行。在上述流程中未尽详细解释之处可以参照已有技术,在此不再赘述。
图4a中给出了协同工作***的通信架构,该通信架构用于完成平板对虚拟相机(即台灯摄像头)的管理,平板与台灯之间的控制命令交互,以及图像数据的回传及处理等。
需要指出的是,跨设备传输(即在平板和台灯之间传输)的指令、请求等,需要基于通信协议及参数序列等进行封装,本实施例对此不再赘述。平板中硬件虚拟化服务还可以对通过动态分配内存和动态销毁内存对预览图像流和拍摄图像的生命周期进行管理。
另外,需要指出的是,在执行本实施例提供的协同工作方法之前,教育APP需要与台灯进行绑定,并将台灯注册到云服务器中。
本申请实施例提供了一种安卓***设备使用外部设备的摄像头进行拍照的框架方案,此方案不仅可以应用在教育场景,同时适用于设置有摄像头的其他设备,这些设备可以共享其相机能力给手机、平板等安卓***设备,以实现安卓***设备与设这些设备的互联互通。
图5a-图5b示例性的示出了一种应用场景。如图5a中(1)所示,平板显示界面401,界面401上显示有多个应用程序图标,用户点击教育应用图标4011。响应于接收到的用户操作,平板开启教育应用,平板显示教育应用界面,可以参照图5a中(2)所示。如图5a中(2)所示,平板显示教育应用界面402,在界面402上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。以用户使用拍照功能能力,用户点击拍照功能选项4021,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图5b中(1)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图5b中(1)所示的界面。
如图5b中(1)所示,界面403中显示有图像预览窗口4031和拍照选项4032,在图像预览窗口4031中显示有台灯摄像头实时采集到的预览图像。此时,若用户点击拍照选项4032,响应于用户操作,平板执行虚拟相机拍照阶段的流程,显示例如图5b中(2)所示的界面。如图5b(2)所示的界面404,在图像预览窗口4041中显示台灯摄像头拍摄到的图像。此时,用户若点击确认选项4041,则平板响应于用户操作,将拍摄图像进行保存,并继续显示例如图5b中(1)所示的预览界面。用户若点击取消选项4042,则平板响应于用户操作,可以显示例如图5b中(1)所示的预览界面。
需要指出的是,如图5b(2)所示的界面仅仅为示例性的举例,台灯摄像头拍摄到的图像也可以不在图像预览窗口4041中显示,而是显示在界面的其他区域,图像预览窗口4041中继续显示台灯摄像头实时采集到的预览图像,本申请对此不做限定。
本实施例提供的协同工作方法,主要阐述一种基于平板设备和台灯设备组合实现在线教育功能的低成本技术方案。下述分别结合在线教育涉及的几个不同功能对本实施例提供的技术方案进行阐述。
场景一
参照图1a所示的应用场景示意图,本场景以查词功能为例进行技术方案阐述。学生遇到不认识的生词时,可以将手指指向生词下方,利用台灯摄像头拍摄图片,平板识别图像以确定生词内容,并在完成在线查词后通过显示屏向学生反馈生词含义,例如在界面显示并播报生词解释等。
如图6a所示为各模块的交互示意图。参照图6a,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S501,响应于用户点击查词功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,平板需要对预览图像进行精准识别,以确定用户指向的文字内容,因此本场景对预览图像的图像质量要求较高,例如可以将图像分辨率设置为1080P。这样,能够保证较高的查词成功率。
S502,平板中教育APP对预览图像进行手指识别。
示例性的,教育APP可以针对接收到的每帧预览图像进行手指识别,也可以定时对最新接收到的预览图像进行手指识别,本实施例对此不做限定。
示例性的,教育APP中可以集成图像识别算法以实现图像识别操作,教育APP也可以调用图像识别服务进行图像识别操作,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S503,响应于用户使用手指指词的操作,平板中教育APP在预览图像中识别到用户的手指。
当用户使用手指指向书本中的某个词汇时,台灯摄像头可以采集到手指指词的预览图像,进而平板中教育APP可以在预览图像中识别到用户的手指。
其中,教育APP对预览图像进行手指识别时,如果识别到手指,可以得到手指在预览图中的位置信息,例如坐标信息等。
S504,平板中教育APP根据手指在预览图像中位置确定ROI(region of interest,感兴趣区域)图像。
在教育APP在预览图像中识别到用户的手指之后,可以根据手指在预览图像的位置信息确定ROI图像。其中,教育APP可以根据手指在预览图像的坐标信息,确定ROI信息,ROI信息包括但不限于中心点坐标和区域范围(如宽高信息)。进而,教育APP可以根据ROI信息在预览图像中裁剪出ROI图像。
S505,平板中教育APP对ROI图像进行精准识别,确定待解释生词。
示例性的,教育APP中可以集成图像识别算法对ROI图像进行精准识别,教育APP也可以调用图像识别服务对ROI图像进行精准识别,以确定待解释生词,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S506,平板中教育APP对待解释生词进行查词操作,显示待解释生词的释义。
在确定待解释生词之后,教育APP可以进行在线查词操作,或者在数据库中进行查词操作,以得到待解释生词的释义。进而,教育APP可以将待解释生词的释义进行显示,以供用户查看。除此之外,教育APP可以将显示的生词释义进行朗读,本实施例对此不做限定。
类似的,用户也可以使用点读笔等指词工具(或称指示工具)进行指词操作,本实施例对此不做限定。相应的,教育APP对预览图像进行指词工具识别,以确定用户是否有查词意图,并根据指词工具在预览图像的位置信息确定ROI图像。
类似的,用户也可以使用手指或点读笔等指词工具指向书本中的图片。相应的,教育APP根据手指或点读笔等指词工具的位置信息确定ROI图像,并对ROI图像进行图片内容识别,显示与图片对应的释义,同时还可以将显示的图片释义进行朗读。关于此种情形,本实施例不再赘述。
图1a、图7a-图7b示例性的示出一种应用场景。如图7a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击查词功能选项7011,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图7a中(2)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图7a中(2)所示的界面。
如图7a中(2)所示,界面702中显示有图像预览窗口7021和查词功能操作示意图7022。其中,在图像预览窗口7021中显示有台灯摄像头实时采集到的预览图像。用户可以参照查词功能操作示意图7022执行指词或指图操作,以触发查词功能。教育APP根据预览图像进行指词或指图识别。继续参照图7a中(2),当用户在书本中使用手指指词时,台灯摄像头采集到手指指词预览图像,该手指指词预览图像显示于图像预览窗口7021。进而,教育APP可以在预览图像中识别到用户的手指,并确定手指在预览图中的位置信息,例如坐标信息等。教育APP根据手指在预览图像中位置确定ROI图像,并对ROI图像进行精准识别,确定待解释生词。待教育APP查询到生词释义后,在界面上显示相应的生词释义,可以参照图7b所示。
然而,在上述流程中,为了保证查词成功率,需要使用台灯摄像头持续返回高分辨率(例如1080p)的预览图像流,对带宽的要求也就比较高,需要4-8Mbps的带宽。这样,台灯对硬件芯片的要求也就更高,使得台灯的成本也会提升。
为了实现平板和台灯协同实现查词功能的方案,且降低台灯的硬件成本,本实施例还提供了一种技术方案。其中,由于在图像中进行手指识别或指词工具识别,以及位置识别对图像分辨率的要求不高,故在虚拟相机预览访问阶段,使用台灯摄像头持续返回低分辨率(例如480p)的预览图像流。如果教育APP基于预览图像识别到用户的指词或指图操作,则触发台灯拍摄一张高分辨率(例如1080p)的图像,以使教育APP根据这张高分辨率的图像进行精准识别确定待解释生词或图片。这样,使用台灯摄像头持续返回低分辨率的预览图像流,对带宽的要求不高,只需0.5-1Mbps的带宽,只有在传输这张高分辨率的图像时才需要更多的带宽。由此,本技术方案不仅降低了台灯对硬件芯片的要求,降低了台灯成本,也能保证查词成功率。
如图6b所示为各模块的交互示意图。参照图6b,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S601,响应于用户点击查词功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S602,平板中教育APP对预览图像进行手指识别。
S603,响应于用户使用手指指词的操作,平板中教育APP在预览图像中识别到用户的手指。
S604,平板中教育APP根据手指在预览图像中位置确定ROI信息,并根据ROI信息生成拍照请求。
其中,ROI信息指的是用于确定ROI的信息,可以包括但不限于中心点坐标和区域范围(如宽高信息)。
S605,平板将拍照请求传输至台灯侧。
其中,拍照请求可以包括但不限于与台灯摄像头对应的虚拟相机ID、台灯摄像头的第二配置参数以及ROI信息。第二配置参数包括但不限于第二图像分辨率,第二图像分辨率高于第一图像分辨率,如第二图像分辨率设置为1080P。这样,使得教育APP可以根据这张高分辨率的图像进行精准识别确定待解释生词或图片。
S606,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像,并将拍摄图像发送至硬件抽象服务。
S607,硬件抽象服务根据ROI信息确定ROI图像。
硬件抽象服务可以根据ROI信息在拍摄图像中裁剪出ROI图像。
在一种可选的实施方式中,拍照请求中包括但不限于第二配置参数,但不包括ROI信息。这样,平板将拍照请求传输至台灯侧,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像,并将拍摄图像返回至平板中教育APP。进而,教育APP可以根据ROI信息确定ROI图像,例如根据ROI信息在拍摄图像中裁剪出ROI图像。
S608,台灯将ROI图像传输至平板中教育APP。
相比较于台灯直接将高分辨率的拍摄图像返回至平板中教育APP,将裁剪后的ROI图像返回至平板中教育APP中,也能够减少数据传输量,降低带宽的占用。
S609,平板中教育APP对ROI图像进行精准识别,确定待解释生词。
S610,平板中教育APP对待解释生词进行查词操作,显示待解释生词的释义。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
类似的,用户也可以使用点读笔等指词工具进行指词操作,本实施例对此不做限定。相应的,教育APP对预览图像进行指词工具识别,以确定用户是否有查词意图,并根据指词工具在预览图像的位置信息确定ROI信息。
类似的,用户也可以使用手指或点读笔等指词工具指向书本中的图片。相应的,教育APP根据手指或点读笔等指词工具的位置信息确定ROI信息,并对ROI信息在拍摄图像中确定ROI图像,对ROI进行图片内容识别,显示与图片对应的释义,同时还可以将显示的图片释义进行朗读。关于此种情形,本实施例不再赘述。
关于此流程的应用场景,可以参照图1a、图7a-图7b所示的应用场景。参照图7a中(2),当用户在书本中使用手指指词时,台灯摄像头采集到手指指词预览图像,该手指指词预览图像显示于图像预览窗口7021。进而,教育APP可以在预览图像中识别到用户的手指,确定ROI信息,并根据ROI信息以及图像高分辨率生成拍照请求,触发台灯摄像头拍摄图像。台灯摄像头根据图像高分辨率拍摄图像,台灯侧并根据ROI信息对高分辨率拍摄图像进行裁剪得到ROI图像,将ROI图像返回至平板中教育APP。教育APP对ROI图像进行精准识别,确定待解释生词。待教育APP查询到生词释义后,在界面上显示相应的生词释义,可以参照图7b所示。
场景二
参照图1a所示的应用场景示意图,本场景以作业功能为例进行技术方案阐述。当学生需要在线提交作业时,可以在教育APP中点击拍照,利用台灯摄像头拍摄作业图像,并通过教育APP将作业图像上传至数据库。
如图8所示为各模块的交互示意图。参照图8,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S801,响应于用户点击作业功能的操作,平板中教育APP显示作业提交列表。
需要指出的是,作业提交列表指的是包括多个作业提交选项的列表,一个作业提交选项对应一门作业,可以参照图9a中界面704所示。其中,作业选项可以是按照学科划分的,也可以是按照时间划分的,本实施例对此不做限定。
如果教育APP的作业功能中只需针对一门作业提交作业图像,则教育APP不会显示作业提交列表。此时,响应于用户点击作业功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
S802,响应于用户点击提交作业选项,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S803,响应于用户点击拍照选项的操作,平板中教育APP生成拍照请求。
当用户将作业或书本等放置在台灯摄像头采集区域内时,用户则可以点击拍照选项触发台灯摄像头拍摄作业图像。
其中,拍照请求可以包括但不限于与台灯摄像头对应的虚拟相机ID、台灯摄像头的第二配置参数。第二配置参数包括但不限于第二图像分辨率,第二图像分辨率高于第一图像分辨率,如第二图像分辨率设置为1080P。这样,使得教育APP可以上传高分辨率的作业图像。
S804,平板将拍照请求传输至台灯侧。
S805,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像。
S806,台灯将拍摄图像传输至平板中教育APP。
S807,平板中教育APP显示拍摄图像。
平板中教育APP接收到台灯摄像头拍摄到的作业图像,将该作业图像进行显示。如果用户对拍摄的作业图像满意,则用户可以点击提交选项以将作业图像上传至数据库。如果用户对拍摄的作业图像不满意,则用户可以重新点击拍照选项以触发台灯摄像头重新拍摄作业图像。
S808,响应于用户点击提交选项的操作,平板中教育APP上传拍摄图像至数据库。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
需要指出的是,上述提及的作业图像仅仅是示例性的举例说明,用户可以点击拍照选项触发台灯摄像头拍摄其他图像。待台灯将拍摄到的图像发送至平板中教育APP中之后,教育APP则可以将接收到的拍摄图像上传至相应的数据库。
图1a、9a-图9c示例性的示出一种应用场景。如图9a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击查词功能选项7012,响应于用户操作,平板中教育APP显示作业提交列表,可以参照图9a中(2)所示。如图9a中(2)所示的作业提交列表界面704中,显示有多个提交作业选项(如提交作业1、提交作业2、提交作业3、提交作业4等),不同的作业提交选项对应于不同的作业。以用户需要针对提交作业4上传作业图像为例,用户点击提交作业4选项7042。响应于用户操作,平板可以显示如图9b中(1)所示的作业提交界面705。
继续参照9b中(1),在作业提交界面705中,显示有图像预览窗口7041、拍照选项7051和提交选项7052。其中,在图像预览窗口7041中显示有台灯摄像头实时采集到的预览图像。当用户将作业或书本等放置在台灯摄像头采集区域内时,用户则可以点击拍照选项7051触发台灯摄像头拍摄作业图像。响应于用户操作,教育APP生成拍照请求发送至台灯侧,以调用台灯摄像头拍摄作业图像。其中,台灯摄像头按照拍照请求中携带的图像高分辨率拍摄作业图像,并将拍摄得到作业图像返回至平板中教育APP,以通过教育APP进行显示,可以参照如图9b中(2)所示的界面706。
继续参照9b中(2),在界面706中显示有图像预览窗口7041、拍照选项7051、提交选项7052,以及台灯摄像头拍摄得到的作业图像7061。其中,在作业图像7061还显示有关闭选项7062。若用户对作业图像7061不满意,则可以点击关闭选项7062,界面上将不再显示作业图像7061。此时用户可以点击拍照选项7051触发台灯摄像头重新拍摄作业图像。若用户对作业图像7061满意,则可以点击提交选项7052。响应于用户操作,平板可以显示如图9c所示的待确认界面701。其中,在待确认界面701中显示有待提交的作业图像7061,以及是否确认提交窗口7071。如果用户点击确认提交窗口7071中的确认选项7072,则教育APP响应于用户操作,将作业图像7061上传至数据库。如果用户点击确认提交窗口7071中的取消选项7071,则教育APP响应于用户操作,可以显示如图9b中(1)所示的界面,以待用户点击拍照选项7051触发台灯摄像头重新拍摄作业图像。
需要指出的是,继续参照9b中(2),若用户对作业图像7061满意,则可以点击提交选项7052。响应于用户操作,教育APP也可以不再显示如图9c所示的界面,直接将作业图像7061上传至数据库。本实施例对此不做限定。
场景三
参照图1a所示的应用场景示意图,本场景以点读功能(或称指读功能)为例进行技术方案阐述。当学生需要教育APP朗读书本中内容时,可以利用台灯摄像头实时采集书本图像,进而教育APP可以根据书本图像加载相应的书本内容,并根据学生的手指位置或翻页操作确定待朗读的书本内容进行朗读。
如图10所示为各模块的交互示意图。参照图10,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S901,响应于用户点击点读功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S902,平板中教育APP对预览图像进行识别,确定图书名称。
示例性的,教育APP可以针对接收到的每帧预览图像进行图书信息识别,也可以定时对最新接收到的预览图像进行图书信息识别,本实施例对此不做限定。
示例性的,教育APP中可以集成图像识别算法以实现图像识别操作,教育APP也可以调用图像识别服务进行图像识别操作,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S903,平板中教育APP根据图书名称检索数据库,并加载与图书名称对应的图书内容。
平板中教育APP如果根据图书名称检索数据库,确定不同版本的图书,则可以显示相应的图书列表,以供用户选择。进而,响应于用户对某个版本的图书的选择操作,教育APP加载与该版本图书对应的内容
S904,响应于用户翻页或手指点读操作,平板中教育APP对预览图像进行识别,确定待朗读段落,并朗读相应的段落。
在加载完成图书内容之后,教育APP可以针对接收到的每帧预览图像进行手指或点读笔指令的指示工具的识别,也可以定时对最新接收到的预览图像进行手指或点读笔指令的指示工具的识别,本实施例对此不做限定。响应于用户的点读操作,教育APP可以根据预览图像识别到图书页码以及用户的点击位置信息,例如坐标信息等,进而可以根据图书页码以及用户的点击位置信息,在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
在加载完成图书内容之后,教育APP还可以根据预览图像流进行翻页识别。响应于用户的翻页操作,教育APP可以根据识别到图书页码在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
图1a、图11a-图11b示例性的示出一种应用场景。如图11a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击点读功能选项7013,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图11a中(2)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图11a中(2)所示的界面。
如图11a中(2)所示,界面708中显示有图像预览窗口7081。其中,在图像预览窗口7081中显示有台灯摄像头实时采集到的预览图像。教育APP对预览图像进行识别,以确定图书名称。教育APP在识别到图书名称之后,根据图书名称检索数据库。如果检索到相应的图书,则执行图书内容的加载操作,可以参照图11b中(1)所示。
继续参照图11b中(1)所示,界面709中显示有图像预览窗口7081、识别到的图书名称7091和图书内容加载进度标识7092。在图书内容加载完成之后,教育APP即可根据预览图像识别用户的点读操作或翻页操作。以用户执行翻页操作为例,参照如图11b中(2)所示的界面710,图像预览窗口7081中可以显示用户的翻页动作。响应于用户的操作,教育APP根据预览图像识别到图书页码。进而,教育APP可以根据识别到图书页码在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
在本申请实施例提供的协同工作方法中,使用家用平板和带摄像头台灯即可组合出的专业在线教育体验。利用台灯设备的摄像头配合平板的教育APP完成学生手指查词、作业提交、图书指读等需要拍照的场景。
基于上述硬件结构、软件结构的电子设备100(以平板为例),以及IOT设备200(以台灯为例),在相互配合应用于上文所说的各种学***板与台灯能够高效、快速的进行数据交互,如台灯将拍摄的照片数据快速传输给平板,在一些实现方式中,可以先在平板与台灯之间建立能够实现点对点传输的物理的传输通道,如P2P通道,后续在需要进行数据传输,如预览流、照片数据时,平板和台灯通过在P2P通道之上协商确定专门用于传输预览流、照片数据的逻辑通道,从而使得台灯能够高效、快速的将通过摄像头,如上文中的摄像头201采集到预览流、照片数据传输给平板进行处理。
具体到实际应用中,目前建立P2P通道的过程需要涉及媒体存取控制地址(MediaAccess Control Address,MAC地址)的扫描,这一过程就需要花费较多的时间。另外,在扫描到MAC地址之后,需要向扫描到的MAC地址对应的设备发送广播,接着发送广播的设备和接收到该广播的设备需要进行角色协商,如协商确定哪个设备作为热点创建方(即GO),哪个设备作为热点接入方(即GC),在协商确定双方的角色后,才能调用P2P网口发起P2P连接请求,这个过程耗时较长,并且需要用户介入。
此外,在调用P2P网口发起P2P连接请求,进入连接阶段,目前的标准流程中还需要用户手动输入热点信息或认证信息,最后认证成功后才能建立台灯与平板之间的P2P通道。
由此可见,目前建立P2P通道的过程,涉及的流程较多,操作繁琐,且存在冗余流程,而IOT设备通常为瘦设备(***资源、处理能力有限),因此目前建立P2P通道的方式受限于IOT设备的能力,建立过程缓慢,这对于资源较少的IOT设备来说,资源和时间消耗巨大。
有鉴于此,本申请提供了一种快速、高效的建立P2P通道的方法,该方法省略掉传统的P2P通道建立标准,在建立P2P通道时发起请求的电子设备直接指定自己的角色信息,而标识双方身份的标识符在认证阶段已经实现交换,因此接收到P2P通道建立请求报文的电子设备,直接根据认证阶段获得的标识符对P2P通道建立请求报文中携带的标识符进行认证,在认证通过后根据角色信息确定是创建热点,还是直接接入热点,最终根据热点信息,如密码和账号实现二者之间的连接,从而大大简化了建立P2P通道的流程,并且基于热点信息以无线接入点的方式建立二者之间的P2P通道,使得建立P2P通道的成功率大大提高。
参见图12,示例性示出了平板与台灯之间建立P2P通道时涉及的功能模块,以及各功能模块之间的交互示意图。
参见图12,示例性的,在建立平板与台灯之间的P2P通道时,用户可以通过位于应用程序层的教育应用提供的功能按钮触发建立P2P通道的请求。
相应地,平板响应于该操作行为,教育应用通过应用程序框架层中的多设备虚拟化服务平台框架访问同样位于应用程序框架层中的传输管理服务,以使传输管理服务根据重新定义的报文要求生成P2P通道建立请求报文,并向台灯中位于应用程序层的设备互连服务发送该P2P通道建立请求报文。
关于上述所说的多设备虚拟化服务平台框架,具体是用于将周边的设备或设备器件转换为平板的虚拟器件,能够将周边设备能力作为平板***通用能力来提供和使用,同时能够实现多虚拟设备能力同步协同使用。这样,通过在平板的应用程序框架层中基础多设备虚拟化服务平台框架,可以便捷使用外部的设备,包括但不限于摄像头、扬声器、显示器、麦克风、穿戴等外部设备能力以及相关器件的能力,并可以支持灵活的控制和切换,充分使用外部设备的资源优势,致力为消费者打造更佳的协同体验。故而,在本实施例中,教育应用通过多设备虚拟化服务平台框架提供的接口访问传输管理服务,就可以实现与台灯的通信。
此外,具体到本实施例中,上述所说的重新定义的报文要求规定报文中携带的数据格式为JSON格式(JavaScript Object Notation,JS对象简谱),即一种轻量级的数据交互格式。
此外,在本实施例中,基于重新定义的报文要求生成的P2P通道建立请求报文至少需要包括角色信息、标识发起该报文的设备的标识符,以及携带的信息类型、信息等。
进一步地,为了区分该报文是请求报文、响应报文,还是断开报文,还需要携带请求类型。
此外,为了使得该报文要求能够适用于桥接模式,还可以包括是否支持桥接模式的字段信息以及对应的类型。
此外,为了使得建立过P2P通道的两个设备后续再次发起建立P2P通道的请求时,能够获知之前分配的网际协议地址(Internet Protocol Address,IP地址),该报文要求还可以设置IP地址相关的字段信息。
基于上述要求,本实施例给出一种具体的报文要求,如表1所示。
表1报文要求表
命令类型 KEY_COMMAND_TYPE int
版本号 KEY_VERSION int
P2P MAC KEY_MAC string
IP地址 KEY_IP string
当前角色 KEY_ROLE int
期望的角色 KEY_EXPECTED_ROLE int
是否支持桥接模式 KEY_BRIDGE_SUPPORTED boolean
携带的信息类型 KEY_CONTENT_TYPE int
示例性的,表1中命令类型字段的内容具体是标识该报文是建立P2P通道的请求报文,还是针对建立P2P通道的请求报文作出的响应报文,还是断开P2P通道的请求报文。在本实施例中,约定“8”标识该报文是建立P2P通道的请求报文,“9”标识该报文是针对建立P2P通道的请求报文作出的响应报文,“5”标识该报文是断开P2P通道的请求报文,即使用约定的整型(int)的数字表示。
示例性的,表1中版本号的字段的内容同样为int类型,具体是根据发送报文的设备***版本号确定。
示例性的,表1中P2P MAC字段的内容具体是字符串(string)类型,用于标识发送报文的设备的标识符。
关于标识符的选取,对于MAC地址固定不变的使用场景,标识符可以为该设备的MAC地址;对于MAC地址不固定的使用场景,标识符可以为基本服务群标识(Basic ServiceSet ID,BSSID)。
示例性的,表1中IP地址字段的内容具体是字符串(string)类型,用于标识发送报文的IP。在本实施例中,对于接入热点的一方,IP地址具体是根据创建热点的一方创建的热点的热点信息接入其热点,建立P2P通道后,由创建热点的一方分配的。故而,在发起建立P2P通道的请求报文时,如果发起方的角色是GC,并且该GC此前并未接入过接收请求报文的GO创建的热点,这种场景下该字段对应的内容可以为空,也可以不携带该字段。
示例性的,表1中当前角色字段和期望的角色字段即上述所说的角色信息,类型均为int类型。其中,当前角色字段对应的内容具体是根据设备实时状态填写的,例如在当前被确定为GO时,则填写GO,其他则填写NONE;期望的角色字段对应的内容用于标识建立P2P通道时,该设备期望作为GO还是GC,如果根据产品特性确定为GO,则填写GO,为GC则填写GC,其他则可以采用默认的内容ROLE_AUTO表示。
示例性的,表1中是否支持桥接模式字段的内容具体为布尔型(boolean),例如可以约定“1”表示支持桥接模式,“0”表示不支持敲击模式。其中,当报文中携带的了该字段,并且对应的内容为“1”时,表示一个GO可以通过另一个已经与GC连接的GO实现与GC的连接。
可理解的,在一些实现方式中,如果不考虑桥接模式,该字段的内容可以为空,或者直接不携带该字段。
示例性的,表1中携带的信息类型字段具体为int类型,该字段的内容即为上文所说的角色的认证信息。其中,在角色为GO时,该字段中需要携带“GO”标记,同时携带该设备创建的热点的热点信息;在角色为GC时,该字段中需要携带“GC”标记,同时携带该设备的PIN码。
应当理解的是,表1仅是为了更好的理解本实施例的技术方案而列举的示例,在实际应用中,每个自动对应的名称,如命令类型对应的“KEY_COMMAND_TYPE”、版本号对应的“KEY_VERSION”可以根据实际需求进行命名,另外每个字段对应的类型(int、string、boolean)也可以根据实际需要进行调整,本实施例对此不作限制。
继续参见图12,示例性的,台灯中位于应用程序层的设备互连服务在接收到平板中位于应用程序框架层的传输管理服务发送的P2P通道建立请求报文后,根据上述所说的重新定义的报文生成要求,对P2P通道建立请求报文进行解析,进而确定是创建热点,还是接入热点。
相应地,如果确定创建热点,设备互连服务创建热点,根据上述所说的重新定义的报文生成要求和生成的热点的热点信息组装生成P2P通道建立响应报文,并向平板中位于应用程序框架层的传输管理服务发送P2P通道建立响应报文,以使传输管理服务根据P2P通道建立响应报文中的热点信息,建立与台灯之间的P2P通道。
反之,如果确定接入热点,设备互连服务就会根据P2P通道建立请求报文中携带的热点信息,建立与平板之间的P2P通道。
也就是说,基于本实施例提供的建立P2P通道的方法,在建立台灯与平板之间的P2P通道时,不论是台灯,还是平板,只需一侧发起P2P通道建立请求报文,另一侧作出P2P通道建立响应报文即可,整个P2P通道的建立过程无需进行MAC地址的扫描、广播的发送、角色的协商等,也不需要用户输入认证信息、热点信息等,大大简化P2P通道的建立流程,基于这种方式能够有效降低对台灯等瘦设备资源和时间的消耗,从而达到快速、高效的建立台灯和平板之间的P2P通道。
继续参见图12,示例性的,如果用户想要断开台灯与平板之间的P2P通道,在一些实现方式中,用户可以通过平板中位于应用程序层的教育应用提供的功能按钮触发断开P2P通道的请求。
相应地,平板响应于该操作行为,教育应用通过应用程序框架层中的多设备虚拟化服务平台框架访问同样位于应用程序框架层中的传输管理服务,以使传输管理服务根据重新定义的报文要求生成P2P通道断开通知报文,并向台灯中位于应用程序层的设备互连服务发送该P2P通道断开通知报文。
继续参见图12,示例性的,台灯中位于应用程序层的设备互连服务在接收到平板中位于应用程序框架层的传输管理服务发送的P2P通道断开通知报文后,根据上述所说的重新定义的报文生成要求,对P2P通道断开通知报文进行解析,进而断开与该标识符标识的平板之间的P2P通道。
此外,还需要说明的是,在另一些实现方式中,如果用户想要断开台灯与平板之间的P2P通道,也可以直接将教育应用的进程杀死,这样就会自动触发上述断开P2P通道的流程。
此外,可理解的,在一些实现方式中,关于触发建立P2P通道的请求的功能按钮和断开P2P通道的请求的功能按钮可以是同一个,也可以是不同的。
此外,在另一些实现方式中,不论是触发建立P2P通道的请求,还是断开P2P通道的请求,还可以通过特定的敲击次数、敲击位置、手势动作、语音指令、机械按键等触发,本实施例对此不作限定。
为了更好的说明基于本实施例提供的建立P2P通道方法,建立台灯与平板之间P2P通道的实现细节,以下结合附图进行说明。
需要说明的是,根据上文给出的重新定义的报文要求可知,在具体实现中,发起P2P通道建立请求报文的一方,根据自身的产品特性,可以作为创建热点的一方(GO),也可以作为接入热点的一方(GC)。其中,当作为创建热点的一方时,P2P通道建立请求报文中携带的角色对应的认证信息,即携带的信息类型和具体的内容为热点信息,如创建的热点的账号和密码;当作为接入热点的一方时,P2P通道建立请求报文中携带的角色对应的认证信息例如为PIN码。
参见图13,以平板作为GC,向台灯发送P2P通道建立请求报文(建立P2P通道的请求报文),台灯作为GO向平板发送P2P通道建立响应报文(针对建立P2P通道的请求报文作出的响应报文)为例,本实施例提供的建立P2P通道方法,具体包括:
S1001,平板生成包括标识符A、角色信息A、角色对应的认证信息A(PIN码)的P2P通道建立请求报文。
可理解的,在实际应用中,根据产品的ID可以确定产品的特性,即根据ID就可以获知产品通常应用于的使用场景,以及该场景中的角色。因此根据产品的ID和上文的报文要求,就可以组装生成符合要求的P2P通道建立请求报文,进而将生成的P2P通道建立请求报文发送给已经在认证阶段交换标识号的台灯。
S1002,台灯根据认证阶段获得的平板的标识符对P2P通道建立请求报文中包括的标识符A进行校验。
具体的,台灯在接收到平板发送的P2P通道建立请求报文后,根据上文的报文要求对P2P通道建立请求报文进行解析,进而根据认证阶段获得的平板的标识符对P2P通道建立请求报文中携带的标识符A进行校验。
可理解的,为了保证验证结果的有效性,认证阶段交换的标识符和P2P通道建立请求报文中携带的标识符A的来源应该一直,即如果认证阶段的交换的标识符为BSSID,则P2P通道建立请求报文中携带的标识符也应该是BSSID,如果是MAC地址,则P2P通道建立请求报文中携带的标识符也应该是MAC地址。否则,会走验证失败的流程,如台灯不作任何响应,平板侧等待请求超过设定的超时时间后,自动在用户界面进行提示,或者重新发送一次P2P通道建立请求报文。
S1003,在校验成功,且角色信息A指示平板是接入热点的一方时,台灯创建热点。
此外,需要说明的是,在实际应用中,台灯还可以根据P2P通道建立请求报文中携带的认证信息,如PIN码对平板进行验证,在验证通过后,才创建热点,进一步保证与之建立P2P通道的平板为合法的授权设备。关于PIN码验证流程,可以参见现有标准,此处不再赘述。
S1004,台灯生成包括标识符B和创建的热点的热点信息的P2P通道建立响应报文。
同理,台灯的标识符B的来源也应该与认证阶段发送给平板的标识符一致,即如果认证阶段的交换的标识符为BSSID,则P2P通道建立请求报文中携带的标识符也应该是BSSID,如果是MAC地址,则P2P通道建立请求报文中携带的标识符也应该是MAC地址。
此外,可以理解的,为保证后续建立的P2P通道的安全性,台灯创建的热点可以设置对应的连接密码,固定P2P通道建立响应报文中的热点信息例如可以包括创建的热点的账号,以及连接该热点的密码。
S1005,平板根据认证阶段获得的台灯的标识符对P2P通道建立响应报文中包括的所标识符B进行校验。
具体的,平板接收到台灯发送的P2P通道建立响应报文后,根据上文的报文要求对P2P通道建立响应报文进行解析,进而根据认证阶段获得的台灯的标识符对P2P通道建立响应报文中携带的标识符B进行校验。
相应地,在验证成功时,则执行步骤S1006;反之,则走验证失败的流程。关于验证识别的流程与台灯侧的类似,此处不再赘述。
S1006,在验证成功时,平板根据P2P通道建立响应报文中包括的热点信息,建立与台灯之间的P2P通道。
即,自动根据热点的账号和密码,采用AP的方式连接到台灯创建的热点,进而实现二者之间P2P通道的建立。
相应地,在建立好P2P通道后,平板在与台灯进行数据交互时,就可以在该P2P通道中协商确定传输不同数据,如预览流、照片数据的逻辑通道,进而使得台灯侧提供的预览流、照片数据能够在P2P通道的基础上快速、高效的传输到平板侧。
参见图14,以平板作为GO,向台灯发送P2P通道建立请求报文(建立P2P通道的请求报文),台灯作为GC向平板发送P2P通道建立响应报文(针对建立P2P通道的请求报文作出的响应报文)为例,本实施例提供的建立P2P通道方法,具体包括:
S1101,平板创建热点。
可理解的,当平板的角色为GO时,向台灯发送的P2P通道建立请求报文中携带的认证信息具体为平板创建的热点的热点信息,如账号和密码。因此,平板需要先创建热点,得到该热点的热点信息,才可以执行步骤S1102。
S1102,平板生成包括标识符A、角色信息A、角色对应的认证信息A(热点信息)的P2P通道建立请求报文。
在本实施例中,平板生成P2P通道建立请求报文的方式与上文中平板作为GC时生成P2P通道建立请求报文的方式相同,本实施例中携带的认证信息具体为热点信息而非PIN码。具体的实现逻辑可以参见上文,此处不再赘述。
S1103,台灯根据认证阶段获得的平板的标识符对P2P通道建立请求报文中包括的标识符A进行校验。
不难发现本实施例中的步骤S1103与上述实施例中步骤S1002大致相同,具体的实现细节此处不再赘述。
S1104,在验证成功,且角色信息A指示平板为热点提供方时,台灯根据P2P通道建立请求报文中包括的热点信息,建立与平板之间的P2P通道。
可理解的,由于P2P通道建立请求报文中已经携带了热点信息,因此智慧平台无需再次创建热点,直接根据P2P通道建立请求报文中携带的热点信息,如账号和密码,接入平板创建的热点即可,这样就可以建立与平板之间的P2P通道。
此外,需要说明的是,在发送P2P通道建立请求报文的平板是创建热点的一方,因为平板还没有对台灯进行验证,因此即便台灯根据P2P通道建立请求报文中的热点信息接入平板创建的热点后,二者之间的P2P通道实际还没有正在的打开,即还不能进行数据的传输使用。故而,台灯还需要向平板发送携带了自身相关信息的P2P通道建立响应报文,即执行步骤S1105。
S1105,台灯生成包括标识符B、角色信息B、角色对应的认证信息B(PIN码)的P2P通道建立响应报文。
可理解的,步骤S1105中台灯生成P2P通道建立响应报文的方式,与上文中步骤S1001中平板生成P2P通道建立请求报文的方式类似,此处不再赘述。不同之处在于各个字段中数据的来源不同,一个是来自平板,一个是来自台灯,另外携带的命令类型步骤S1001中为报文要求中指定的“8”,步骤S1105中为报文要求中指定的“9”。
S1106,平板根据认证阶段获得的台灯的标识符对P2P通道建立响应报文中包括的所标识符B进行校验,确定验证成功。
不难发现本实施例中的步骤S1104与上述实施例中步骤S1005大致相同,具体的实现细节此处不再赘述。
相应地,在验证通过后,平板与台灯之间的P2P通道才正在可用。
此外,需要说明的是,考虑到实际应用中,可能存在一个平板(作为GO)接入多个台灯创建的热点,平板分别与每一个台灯建立P2P通道;也可能存在多个平板接入同一个台灯(作为GO),台灯分别与每一个平板建立P2P通道。因此,作为创建热点的一方(GO)还可以将与之建立P2P通道的每一个GC当前对应的IP地址和标识该GC的标识符建立对应关系,并添加到IP地址/标识符管理表中进行管理。
可理解的,关于每一个GC对应的IP,具体是由GO为其分配的。由于每一个GC的标识符是唯一且固定的,因此通过将每一个GC当前对应的IP地址和标识该GC的标识符建立对应关系,并根据该对应关系将GC当前对应的IP地址和标识该GC的标识符添加到IP地址/标识符管理表,从而可以清楚、明了的获知GO当前与那些GC建立了P2P通道。这样不仅便于管理,后续进行预览流、照片数据的传送时,也可以根据IP地址/标识符管理表中记录的内容,将不同的数据发送到不同的GC。
进一步地,在得到该IP地址/标识符管理表后,GO还可以实时获取已经建立的P2P通道的状态信息,并将获取到的状态信息添加到IP地址/标识符管理表中,与该P2P通道的GC的标识符和IP地址建立对应关系。
可理解的,本实施例中,P2P通道的状态信息具体是用于指示该P2P通道时打开状态,即可以进行数据传输的状态,还是断开状态,即无法进行数据传输的状态。
这样,通过实时获取已经建立成功的P2P通道的状态信息,并将状态信息更新到IP地址/标识符管理表中对应的标识符和IP地址处,作为对该标识符和IP地址对应的P2P通道的标定,从而可以根据状态信息便于后续后续管理,如数据的传输、P2P通道的断开等。
通过上述两种场景的描述可知,不论是平板是GO,还是GC,基于本申请提供的建立P2P通道的方法,平板与台灯之间进行两次报文交互,一次时P2P通道建立请求报文,一次时P2P通道建立响应报文,这样就可以实现P2P通道的建立,与目前的P2P通道建立流程相比,大大简化了P2P通道的建立流程,这样不仅能够降低对IOT设备资源和时间的消耗,还可以更加快速、高效的建立IOT设备和电子设备之间的P2P通道。
此外,需要说明的是,在台灯和平板之间建立P2P通道后,基于上文中所说的报文要求,也可以实现P2P通道的断开。
参见图15,本实施例提供的断开P2P通道方法,具体包括:
S1201,平板生成包括标识符A的P2P通道断开通知报文。
具体的,2P通道断开通知报文同样要基于上文的报文要求。
另外,在本实施例中,触发平板生成2P通道断开通知报文的条件,例如可以是用户点击了位于应用程序层中教育应用中的某一控件,也可以是通过特定手势,或者语音,或者敲击了平板的任意位置或特定位置后,平板响应于该操作行为,通过应用程序框架层中的多设备虚拟化服务平台框架访问传输管理服务按照上文的报文要求生成2P通道断开通知报文。
此外,触发平板生成2P通道断开通知报文的条件,还可以是在教育应用的进程被杀掉时触发上述流程。
S1202,台灯根据认证阶段获得的平板的标识符对P2P通道断开通知报文中包括的标识符A进行校验。
关于步骤S1202中的验证操作,与上文中步骤S1002、步骤S1103相同,此处不再赘述。
S1203,在验证成功时,台灯断开与平板之间的P2P通道。
这样,根据P2P通道断开通知报文中携带的标识符,就可以快速确定需要断开与哪一第二电子设备之间的P2P通道。
另外,可以理解的是,在实际应用中,P2P通道断开通知报文也可以由台灯发出,具体可以是在用户关闭台灯时,如按下开关键后,触发上述流程。
此外,需要说明的是,为了保证上文中IP地址/标识符管理表中记录的内容的有效性,在每次监听到P2P通道的状态发生变化时,都可以对IP地址/标识符管理表中该P2P通道的对应的状态信息进行修改。比如,根据上述断开P2P通道的方法断开台灯与平板之间的P2P通道时,可以将该P2P通道对应的平板的标识符对应的状态信息修改为断开。这样,在P2P通道断开时,先修改对应的状态信息,而不是直接删除,从而可以在断开的P2P通道立马重新连接时无需重新分配IP地址,并建立对应关系,能够更好的适用于因为网络原因或其他异常大致P2P通道瞬时断开后立马重连的场景。
相应地,在另一些实现场景中,在P2P通道断开时,也可以直接将IP地址/标识符管理表中该P2P通道对应的平板的标识符,与该标识符存在对应关系的IP地址、状态信息直接删除。这样,可以减少IP地址/标识符管理表中的冗余信息,减少对设备资源、空间的占用。
此外,通过上文的描述可知,在建立P2P通道之前,平板与台灯已经完成了认证阶段,并且在认证阶段进行了标识符的交互。为了更好的理解认证阶段交换各自的标识符的过程,以台灯和平板交互的标识符为固定且不变的BSSID为例,结合图16进行具体说明。
参见图16,认证阶段具体包括:
S1301,平板侧的传输管理服务获取本端的BSSID(BSSID_1)。
S1302,平板的传输管理服务基于COAP协议向台灯发送BSSID_1。
S1303,台灯侧的设备互连服务存储平板的BSSID_1。
S1304,台灯侧的设备互连服务获取本端的BSSID(BSSID_2)。
S1305,台灯侧的设备互连服务基于COAP协议向平板发送BSSID_2。
S1306,平板侧的传输管理服务存储台灯的BSSID_2。
可理解的,在实际应用中,也可以是台灯先向平板发送自己的BSSID_2。即,平板和台灯交换标识符的过程不区分先后顺序。
也就是说,在认证阶段,平板侧的传输管理服务会获取能够标识自身唯一性的BSSID_1,同样台灯侧的设备互连服务也会获取能够标识自身唯一性的BSSID_2。然后双方会基于COAP协议将各自的标识符分装为报文发送给对方,并将对方发送的标识符进行存储,以便后续建立P2P通道,以及断开P2P通道时,基于标识符进行身份验证。
此外,关于认证阶段中平板和台灯能够基于COAP协议传输封装了各自标识符的报文的实现前提,需要由进行认证的两个设备中通过软件启动一个没有密码的softap,进而通过接入同一个softap实现上述报文的交互。
示例性的,在本实施例中,可以由台灯作为启动softap的一方,例如在台灯首次开启后,自动启动一个softap,这样附近的平板就能搜索到该softap,进而接入该softap,从而使得平板和台灯处于同一局域网中。在完成上述操作后,平板和台灯就可以基于COAP协议封装携带了各自标识符,如BSSID的报文,进而发送给对方,即实现上述步骤S1301至步骤S1306的操作。
此外,可以理解的,在实际应用中,认证阶段中除了进行标识符的交换,还可以根据PIN码进行身份认证。关于对PIN码的认证可以参见现有标准,此处不再赘述。
这样,在台灯与平板首次进行绑定时,就完成认证实现标识符的交换。后续在需要使用台灯和平板相互配合,应用到学习场景时,直接按照本申请提供的建立P2P通道的方法进行P2P通道的建立即可,无需再次进行MAC地址扫描、发送广播,以及PIN码认证,从而减少了冗余操作。
参见图17,建立P2P通道阶段,具体包括:
S1401,平板侧的多设备虚拟化服务平台框架接收到用户对用于打开台灯上摄像头的控件的操作。
可理解的,在实际应用中,用户对用于打开台灯上摄像头的控件的操作例如可以操作了教育应用提供的界面中的某一控件,也可以是用户通过语音命令触发了该操作,还可以是用户通过特定手势、敲击屏幕的次数、位置等触发了该操作。但是不论哪种触发方式,位于应用程序框架层中,为教育应用提供接口调用功能的多设备虚拟化服务平台框架都会作出响应,即向平板侧的传输管理服务发送P2P连接请求。
S1402,平板侧的传输管理服务根据平板的标识符、平板ID组装报文。
具体的,平板侧的传输管理服务接收到多设备虚拟化服务平台框架发送的P2P连接请求后,会根据自己的ID确定产品特性,进而确定平板的角色信息(当前角色和期望的角色),接着就可以根据自己的标识符和确定的角色信息,以及其他参数,按照上文的报文要求组装成P2P通道建立请求报文。
以学***板、手机控制,即台灯是一对多的情况,对于这种场景,台灯通常是作为GO角色,而平板则作为GC角色。因此,基于各自的IP确定产品特性,根据当前的场景就可以确定各自的角色,从而可以省略掉现有P2P通道建立流程中的角色协商步骤,简化了P2P通道的整体建立流程。
为了便于理解,本实施例示例性的示出了一种P2P通道建立请求报文,具体如下:{KEY_COMMAND_TYPE:8,KEYVERSION:1.0.0,KEY_MAC:0a:94:ef:be:6c:a9,KEY_ROLE:NONE,KEY_EXPECT_ROLE:GC,KEY_CONTENT_TYPE:GC,"GC认证信息"}。根据该P2P通道建立请求报文,以及上文中对表1各个参数的说明可知,平板发送的该报文的命令类型为建立P2P通道的请求报文,当前版本号为“1.0.0”,平板的标识符为“0a:94:ef:be:6c:a9”,平板当前角色为“NONE”,即不是GO,平板期望的角色为“GC”,即作为接入热点的一方,该请求报文中携带的认证信息的类型为“GC”,具体的认证信息即为GC认证信息,如PIN码。
示例性的,在一些实现方式中,平板侧的传输管理服务生成上述P2P通道建立请求报文后可以基于COAP协议发送给台灯侧的设备互连服务。
示例性的,在另一些实现方式中,平板侧的传输管理服务生成上述P2P通道建立请求报文后还可以基于消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)发送给台灯侧的设备互连服务。
示例性的,在另一些实现方式中,平板侧的传输管理服务生成上述P2P通道建立请求报文后还可以基于低功耗蓝牙所遵循的协议蓝牙低能耗协议(Bluetooth Low Energy,BLE)发送给台灯侧的设备互连服务。
关于基于上述几种协议进行数据交互的具体实现细节,可以参见对应的协议标识,此处不再赘述。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,需要说明的是,本实施例是以平板为GC为例进行说明的,若平板为GO,则需要创建热点,生成的P2P通道建立请求报文中需要将角色信息确定为GO,同时将认证信息的类型设置为GO,并携带热点的热点信息。
S1403,在平板为接入热点的一方时,台灯侧的设备互连服务创建热点。
由于本实施例是以平板侧为GC角色为例进行的说明,因此台灯侧的设备互连服务接收到上述给出的P2P通道建立请求报文{KEY_COMMAND_TYPE:8,KEYVERSION:1.0.0,KEY_MAC:0a:94:ef:be:6c:a9,KEY_ROLE:NONE,KEY_EXPECT_ROLE:GC,KEY_CONTENT_TYPE:GC,"GC认证信息"}后,根据报文要求进行解析,提取出该报文中“KEY_MAC”字段对应的内容“0a:94:ef:be:6c:a9”,即标识平板的标识符。进而根据认证阶段存储的平板的标识符对提取出的“0a:94:ef:be:6c:a9”进行校验。
相应地,在校验成功后,台灯侧的设备互连服务创建热点,进的得到该热点的相关信息,即账号、密码等热点信息。
S1404,台灯侧的设备互连服务根据台灯的标识符、热点信息组装报文。
示例性的,在一些实现方式中,台灯侧的设备互连服务组装的P2P通道建立响应报文中还可以包括台灯的角色信息。
可理解的,由于大屏设备、台灯、摄像头等IOT设备目前智能做为GO角色,因此P2P通道建立响应报文中携带的角色信息具体为GO。
此外,为了使得接收到该报文的平板或者该报文是针对其发送的P2P通道建立请求报文作出的响应报文,P2P通道建立响应报文中还需要携带命令类型,具体为“9”。
为了便于理解,本实施例示例性的示出了一种P2P通道建立响应报文,具体如下:{KEY_COMMAND_TYPE:9,KEYVERSION:1.0.0,KEY_MAC:0a:94:ef:be:6c:7e,KEY_ROLE:GO,KEY_EXPECT_ROLE:GO,KEY_CONTENT_TYPE:GO,"GO热点信息"}。根据该P2P通道建立响应报文,以及上文中对表1各个参数的说明可知,台灯发送的该报文的命令类型为针对建立P2P通道请求报文作出的响应报文,当前版本号为“1.0.0”,台灯的标识符为“0a:94:ef:be:6c:7e”,台灯当前角色为“GO”,台灯期望的角色为“GO”,即作为创建热点的一方,该响应报文中携带的认证信息的类型为“GO”,具体的认证信息即为热点信息,如该热点的账号和密码。
示例性的,在一些实现方式中,台灯侧的设备互连服务生成上述P2P通道建立响应报文后可以基于COAP协议发送给平板侧的传输管理服务。
示例性的,在另一些实现方式中,台灯侧的设备互连服务生成上述P2P通道建立响应报文后还可以基于消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)发送给平板侧的传输管理服务。
示例性的,在另一些实现方式中,台灯侧的设备互连服务生成上述P2P通道建立响应报文后还可以基于低功耗蓝牙所遵循的协议蓝牙低能耗协议(Bluetooth Low Energy,BLE)发送给平板侧的传输管理服务。
关于基于上述几种协议进行数据交互的具体实现细节,可以参见对应的协议标识,此处不再赘述。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
相应地,在得到P2P通道建立响应报文后,台灯侧的设备互连服务还可以通过预先注册的专门用监测P2P通道的回调接口,将为平板分配的IP地址,以及该平板的标识符回调给DVSDK。这样DVSDK就可以根据IP地址与标识符之间的对应关系,将IP地址和标识符添加到IP地址/标识符管理表中。后续还可以将实时获取到的P2P通的状态信息,添加到IP地址/标识符管理表中,以更好的管理每一条P2P通道。
S1405,平板侧的传输管理服务根据热点信息,与台灯建立P2P通道。
可理解的,根据上述实施例的说明可知,平板侧的传输管理服务在接收到台灯侧的设备互连服务发送的P2P通道建立响应报文后,需要对P2P通道建立响应报文进行解析,进而根据P2P通道建立响应报文中的标识符进行校验。
相应地,在校验成功后,才会根据热点信息,以AP直连的方式接入台灯创建的热点,从而实现与台灯建立P2P通道。由此可见,本申请提供的建立P2P通道的方法,在得到对端设备的热点信息后,以AP直连的方式,而不是传统的扫描P2P网口的方式建立二者之间的P2P通道,连接时间更短,成功率更高。
关于基于本申请提供的建立P2P通道的方法建立P2P通道的过程就介绍到此,应当理解的是,上述说明中所例举的P2P通道建立请求报文中携带的内容,以及P2P通道建立响应报文中携带的内容仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
参见图18,断开P2P通道阶段,具体包括:
S1501,平板侧的多设备虚拟化服务平台框架接收到用户对用于关闭台灯上摄像头的控件的操作。
可理解的,在实际应用中,用户对用于关闭台灯上摄像头的控件的操作例如可以操作了教育应用提供的界面中的某一控件,也可以是用户通过语音命令触发了该操作,还可以是用户通过特定手势、敲击屏幕的次数、位置等触发了该操作。但是不论哪种触发方式,位于应用程序框架层中,为点对应用提供接口调用功能的多设备虚拟化服务平台框架都会作出响应,即向平板侧的传输管理服务发送P2P断开请求。
S1502,平板侧的传输管理服务根据平板的标识符组装报文。
可理解的,在断开P2P通道时,不论是GO角色还是GC角色,都是执行相同的断开流程,因此平板侧的传输管理服务生成的P2P通道断开通知报文中不需要包括角色信息,以及角色对应的认证信息。
为了便于理解,本实施例示例性的示出了一种P2P通道断开通知报文,具体如下:{KEY_COMMAND_TYPE:5,KEYVERSION:1.0.0,KEY_MAC:0a:94:ef:be:6c:a9}。根据该P2P通道断开通知报文,以及上文中对表1各个参数的说明可知,平板发送的该报文的命令类型为断开P2P通道的请求报文,当前版本号为“1.0.0”,平板的标识符为“0a:94:ef:be:6c:a9”。
示例性的,在一些实现方式中,平板侧的传输管理服务生成上述P2P通道断开通知报文后,同样可以基于COAP协议、MQTT协议、BLE协议中的任意一种发送给台灯侧的设备互连服务。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
S1503,台灯侧的设备互连服务清除P2P相关信息,关断P2P通道。
具体的,台灯侧的设备互连服务接收到平板侧的传输管理服务发送的P2P通道断开通知报文后,解析出携带的标识符,通过对标识符进行校验,进而确定发送该P2P通道断开通知报文的平板是否为合法设备。
相应地,在校验成功后,台灯侧的设备互连服务就可以清除与该平板建立的P2P通道的相关信息,并关断P2P通道。这样,P2P通道就会断开。
进一步地,台灯侧的设备互连服务还可以通过回调接口通知DVSDK将IP地址/标识符管理表中该P2P通道的相关信息,如为平板分配的IP地址、平板的标识符、状态信息等全部删除。
关于断开P2P通道的过程就介绍到此,应当理解的是,上述说明中所例举的P2P通道断开通知报文中携带的内容仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,可以理解的是,电子设备(上文所说的第一电子设备、第二电子设备)为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
此外,需要说明的是,在实际的应用场景中由第一电子设备、第二电子设备实现的上述各实施例提供的方法,也可以由第一电子设备、第二电子设备中包括的一种芯片***来执行,其中,该芯片***可以包括处理器。该芯片***可以与存储器耦合,使得该芯片***运行时调用该存储器中存储的计算机程序,实现上述电子设备执行的步骤。其中,该芯片***中的处理器可以是应用处理器也可以是非应用处理器的处理器。
另外,本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得第一电子设备和第二电子设备电子设备执行上述相关方法步骤实现上述实施例中的方法。
另外,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述实施例中的方法。
另外,本申请的实施例还提供一种芯片(也可以是组件或模块),该芯片可包括一个或多个处理电路和一个或多个收发管脚;其中,所述收发管脚和所述处理电路通过内部连接通路互相通信,所述处理电路执行上述相关方法步骤实现上述实施例中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
此外,通过上述描述可知,本申请实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (16)

1.一种建立点对点通道的方法,其特征在于,应用于第一电子设备,所述第一电子设备与第二电子设备在认证阶段交换了标识自身的标识符,所述方法包括:
接收第二电子设备发送的点对点P2P通道建立请求报文,所述P2P通道建立请求报文包括所述第二电子设备的标识符、角色信息、角色对应的认证信息,所述角色信息用于指示所述第二电子设备是创建热点的一方,或者接入热点的一方;
根据认证阶段获得的所述第二电子设备的标识符对所述P2P通道建立请求报文中包括的标识符进行校验;
在校验成功,且所述角色信息指示所述第二电子设备是接入热点的一方时,创建热点;
向所述第二电子设备发送P2P通道建立响应报文,所述P2P通道建立响应报文包括所述第一电子设备的标识符、创建的所述热点的第一热点信息。
2.根据权利要求1所述的方法,其特征在于,在所述角色信息指示所述第二电子设备是创建热点的一方时,所述认证信息为所述第二电子设备创建的热点的第二热点信息;所述方法还包括:
在校验成功,且所述角色信息指示所述第二电子设备是创建热点的一方时,根据所述第二热点信息,建立与所述第二电子设备之间的P2P通道;
向所述第二电子设备发送P2P通道建立响应报文,所述P2P通道建立响应报文包括所述第一电子设备的标识符、角色信息、角色对应的认证信息。
3.根据权利要求1所述的方法,其特征在于,在所述创建热点之后,所述方法还包括:
为所述第二电子设备分配网际协议IP地址,并建立所述IP地址和所述第二电子设备的标识符之间的对应关系;
根据所述对应关系,将所述IP地址和所述第二电子设备的标识符添加到IP地址/标识符管理表。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在建立与所述第二电子设备之间的P2P通道之后,获取所述P2P通道的状态信息,所述状态信息指示所述P2P通道打开或断开;
将所述状态信息添加到所述IP地址/标识符管理表中,与所述第二电子设备的标识符和所述IP地址建立对应关系。
5.根据权利要求4所述的方法,其特征在于,在建立与所述第二电子设备之间的P2P通道之后,所述方法还包括:
接收所述第二电子设备发送的P2P通道断开通知报文,所述P2P通道断开通知报文包括所述第二电子设备的标识符;
断开与所述P2P通道断开通知报文中的标识符标识的所述第二电子设备之间的P2P通道。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述IP地址/标识符管理表中,所述第二电子设备的标识符对应的状态信息修改为断开。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
删除所述IP地址/标识符管理表中记录的所述第二电子设备的标识符,以及与所述第二电子设备的标识符对应的状态信息、IP地址。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述第一电子设备的标识符为媒体存取控制MAC地址。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述第一电子设备的标识符为基本服务群标识BSSID。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述第二电子设备的角色信息根据所述第二电子设备的产品特性决定。
11.一种建立点对点通道的方法,其特征在于,应用于第二电子设备,所述第二电子设备与第一电子设备在认证阶段交换了标识自身的标识符,所述方法包括:
向第一电子设备发送点对点P2P通道建立请求报文,所述P2P通道建立请求报文包括所述第二电子设备的标识符、角色信息、角色对应的认证信息,所述角色信息用于指示所述第二电子设备是创建热点的一方,或者接入热点的一方;
在所述角色信息指示所述第二电子设备是接入热点的一方时,接收所述第一电子设备发送的P2P通道建立响应报文,所述P2P通道建立响应报文包括所述第一电子设备的标识符、创建的热点的第一热点信息;
根据认证阶段获得的所述第一电子设备的标识符对所述P2P通道建立响应报文中包括的所述标识符进行校验;
在验证成功时,根据所述第一热点信息,建立与所述第二电子设备之间的P2P通道。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
向所述第一电子设备发送P2P通道断开通知报文,所述P2P通道断开通知报文包括所述第二电子设备的标识符。
13.根据权利要求11或12所述的方法,其特征在于,所述第二电子设备的标识符为媒体存取控制MAC地址。
14.根据权利要求11或12所述的方法,其特征在于,所述第二电子设备的为基本服务群标识BSSID。
15.一种电子设备,其特征在于,用于执行如权利要求1至10任一项所述的建立点对点通道的方法,或用于执行如权利要求11至14任一项所述的建立点对点通道的方法。
16.一种协同工作***,其特征在于,包括用于执行如权利要求1至10任一项所述的建立点对点通道的方法的第一电子设备,以及用于执行如权利要求11至14任一项所述的建立点对点通道的方法的第二电子设备。
CN202210859323.0A 2022-07-21 2022-07-21 建立点对点通道的方法、设备及协同工作*** Pending CN117478682A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210859323.0A CN117478682A (zh) 2022-07-21 2022-07-21 建立点对点通道的方法、设备及协同工作***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210859323.0A CN117478682A (zh) 2022-07-21 2022-07-21 建立点对点通道的方法、设备及协同工作***

Publications (1)

Publication Number Publication Date
CN117478682A true CN117478682A (zh) 2024-01-30

Family

ID=89635252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210859323.0A Pending CN117478682A (zh) 2022-07-21 2022-07-21 建立点对点通道的方法、设备及协同工作***

Country Status (1)

Country Link
CN (1) CN117478682A (zh)

Similar Documents

Publication Publication Date Title
EP4130963A1 (en) Object dragging method and device
WO2020155014A1 (zh) 智能家居设备分享***、方法及电子设备
US20230422154A1 (en) Method for using cellular communication function, and related apparatus and system
CN112527174B (zh) 一种信息处理方法及电子设备
CN112261624B (zh) 应用中传输文件的方法、电子设备及***
CN114845035B (zh) 一种分布式拍摄方法,电子设备及介质
CN112130788A (zh) 一种内容分享方法及其装置
CN112527222A (zh) 一种信息处理方法及电子设备
JP2016502781A (ja) リアル・タイム通信および体験共有セッション中におけるサービスの更新
CN111164983A (zh) 互联终端出借本地处理能力
CN114741008B (zh) 分布式跨设备协同方法、电子设备及通信***
WO2022206770A1 (zh) 一种设备间应用协同工作的方法及设备
EP4297371A1 (en) Function migration method and apparatus
WO2022063159A1 (zh) 一种文件传输的方法及相关设备
CN116056076B (zh) 通信***、方法及电子设备
CN115225753A (zh) 拍摄方法、相关装置及***
CN111130985B (zh) 关联关系建立方法、装置、终端、服务器及存储介质
CN117478682A (zh) 建立点对点通道的方法、设备及协同工作***
CN117472603A (zh) 数据传输方法、电子设备及协同工作***
CN117499445A (zh) 协同工作***、方法及电子设备
CN117499446A (zh) 协同工作***、方法及电子设备
CN114071652A (zh) 一种绑定关系的建立方法以及相关设备
CN114007202A (zh) 一种绑定关系的建立方法以及相关设备
CN117478653A (zh) 图像数据传输方法、设备及协同工作***
CN117499780A (zh) 一种拍照方法、电子设备及协同工作***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination