串口复用方法及电子设备与流程

文档序号:12917666阅读:550来源:国知局

本发明涉及串口通信技术领域,尤其涉及一种串口复用方法及电子设备。



背景技术:

目前,蓝牙通信技术应用场景很广泛,比如蓝牙收银钱箱、蓝牙打印机、蓝牙耳机等,其通信服务也有很多种,串口通信服务就是其中之一。

对于市面上大部分的蓝牙设备,当两个蓝牙设备进行配对,其中一个设备上的应用通过串口通信服务和另一个设备连接后,第二个应用要再和它连接,或者是多个蓝牙设备同时要与同一个蓝牙设备建立蓝牙串口通信,就会发现设备被占用的情况。

然而,串口通信无法复用的话,比如蓝牙打印机,一部手持智能设备上的多个应用或多部手持智能设备上的应用,无法同时使用其进行打印。同理,串口被某个设备占用后,其他设备无法继续使用,只能等待,浪费设备资源。

目前一般通过带有标识的数据来区分不同的虚拟串口的数据,来实现串口复用。但通过带有标识的数据来区分的话,每次每包数据都需要带标识,即需要打包与解包的过程,且不同虚拟通道的数据逻辑上是混在一起传输的,此方案过程相对繁琐,容易出错。

另外,在公开号为cn101067794a的中国专利公开文件中,提出了一种多核处理器及其串口复用方法,包括多核多线程处理器,用于运行至少一个内核线程,以及在接收到切换控制模块的切换控制消息后,进行串口在内核线程间的切换;串口,用于将多核多线程处理器的至少一个内核线程的数据发送至外部,并与用于串口中断挂接的串口主控内核线程进行数据交互;以及切换控制模块,连接于串口和多核多线程处理器之间,用于控制多核多线程处理器中的一个或多个内核线程的切换以共享所述串口。但该方案是通过切换控制模块进行线程切换以实现串口复用的,无法实现多个线程同时向外发送消息,也即无法实现多个应用同时复用串口。



技术实现要素:

本发明所要解决的技术问题是:提供一种串口复用方法及电子设备,可实现多个应用或设备同时使用蓝牙串口服务。

为了解决上述技术问题,本发明采用的技术方案为:一种串口复用方法,包括:

创建第一线程;

第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;

创建与所述应用程序或蓝牙设备一一对应的第二线程;

第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

本发明还涉及一种电子设备,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:

创建第一线程;

第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;

创建与所述应用程序或蓝牙设备一一对应的第二线程;

第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

本发明的有益效果在于:通过设置一个第一线程专门用来接收处理应用或其他蓝牙设备的连接请求,接收到连接请求后,即为每个应用或蓝牙设备新建一个第二线程,后续由对应的第二线程来接收处理应用或蓝牙设备发送的串口通信数据,从而实现串口复用。本发明可使多个应用或蓝牙设备同时与同一个蓝牙设备建立蓝牙串口通信,实现串口复用,且过程简便,虚拟通道各自独立并行,使得传输不易出错,保证传输可靠性。

附图说明

图1为本发明实施例一的一种串口复用方法的流程图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:设置一个第一线程专门用来接收处理应用或其他蓝牙设备的连接请求;为每个应用或蓝牙设备新建一个第二线程,后续由对应的第二线程来接收处理串口通信数据。

请参阅图1,一种串口复用方法,包括:

创建第一线程;

第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;

创建与所述应用程序或蓝牙设备一一对应的第二线程;

第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

从上述描述可知,本发明的有益效果在于:使多个应用或蓝牙设备同时与同一个蓝牙设备建立蓝牙串口通信,实现串口复用。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”具体为:

第一线程接收一应用程序或蓝牙设备发送的串口通信连接请求,所述串口通信连接请求包括所述一应用程序或蓝牙设备的唯一标识符;

创建一第二线程,并将所述一第二线程的唯一标识符与所述一应用程序或蓝牙设备的唯一标识符进行关联。

由上述描述可知,通过唯一标识符来创建一一对应的第二线程,后续可通过唯一标识符的关联关系来确定应用或蓝牙设备所对应的第二线程。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”之后,进一步包括:

第一线程阻塞等待新的应用程序或蓝牙设备发送的串口通信连接请求。

由上述描述可知,只要系统资源足够,可以一直接受其他应用或蓝牙设备的连接请求。

进一步地,各应用程序和蓝牙设备对应的第二线程并行。

由上述描述可知,多个应用或蓝牙设备可同时与同一个蓝牙设备进行蓝牙串口通信的数据传输。

本发明还提出一种电子设备,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:

创建第一线程;

第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;

创建与所述应用程序或蓝牙设备一一对应的第二线程;

第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”具体为:

第一线程接收一应用程序或蓝牙设备发送的串口通信连接请求,所述串口通信连接请求包括所述一应用程序或蓝牙设备的唯一标识符;

创建一第二线程,并将所述一第二线程的唯一标识符与所述一应用程序或蓝牙设备的唯一标识符进行关联。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”之后,进一步包括:

第一线程阻塞等待新的应用程序或蓝牙设备发送的串口通信连接请求。

进一步地,各应用程序和蓝牙设备对应的第二线程并行。

实施例一

请参照图1,本发明的实施例一为:一种串口复用方法,可应用于蓝牙设备,包括如下步骤:

s1:在蓝牙串口服务的接收端创建第一线程;所述第一线程相当于一个以线程的方式来实现的接收服务,在开机时启动,主要任务是等待处理蓝牙串口方式的接入请求。

s2:第一线程接收应用程序或蓝牙设备发送的串口通信连接请求。

s3:创建与所述应用程序或蓝牙设备一一对应的第二线程。

s4:第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

进一步地,步骤s2-s3中,当第一线程接收到一应用程序或蓝牙设备发送的串口通信连接请求时,所述串口通信连接请求包括所述一应用程序或蓝牙设备的唯一标识符,则创建一第二线程,并将所述一第二线程的唯一标识符与所述一应用程序或蓝牙设备的唯一标识符进行关联。

进一步地,步骤s3之后,第一线程阻塞等待新的应用程序或蓝牙设备发送的串口通信连接请求。

进一步地,步骤s4中,各应用程序和蓝牙设备对应的第二线程并行。

本实施例通过设置一个第一线程专门用来接收处理应用或其他蓝牙设备的连接请求,接收到连接请求后,为每个连接请求分配一个第二线程,即为每个应用或蓝牙设备新建一个第二线程,后续由对应的第二线程来接收处理应用或蓝牙设备发送的串口通信数据,且各应用或蓝牙设备所对应的第二线程是并行的,这样就可以实现多个连接同时存在,同时传输数据。

本实施例可使多个应用或蓝牙设备同时与同一个蓝牙设备建立蓝牙串口通信,实现串口复用,且过程简便,虚拟通道各自独立并行,使得传输不易出错,保证传输可靠性。

实施例二

本实施例为实施例一的一具体应用场景。

在蓝牙串口服务的接收端,开启一个接收服务,此服务开机启动,以线程的方式来实现,其主要任务是等待处理蓝牙串口方式的接入请求。当有其他蓝牙设备或应用请求连接的时候,保存该连接的句柄,并将所述句柄作为标识来开启一个独立的通信数据处理线程,即在接到连接请求的时候,为这个请求新建一个数据处理线程,来处理通过该连接发送的数据。其中,各个数据处理线程之间是并行的,互不干扰的。

进一步地,新建一个数据处理线程相当于新建一个通信通道。连接句柄可用于标识建立通信通道时的数据来源,通信通道建立完成后,此来源的数据就固定从这个通信通道进行传输,数据包无需再加相关标识进行分发,数据需求方即可获取对应的数据。在通信结束前,句柄对应的通信通道只用于传输句柄对应的数据来源发送的数据。

代码可如下所示:

可以看出,每接收一次的新应用或新蓝牙设备的连接请求,便建立一个新的虚拟通道,一个虚拟通道传输一个应用或蓝牙设备的数据,但实际使用都是同一个物理设备,从而实现了串口复用。

实施例三

本实施例是对应上述实施例的一种电子设备,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:

创建第一线程;

第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;

创建与所述应用程序或蓝牙设备一一对应的第二线程;

第二线程接收并处理与其对应的应用程序或蓝牙设备的数据。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”具体为:

第一线程接收一应用程序或蓝牙设备发送的串口通信连接请求,所述串口通信连接请求包括所述一应用程序或蓝牙设备的唯一标识符;

创建一第二线程,并将所述一第二线程的唯一标识符与所述一应用程序或蓝牙设备的唯一标识符进行关联。

进一步地,所述“第一线程接收应用程序或蓝牙设备发送的串口通信连接请求;创建与所述应用程序或蓝牙设备一一对应的第二线程”之后,进一步包括:

第一线程阻塞等待新的应用程序或蓝牙设备发送的串口通信连接请求。

进一步地,各应用程序和蓝牙设备对应的第二线程并行。

综上所述,本发明提供的一种串口复用方法及电子设备,通过设置一个第一线程专门用来接收处理应用或其他蓝牙设备的连接请求,接收到连接请求后,即为每个应用或蓝牙设备新建一个第二线程,后续由对应的第二线程来接收处理应用或蓝牙设备发送的串口通信数据,从而实现串口复用。本发明可使多个应用或蓝牙设备同时与同一个蓝牙设备建立蓝牙串口通信,实现串口复用,且过程简便,虚拟通道各自独立并行,使得传输不易出错,保证传输可靠性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1