CN115904602B - 一种应用于多操作系统的多窗口投射方法、系统和车机 - Google Patents
一种应用于多操作系统的多窗口投射方法、系统和车机 Download PDFInfo
- Publication number
- CN115904602B CN115904602B CN202310156378.XA CN202310156378A CN115904602B CN 115904602 B CN115904602 B CN 115904602B CN 202310156378 A CN202310156378 A CN 202310156378A CN 115904602 B CN115904602 B CN 115904602B
- Authority
- CN
- China
- Prior art keywords
- operating system
- master
- projection
- slave
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 claims abstract description 131
- 230000004044 response Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 23
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 230000006378 damage Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims 2
- 238000009877 rendering Methods 0.000 abstract description 7
- 238000000926 separation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
- Computer And Data Communications (AREA)
Abstract
一种应用于多操作系统的多窗口投射方法、系统和车机,其中方法包括:主操作系统通过多窗口服务建立与从操作系统之间的主socket通信;响应于接收到投射开始广播,主操作系统创建数据socket,并基于主socket通信向从操作系统发送投射信息;从操作系统创建数据socket;主操作系统与从操作系统建立数据socket通信,主操作系统基于数据socket通信向从操作系统送帧;从操作系统对接收到的帧缓存,并进行上屏处理。由此,不仅通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且能够实现控制和数据分离,独立性强、可靠性高。
Description
技术领域
本申请涉及投屏技术领域,特别是涉及一种应用于多操作系统的多窗口投射方法、系统和车机。
背景技术
随着智能车载系统的发展,车内显示屏越来越多,包括中控主屏、仪表显示屏、副驾娱乐屏和头枕屏等,这些显示屏运行在相应的操作系统中。多操作系统的多窗口投射是指,操作系统向其他操作系统的显示屏上投射。
相关技术中,通常采用SOME/IP(Scalable service-Oriented Middleware overIP,基于IP的可伸缩的面向服务中间件)通过数据拷贝来实现多操作系统的多窗口投射,但这种方式数据处理耗时长,响应及时性差,传输帧率低。
发明内容
为了解决现有技术存在的不足,本申请的目的在于提供一种应用于多操作系统的多窗口投射方法、系统和车机,不仅基于socket通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且通过设置主socket和数据socket,能够实现控制和数据分离,独立性强、可靠性高。
为实现上述目的,本申请提供的一种应用于多操作系统的多窗口投射方法,应用于主操作系统和至少一个从操作系统;所述方法包括:
所述主操作系统通过多窗口服务建立与所述从操作系统之间的主socket通信;
响应于接收到包括投射信息的投射开始广播,所述主操作系统的多窗口服务创建主操作系统端的数据socket,并基于所述主socket通信向所述从操作系统发送所述投射信息;
所述从操作系统基于接收到的所述投射信息创建从操作系统端的数据socket;
所述主操作系统与所述从操作系统建立数据socket通信,所述主操作系统基于所述数据socket通信从共享内存向所述从操作系统送帧;
所述从操作系统对接收到的帧缓存,并进行上屏处理。
进一步地,所述主操作系统通过多窗口服务建立与所述从操作系统之间的主socket通信的步骤前,所述方法还包括:
所述主操作系统启动,并创建所述多窗口服务;所述多窗口服务创建所述主操作系统的主socket;
所述从操作系统启动,并创建所述从操作系统的主socket。
更进一步地,所述方法还包括:
所述主操作系统的主socket处于轮询等待状态;
响应于监听到连接事件,连接所述主socket通信;
响应于监听到断开事件,重新连接所述主socket通信。
更进一步地,所述重新连接所述主socket通信的步骤,包括:
确定所述主操作系统和所述从操作系统的数据socket状态是否一致;
响应于所述主操作系统和所述从操作系统的数据socket状态不一致,根据所述主操作系统的数据socket状态,重新连接所述主socket通信。
进一步地,所述方法还包括:
所述主操作系统的数据socket处于轮询等待状态;
响应于监听到连接事件,连接所述数据socket通信;
响应于监听到断开事件,重新连接所述数据socket通信。
进一步地,所述方法还包括:
所述上屏处理完成后,所述从操作系统基于所述数据socket通信向所述主操作系统发送处理完成回复消息;
响应于接收到所述处理完成回复消息,所述主操作系统释放处理后的帧,之后执行下一次送帧。
进一步地,所述方法还包括:
响应于接收到所述帧,所述从操作系统基于所述数据socket通信向所述主操作系统发送帧收到指令;
响应于接收到所述帧收到指令,所述主操作系统保存所述帧,直至接收到下一个处理完成回复消息,所述主操作系统释放所述帧,并保存下一帧。
进一步地,所述方法还包括:
响应于接收到包括去初始化信息的投射停止广播,所述多窗口服务基于所述数据socket通信向所述从操作系统发送销毁命令;
响应于接收到所述销毁命令,所述从操作系统释放相应的数据socket资源,并基于所述数据socket通信向所述主操作系统发送销毁回复消息;
响应于接收到所述销毁回复消息,所述主操作系统释放相应的数据socket资源。
更进一步地,所述方法还包括:
响应于接收到所述投射停止广播,所述多窗口服务向所述主操作系统的主socket发送释放投射资源指令,以使所述主操作系统释放相应的主socket资源,并基于所述主socket通信向所述从操作系统发送释放命令,以使所述从操作系统释放相应的主socket资源。
进一步地,所述主操作系统为Android系统。
进一步地,所述从操作系统为Android系统、QNX系统或Linux系统。
为实现上述目的,本申请还提供的一种应用于多操作系统的多窗口投射系统,包括:
主操作系统,用于通过多窗口服务建立与从操作系统之间的主socket通信,响应于接收到包括投射信息的投射开始广播,通过所述多窗口服务创建数据socket,并基于所述主socket通信向所述从操作系统发送所述投射信息;
至少一个从操作系统,基于接收到的所述投射信息创建数据socket;
所述主操作系统和所述从操作系统,还用于建立数据socket通信;
所述主操作系统,还用于基于所述数据socket通信从共享内存向所述从操作系统送帧;
所述从操作系统,还用于对接收到的帧缓存,并进行上屏处理。
为实现上述目的,本申请提供的车机,包括:如上所述的应用于多操作系统的多窗口投射系统。
为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的应用于多操作系统的多窗口投射方法的步骤。
本申请的一种应用于多操作系统的多窗口投射方法、系统和车机,不仅基于socket通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且通过设置主socket和数据socket,能够实现控制和数据分离,独立性强、可靠性高。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
图1为根据本申请实施例的应用于多操作系统的多窗口投射方法流程图;
图2为根据本申请实施例的数据缓存处理示意图;
图3为根据一具体实施例的应用于多操作系统的多窗口投射方法流程图;
图4为根据另一具体实施例的应用于多操作系统的多窗口投射方法时序流程图;
图5为根据本申请一实施例的多窗口投射系统结构框图;
图6为根据本申请另一实施例的多窗口投射系统结构框图;
图7为根据本申请实施例的车机结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块、单元或数据进行区分,并非用于限定这些装置、模块、单元或数据所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
实施例1
图1为根据本申请实施例的应用于多操作系统的多窗口投射方法流程图,下面将参考图1,对本申请实施例的应用于多操作系统的多窗口投射方法进行详细描述。
在步骤101,主操作系统通过多窗口服务建立与从操作系统之间的主socket通信。
其中,socket又称套接字,其在程序内部提供了与外界通信的端口。系统内端口建立后,系统间建立通信连接,即实现socket通信。通过socket通信,可为通信双方的数据传输传提供通道。本申请实施例中,主操作系统和从操作系统之间的通讯链路包括主socket通信和数据socket通信,其中数据socket通信用于传输帧数据,主socket通信用于控制数据socket通信。
需要说明的是,本实施例中应用于多操作系统的多窗口投射方法,应用于主操作系统和至少一个从操作系统。在具体示例中,主操作系统可以为Android系统;从操作系统可以为Android系统、QNX系统或Linux系统。
本申请实施例中,该多窗口投射方法可以被配置为运行于多核异构系统芯片上,所述系统芯片上包含多种硬件资源,所述硬件资源包括计算类型的硬件资源,例如CPU核心、GPU核心等,存储类型的硬件资源,比如内存等,控制类型的硬件资源,比如电源控制器、时钟控制器、中断控制器等,通信类型的硬件资源,比如总线等。
多种硬件资源被配置为多个硬件集合,每个硬件集合被配置为运行不同的操作系统,每个硬件集合不响应其他硬件集合的数据访问请求,也不响应除配置在本硬件集合上的操作系统之外,其他操作系统的调度。
系统芯片上还设置有支持不同硬件集合之间通信的硬件资源,即核间通信通道,该硬件资源被配置为支持不同硬件集合中硬件的数据传输或者读取请求,以支持在不同操作系统之间建立数据通信链路,实现跨硬件资源的数据传输,以及跨操作系统的信息通信。本申请中跨操作系统的socket通信即是基于核间通信通道实现的。
本申请实施例中,步骤101前,该方法还包括:主操作系统启动,并创建多窗口服务(MultiDisplayService),而后多窗口服务创建主操作系统的主socket。从操作系统启动,并创建从操作系统的主socket。其中,主socket的通讯端口作为控制端口,用于控制数据socket通信。
在步骤102,响应于接收到包括投射信息的投射开始广播,主操作系统的多窗口服务创建主操作系统端的数据socket,并通过主socket通信向从操作系统发送投射信息。
具体来说,主操作系统中某一应用投射时,会向多窗口服务发送包括投射信息的投射开始广播,其中投射信息包括投屏位置信息、显示参数等。多窗口服务接收到投射开始广播后,创建数据socket端口及相关读线程和写线程,而后向主socket发送增加投射指令,该指令中包括投射信息,以通过主socket通信向从操作系统发送投射信息。
在步骤103,从操作系统基于接收到的投射信息创建从操作系统端的数据socket。
也就是说,从操作系统通过主socket通信接收到投射信息后,基于投射信息创建数据socket端口和数据处理线程。
在步骤104,主操作系统与从操作系统建立数据socket通信,主操作系统基于数据socket通信从共享内存向从操作系统送帧。
其中,共享内存配置于主操作系统中,帧中包括投射的地址数据。通过建立主socket通信和数据socket通信,能够实现控制和数据分离,独立性强、可靠性高。
在步骤105,从操作系统对接收到的帧缓存,并进行上屏处理。
具体地,从操作系统接收到帧后,直接将投射的地址数据绑定到渲染buffer(缓存器)中,然后进行上屏处理。由此可以通过多个数据传输端口把不同应用的数据传输到对端合成,实现数据零拷贝的投到同一显示屏的不同位置,或者投到不同的显示屏上。
作为一种实施例,该方法还包括:上屏处理完成后,从操作系统基于数据socket通信向主操作系统发送处理完成回复消息;响应于接收到处理完成回复消息,主操作系统释放处理后的帧,之后执行下一次送帧。由此,能够确保上屏处理完成后释放处理后的帧,避免了上屏处理前或上屏处理过程中将相应帧释放掉的情况。
作为另一种实施例,该方法还包括:响应于接收到某一帧,从操作系统基于数据socket通信向主操作系统发送帧收到指令;响应于接收到帧收到指令,主操作系统保存该帧,直至接收到下一个处理完成回复消息,主操作系统释放该帧,并保存下一帧。
也就是说,主操作系统可以请求数据buffer做一个缓存,用于在从操作系统收到帧后,对该帧进行保存并释放上一次使用帧。在这种情况下,从操作系统可以使用防阻塞递交模式,即接收到帧时,主操作系统就可以进行下一次送帧,同时缓存该帧并释放上一使用帧。由此,不仅能够避免上屏处理前或上屏处理过程中将该帧释放掉,而且能够防止数据阻塞,有助于进一步降低数据处理耗时,保证数据的实时性,提高传输帧率。
图2为一具体实施例的数据缓存处理示意图。参考图2所示,渲染buffer为一个缓存三帧的链表。获取一个新的帧数据(new frame)时,将其插入buffer尾部,若buffer已满,则删除头帧。帧数据从buffer取出时,是从buffer头部取出,而后基于数据socket通信发送至从操作系统。从操作系统使用防阻塞递交模式进行递交,递交完成后向主操作系统发送回复消息。主操作系统接收到回复消息后,保存此帧数据,并释放上一帧数据。
根据本申请实施例的应用于多操作系统的多窗口投射方法,通过主操作系统建立与从操作系统之间的主socket通信,并响应于接收到包括投射信息的投射开始广播,创建主操作系统端的数据socket,基于主socket通信向从操作系统发送投射信息,以及通过从操作系统基于接收到的投射信息创建从操作系统端的数据socket,并通过建立主操作系统与从操作系统之间的数据socket通信,主操作系统基于数据socket通信从共享内存向从操作系统送帧,以及通过从操作系统对接收到的帧缓存,并进行上屏处理。由此,不仅基于socket通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且通过设置主socket和数据socket,能够实现控制和数据分离,独立性强、可靠性高。
本申请实施例中,该方法还包括:主操作系统的主socket处于轮询等待状态;响应于监听到连接事件,连接主socket通信;响应于监听到断开事件,重新连接主socket通信。也就是说,主socket通信可以含有异常断开重连的机制,从而能够提高投射的安全性。
进一步地,重新连接主socket通信的步骤,包括:确定主操作系统和从操作系统的数据socket状态是否一致;响应于主操作系统和从操作系统的数据socket状态不一致,根据主操作系统的数据socket状态,重新连接主socket通信。
其中,数据socket状态可以包括连通状态和断开状态,断开状态可以是处于建立前的状态或处于异常断开状态。具体地,重新连接时检查两个系统的数据socket状态的一致性,在二者不一致的情况下,如从操作系统端停止响应而主操作系统端还在投射的情况,以主操作系统的状态为准进行恢复,从而进一步确保投射的高安全性。
本申请实施例中,该方法还包括:主操作系统的数据socket处于轮询等待状态;响应于监听到连接事件,连接数据socket通信;响应于监听到断开事件,重新连接数据socket通信。也就是说,数据socket通信也可以含有异常断开重连的机制,从而能够进一步提高投射的安全性。
本申请实施例中,该方法还包括:响应于接收到包括去初始化信息的投射停止广播,多窗口服务基于数据socket通信向从操作系统发送销毁命令;响应于接收到销毁命令,从操作系统释放相应的数据socket资源,并基于数据socket通信向主操作系统发送销毁回复消息;响应于接收到销毁回复消息,主操作系统释放相应的数据socket资源。
也就是说,当应用停止投射时,数据socket进行相应的销毁和释放。其中,去初始化信息可以包括待去初始化的投屏位置信息等;资源释放可以包括相应的内存释放、线程释放等。
进一步地,该方法还包括:响应于接收到投射停止广播,多窗口服务向主操作系统的主socket发送释放投射资源指令,以使主操作系统释放相应的主socket资源,并通过主socket通信向从操作系统发送释放命令,以使从操作系统释放相应的主socket资源。具体地,当应用停止投射时,可以在数据socket去初始化后,主socket进行相应的资源释放。
下面通过两个具体实施例对本申请的应用于多操作系统的多窗口投射方法作进一步解释和说明。
图3为根据一具体实施例的应用于多操作系统的多窗口投射方法流程图,参考图3所示,Andriod系统通过MultiDisplayService与B系统(一从操作系统)建立主socket服务。
其中,Andriod系统的主socket含有异常断开重连的机制,使得其线程包括以下步骤:
在步骤201,处于轮询等待状态(epoil_wait)。监听到断开事件时,执行步骤202;监听到连接事件时,执行步骤203;
在步骤202,断开主socket通信,并执行步骤203。
在步骤203,检测两端数据socket状态一致性,连接主socket通信,并返回步骤201。
Andriod系统的MultiDisplayService接收到投射开始(start)广播后,投射处理线程包括以下步骤:
在步骤301,建立数据socket,等待对端连接、处理数据。
在步骤302,将需要投射的信息发送至对端。
在步骤303,创建VirtualDisplay。
在步骤304,等待投射停止(stop)信号。
在步骤305,接收到投射停止广播后,释放VirtualDisplay。
在步骤306,将需要销毁的信息发送至对端。
在步骤307,销毁读写线程等资源。
B系统的主socket线程包括以下步骤:
在步骤401,处于监听状态。
在步骤402,监听到增加投射指令时,设置用户回调函数。供输入投射位置、投射窗口尺寸等信息。
在步骤403,初始化投射状态。
在步骤404,创建数据socket线程进行数据交互。
在步骤405,监听到删除投射指令时,释放资源,清空回调。
在步骤406,等待数据处理线程退出,销毁资源。
图4为根据另一具体实施例的应用于多操作系统的多窗口投射方法时序流程图。参考图4所示,Android系统启动后,创建多窗口服务,多窗口服务创建Android系统端的主socket。B系统启动后,创建B系统端的主socket。而后,Android系统与B系统建立主socket通信,连接时检查两端的数据socket状态的一致性。
当Android系统的APP接收到多窗口投射启动指令后,向多窗口服务发送start(投射开始)广播。多窗口服务创建Android系统端的数据socket及相关读线程、写线程,而后向主socket发送增加投射指令,并通过主socket通信,向B系统发送要投射的信息,B系统基于信息创建数据处理线程,Android系统与B系统建立数据socket通信。之后,Android系统基于数据socket通信向B系统送帧,并等待B系统上屏处理。B系统上屏处理后,基于数据socket通信向Android系统发送回复消息。Android系统接收到回复消息后,释放处理后的帧,并进行下一次送帧,依次持续运行,直至接收到投射停止广播。
当Android系统的APP接收到多窗口投射退出指令后,向多窗口服务发送stop(投射停止)广播。多窗口服务向数据socket发送销毁投射指令,以使Android系统基于数据socket通信向B系统发送销毁指令,B系统接收到销毁指令后回复,并释放数据socket资源,Android系统接收到回复后释放数据socket资源。此外,多窗口服务还向主socket发送释放投射资源指令,通过主socket通信发送需要释放的socket。
综上所述,根据本申请实施例的应用于多操作系统的多窗口投射方法,通过主操作系统建立与从操作系统之间的主socket通信,并响应于接收到包括投射信息的投射开始广播,创建主操作系统端的数据socket,基于主socket通信向从操作系统发送投射信息,以及通过从操作系统基于接收到的投射信息创建从操作系统端的数据socket,并通过建立主操作系统与从操作系统之间的数据socket通信,主操作系统基于数据socket通信从共享内存向从操作系统送帧,以及通过从操作系统对接收到的帧缓存,并进行上屏处理。由此,不仅基于socket通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且通过设置主socket和数据socket,能够实现控制和数据分离,独立性强、可靠性高。
实施例2
图5为根据本申请一实施例的应用于多操作系统的多窗口投射系统结构框图。参考图5所示,多窗口投射系统50,包括主操作系统51和至少一个从操作系统52。
其中,主操作系统51,用于通过多窗口服务建立与从操作系统52之间的主socket通信,响应于接收到包括投射信息的投射开始广播,通过多窗口服务创建数据socket,并通过主socket通信向从操作系统52发送投射信息。
从操作系统52,基于接收到的投射信息创建数据socket。
主操作系统51和从操作系统52,还用于建立数据socket通信。
主操作系统51,还用于基于数据socket通信从共享内存向从操作系统52送帧;帧中包括投射的地址数据。
从操作系统52,还用于对接收到的帧缓存,并进行上屏处理。
本申请实施例中,主操作系统51启动后,还用于创建多窗口服务,多窗口服务创建主操作系统51的主socket。
从操作系统52启动后,还用于创建从操作系统52的主socket。
进一步地,主操作系统51还用于,使其主socket处于轮询等待状态,并响应于监听到连接事件,连接主socket通信,以及响应于监听到断开事件,重新连接主socket通信。
进一步地,主操作系统51具体用于,确定主操作系统51和从操作系统52的数据socket状态是否一致,并响应于主操作系统51和从操作系统52的数据socket状态不一致,根据主操作系统51的数据socket状态,重新连接主socket通信。
本申请实施例中,主操作系统51还用于,使其数据socket处于轮询等待状态,并响应于监听到连接事件,连接数据socket通信,以及响应于监听到断开事件,重新连接数据socket通信。
本申请实施例中,上屏处理完成后,从操作系统52还用于,基于数据socket通信向主操作系统51发送处理完成回复消息。
主操作系统51还用于,响应于接收到处理完成回复消息,释放处理后的帧,之后执行下一次送帧。
本申请实施例中,从操作系统52还用于,响应于接收到帧,基于数据socket通信向主操作系统51发送帧收到指令。
主操作系统51还用于,响应于接收到帧收到指令,保存帧,直至接收到下一个处理完成回复消息,主操作系统51释放帧,并保存下一帧。
本申请实施例中,主操作系统51还用于,响应于接收到包括去初始化信息的投射停止广播,多窗口服务基于数据socket通信向从操作系统52发送销毁命令。
从操作系统52还用于,响应于接收到销毁命令,释放相应的数据socket资源,并基于数据socket通信向主操作系统51发送销毁回复消息;
主操作系统51还用于,响应于接收到销毁回复消息,释放相应的数据socket资源。
进一步地,主操作系统51还用于,响应于接收到投射停止广播,多窗口服务向主操作系统51的主socket发送释放投射资源指令,以使主操作系统51释放相应的主socket资源,并通过主socket通信向从操作系统52发送释放命令,以使从操作系统52释放相应的主socket资源。
图6为根据本申请另一实施例的应用于多操作系统的多窗口投射系统结构框图。参考图6所示,多窗口投射系统50,包括主操作系统51和从操作系统52。其中,主操作系统51中多个APP可以启动多窗口服务,进行多窗口投射时,主操作系统51可以通过消息处理器(MsgHandle)基于主socket通讯链路连接从操作系统52的消息接收器(MsgReceiver),并可以通过帧处理器(FrameSender)基于数据socket通讯链路连接从操作系统52的帧接收器(FrameReceiver)。
需要说明的是,上述实施例中对应用于多操作系统的多窗口投射方法的解释说明,也适用于本实施例中的应用于多操作系统的多窗口投射系统,此处不再进行赘述。
根据本申请实施例的应用于多操作系统的多窗口投射系统,通过主操作系统建立与从操作系统之间的主socket通信,响应于接收到包括投射信息的投射开始广播,创建数据socket,基于主socket通信向从操作系统发送投射信息,并通过从操作系统基于接收到的投射信息创建数据socket,以及通过建立主操作系统和从操作系统之间的数据socket通信,并通过主操作系统基于数据socket通信从共享内存向从操作系统送帧,以及通过从操作系统对接收到的帧缓存,并进行上屏处理。由此,不仅基于socket通过共享内存和对端渲染缓存,能够实现数据零拷贝的多窗口投射,有效降低数据处理耗时,保证数据的实时性,提高传输帧率,而且通过设置主socket和数据socket,能够实现控制和数据分离,独立性强、可靠性高。
实施例3
图7为根据本申请实施例的车机结构框图。参考图7所示,车机500包括:上述实施例中的应用于多操作系统的多窗口投射系统50。
实施例4
本申请一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读存储介质承载有一个或者多个计算机指令,当上述一个或者多个计算机指令被执行时,实现上述实施例的车载网关测试方法的步骤。
本申请的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本领域普通技术人员可以理解:以上仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种应用于多操作系统的多窗口投射方法,其特征在于,应用于主操作系统和至少一个从操作系统;所述主操作系统和所述从操作系统,分别运行于多核异构系统芯片上不同的硬件集合;所述方法包括:
所述主操作系统创建多窗口服务;所述主操作系统通过多窗口服务建立与所述从操作系统之间的用于控制数据socket通信的主socket通信;其中所述主socket通信的链路,连接在所述主操作系统的消息处理器和所述从操作系统的消息接收器之间;其中,所述主操作系统被配置有多个应用,所述多窗口服务用于所述多个应用;
响应于所述多个应用接收到多窗口投射启动指令,所述多个应用向所述多窗口服务发送投射开始广播;
响应于接收到包括投射信息的投射开始广播,所述主操作系统的多窗口服务创建主操作系统端的数据socket,并基于所述主socket通信向所述从操作系统发送所述投射信息;其中,所述投射信息包括投屏位置信息和显示参数;
所述从操作系统基于接收到的所述投射信息创建从操作系统端的数据socket;所述从操作系统通过主socket监听到增加投射指令时,设置用户回调函数,所述用户回调函数供输入投射位置信息和投射窗口尺寸信息;
所述主操作系统与所述从操作系统建立数据socket通信,其中所述数据socket通信的链路,连接在所述主操作系统的帧处理器和所述从操作系统的帧接收器之间;所述主操作系统基于所述数据socket通信从共享内存,通过多个数据传输端口把不同应用的帧传送至所述从操作系统;帧中包括投射的地址数据;
所述从操作系统对接收到的帧缓存,并进行上屏处理;其中,所述上屏处理包括,对接收到的所述不同应用的帧进行合成,并投至同一显示屏的不同位置或投至不同的显示屏上;
响应于接收到包括去初始化信息的投射停止广播,所述多窗口服务基于所述数据socket通信向所述从操作系统发送销毁命令;
响应于接收到所述销毁命令,所述从操作系统释放相应的数据socket资源,并基于所述数据socket通信向所述主操作系统发送销毁回复消息;
响应于接收到所述销毁回复消息,所述主操作系统释放相应的数据socket资源。
2.根据权利要求1所述的多窗口投射方法,其特征在于,所述主操作系统通过多窗口服务建立与所述从操作系统之间的主socket通信的步骤前,所述方法还包括:
所述主操作系统启动,并创建所述多窗口服务;所述多窗口服务创建所述主操作系统的主socket;
所述从操作系统启动,并创建所述从操作系统的主socket。
3.根据权利要求2所述的多窗口投射方法,其特征在于,所述方法还包括:
所述主操作系统的主socket处于轮询等待状态;
响应于监听到连接事件,连接所述主socket通信;
响应于监听到断开事件,重新连接所述主socket通信。
4.根据权利要求3所述的多窗口投射方法,其特征在于,所述重新连接所述主socket通信的步骤,包括:
确定所述主操作系统和所述从操作系统的数据socket状态是否一致;
响应于所述主操作系统和所述从操作系统的数据socket状态不一致,根据所述主操作系统的数据socket状态,重新连接所述主socket通信。
5.根据权利要求1所述的多窗口投射方法,其特征在于,所述方法还包括:
所述主操作系统的数据socket处于轮询等待状态;
响应于监听到连接事件,连接所述数据socket通信;
响应于监听到断开事件,重新连接所述数据socket通信。
6.根据权利要求1所述的多窗口投射方法,其特征在于,所述方法还包括:
所述上屏处理完成后,所述从操作系统基于所述数据socket通信向所述主操作系统发送处理完成回复消息;
响应于接收到所述处理完成回复消息,所述主操作系统释放处理后的帧,之后执行下一次送帧。
7.根据权利要求1所述的多窗口投射方法,其特征在于,所述方法还包括:
响应于接收到所述帧,所述从操作系统基于所述数据socket通信向所述主操作系统发送帧收到指令;
响应于接收到所述帧收到指令,所述主操作系统保存所述帧,直至接收到下一个处理完成回复消息,所述主操作系统释放所述帧,并保存下一帧。
8.根据权利要求1所述的多窗口投射方法,其特征在于,所述方法还包括:
响应于接收到所述投射停止广播,所述多窗口服务向所述主操作系统的主socket发送释放投射资源指令,以使所述主操作系统释放相应的主socket资源,并基于所述主socket通信向所述从操作系统发送释放命令,以使所述从操作系统释放相应的主socket资源。
9.根据权利要求1-8任一项所述的应用于多操作系统的多窗口投射方法,其特征在于,所述主操作系统为Android系统。
10.根据权利要求1-8任一项所述的应用于多操作系统的多窗口投射方法,其特征在于,所述从操作系统为Android系统、QNX系统或Linux系统。
11.一种应用于多操作系统的多窗口投射系统,其特征在于,包括:
主操作系统,用于创建多窗口服务,并通过多窗口服务建立与从操作系统之间的用于控制数据socket通信的主socket通信,其中所述主socket通信的链路,连接在所述主操作系统的消息处理器和所述从操作系统的消息接收器之间;其中,所述主操作系统被配置有多个应用,所述多窗口服务用于所述多个应用;响应于所述多个应用接收到多窗口投射启动指令,所述多个应用向所述多窗口服务发送投射开始广播;响应于接收到包括投射信息的投射开始广播,通过所述多窗口服务创建数据socket,并基于所述主socket通信向所述从操作系统发送所述投射信息;其中,所述投射信息包括投屏位置信息和显示参数;
至少一个从操作系统,基于接收到的所述投射信息创建数据socket;并用于通过主socket监听到增加投射指令时,设置用户回调函数,其中所述用户回调函数供输入投射位置信息和投射窗口尺寸信息;
所述主操作系统和所述从操作系统,分别运行于多核异构系统芯片上不同的硬件集合,还用于建立数据socket通信;其中所述数据socket通信的链路,连接在所述主操作系统的帧处理器和所述从操作系统的帧接收器之间;
所述主操作系统,还用于基于所述数据socket通信从共享内存,通过多个数据传输端口把不同应用的帧传送至所述从操作系统;帧中包括投射的地址数据;
所述从操作系统,还用于对接收到的帧缓存,并进行上屏处理;其中,所述上屏处理包括,对接收到的所述不同应用的帧进行合成,并投至同一显示屏的不同位置或投至不同的显示屏上;
响应于接收到包括去初始化信息的投射停止广播,所述多窗口服务基于所述数据socket通信向所述从操作系统发送销毁命令;
响应于接收到所述销毁命令,所述从操作系统释放相应的数据socket资源,并基于所述数据socket通信向所述主操作系统发送销毁回复消息;
响应于接收到所述销毁回复消息,所述主操作系统释放相应的数据socket资源。
12.一种车机,其特征在于,所述车机,包括权利要求11所述的应用于多操作系统的多窗口投射系统。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1-10任一项所述的应用于多操作系统的多窗口投射方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310156378.XA CN115904602B (zh) | 2023-02-23 | 2023-02-23 | 一种应用于多操作系统的多窗口投射方法、系统和车机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310156378.XA CN115904602B (zh) | 2023-02-23 | 2023-02-23 | 一种应用于多操作系统的多窗口投射方法、系统和车机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904602A CN115904602A (zh) | 2023-04-04 |
CN115904602B true CN115904602B (zh) | 2024-01-26 |
Family
ID=86474875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310156378.XA Active CN115904602B (zh) | 2023-02-23 | 2023-02-23 | 一种应用于多操作系统的多窗口投射方法、系统和车机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904602B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461158A (zh) * | 2021-12-29 | 2022-05-10 | 沈阳中科创达软件有限公司 | 一种应用投屏方法、装置、车载终端及可读存储介质 |
CN114579072A (zh) * | 2022-03-02 | 2022-06-03 | 南京芯驰半导体科技有限公司 | 一种跨多操作系统的显示投屏方法及装置 |
CN114611118A (zh) * | 2022-05-12 | 2022-06-10 | 麒麟软件有限公司 | 基于Linux系统的安卓多窗口应用锁屏的方法 |
CN114786056A (zh) * | 2022-05-07 | 2022-07-22 | 中国第一汽车股份有限公司 | 一种基于Hypervisor的跨操作系统视频投影显示方法、系统、装置和车辆 |
CN114780049A (zh) * | 2022-04-24 | 2022-07-22 | 亿咖通(湖北)技术有限公司 | 投屏显示方法、装置、电子设备和存储介质 |
CN115344226A (zh) * | 2022-10-20 | 2022-11-15 | 亿咖通(北京)科技有限公司 | 一种虚拟化管理下的投屏方法、装置、设备及介质 |
CN115407956A (zh) * | 2022-08-26 | 2022-11-29 | 南京芯驰半导体科技有限公司 | 一种多屏投射方法、系统及车机 |
-
2023
- 2023-02-23 CN CN202310156378.XA patent/CN115904602B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461158A (zh) * | 2021-12-29 | 2022-05-10 | 沈阳中科创达软件有限公司 | 一种应用投屏方法、装置、车载终端及可读存储介质 |
CN114579072A (zh) * | 2022-03-02 | 2022-06-03 | 南京芯驰半导体科技有限公司 | 一种跨多操作系统的显示投屏方法及装置 |
CN114780049A (zh) * | 2022-04-24 | 2022-07-22 | 亿咖通(湖北)技术有限公司 | 投屏显示方法、装置、电子设备和存储介质 |
CN114786056A (zh) * | 2022-05-07 | 2022-07-22 | 中国第一汽车股份有限公司 | 一种基于Hypervisor的跨操作系统视频投影显示方法、系统、装置和车辆 |
CN114611118A (zh) * | 2022-05-12 | 2022-06-10 | 麒麟软件有限公司 | 基于Linux系统的安卓多窗口应用锁屏的方法 |
CN115407956A (zh) * | 2022-08-26 | 2022-11-29 | 南京芯驰半导体科技有限公司 | 一种多屏投射方法、系统及车机 |
CN115344226A (zh) * | 2022-10-20 | 2022-11-15 | 亿咖通(北京)科技有限公司 | 一种虚拟化管理下的投屏方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
一种应用于分区操作系统的虚拟化SOCKET通信方法;周霆;郭芳超;;科技风(第08期);全文 * |
利用socket实现Windows与Linux平台间的网络通信;周西峰;陆鹏;郭前岗;;微型机与应用(第18期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115904602A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023284699A1 (zh) | 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质 | |
CN112953775B (zh) | 一种车机升级系统及方法 | |
JP2006072591A (ja) | 仮想計算機制御方法 | |
KR20150067332A (ko) | 코어 간 통신 장치 및 방법 | |
CN113535425A (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
CN115904602B (zh) | 一种应用于多操作系统的多窗口投射方法、系统和车机 | |
CN116932454B (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
CN110781014A (zh) | 基于Android设备的录音数据的多进程分发方法与系统 | |
CN112395242B (zh) | 多芯片控制方法、装置、电子设备和计算机可读存储介质 | |
US7315913B2 (en) | CPU system, bus bridge, control method therefor, and computer system | |
CN111552668B (zh) | 一种基于zfs文件系统的高性能跨域复制方法 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
CN110868448A (zh) | 一种车载数据更新的系统及方法 | |
US20120030382A1 (en) | Direct memory access device for multi-core system and operating method of the same | |
CN114500052B (zh) | 一种基于事件驱动的高效数据加密转发方法及装置 | |
JP2008003645A (ja) | タイマ連携によるリクエスト制御方法 | |
KR20020059481A (ko) | 대형 시스템에서의 이중화 장치 및 방법 | |
CN111427816A (zh) | 一种amp系统核间通讯方法、计算机设备及存储介质 | |
US20240143302A1 (en) | Application downloading processing method, apparatus, and device, and storage medium | |
CN114503041B (zh) | 车辆诊断方法、诊断连接器及诊断设备 | |
WO2023246181A1 (zh) | 系统切换方法、终端设备及存储介质 | |
CN110908952B (zh) | 一种数据处理方法、装置、cpu及计算机 | |
WO2024139282A1 (zh) | 多通道诊断方法、装置以及车辆 | |
CN118605824A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |