CN102394942A - 一种自动安装蓝牙串口设备的方法 - Google Patents
一种自动安装蓝牙串口设备的方法 Download PDFInfo
- Publication number
- CN102394942A CN102394942A CN2011102255425A CN201110225542A CN102394942A CN 102394942 A CN102394942 A CN 102394942A CN 2011102255425 A CN2011102255425 A CN 2011102255425A CN 201110225542 A CN201110225542 A CN 201110225542A CN 102394942 A CN102394942 A CN 102394942A
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- equipment
- serial ports
- serial port
- available
- 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
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种自动安装蓝牙串口设备的方法,该方法用于在基于Windows Mobile或Windows CE操作系统的嵌入式设备或移动终端上自动安装蓝牙串口设备,包括以下步骤:①在所述嵌入式设备或移动终端上,开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的可用蓝牙设备逐一与预设名称进行比对,直到找到匹配的预设名称,获取所述可用蓝牙设备的地址,然后配对并获取该可用蓝牙设备的RFCOMM通道号;②搜索系统中可供使用的串口号,然后基于所述可用蓝设备的地址和RFCOMM通道号为其创建虚拟串口,并将相应的虚拟串口号返回给上层应用,表明已经成功地安装了一个安装蓝牙串口设备,直接为上层应用提供有效操作目标蓝牙串口设备的虚拟串口。
Description
技术领域
本发明涉及嵌入式设备或移动终端中的蓝牙技术和虚拟串口技术,特别是一种自动安装蓝牙串口设备的方法,该方法用于在基于Windows Mobile或Windows CE操作系统的嵌入式设备或移动终端上自动安装蓝牙串口设备。
背景技术
目前,采用Windows Mobile或Windows CE操作系统的各种嵌入式设备和移动终端被广泛应用于各行各业,并且同时会使用到很多配套的蓝牙设备,如蓝牙打印机、蓝牙键盘、蓝牙遥控器等。由于基于虚拟串口实现蓝牙设备间的通信,编程简单,小数据量传输方便快捷,因而在行业应用中经常会优先考虑蓝牙串口设备。
Windows CE是微软(Microsoft)公司出品的嵌入式操作系统。它是一种为各种嵌入式系统和产品设计的压缩的、高效的、模块化的、可升级的操作系统(OS),其多线性、多任务、全优先的操作系统环境是专门针对资源有限而设计的。它的模块化设计使嵌入式系统开发者和应用开发者能够基于此定制各种产品,例如家用电器,专门的工业控制器和嵌入式通信设备以及各种移动终端等。
Windows Mobile是微软(Microsoft)公司在Windows CE的基础上专门为移动设备定制的操作系统。它将熟悉的Windows桌面和应用扩展到了移动设备中,并为移动通讯设备提供了电话、短信等应用,是微软为手持设备推出的“移动版Windows”。
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接,能在包括移动终端、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,能够有效地简化移动终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。
蓝牙技术包括一系列开放性全球规范,蓝牙协议栈是这些规范的重要组成部分。蓝牙协议栈依照其功能可分四层:核心协议层(HCI、LMP、L2CAP、SDP);线缆替换协议层(RFCOMM);电话控制协议层(TCS-BIN);选用协议层(PPP、TCP、IP、UDP、OBEX、IrMC、WAP、WAE)。
RFCOMM协议是蓝牙协议栈的重要组成部分,许多应用框架都要使用到该协议。它在L2CAP协议之上提供了对九针RS-232串口的仿真,通过此协议可以使得传统的基于串口的应用在外设变换为蓝牙无线设备后仍可使用。
在Windows Mobile或Windows CE操作系统中,对蓝牙技术提供了比较完整的实现,为上层应用打下了坚实的基础,其架构如附图1所示。
在应用层实现蓝牙通信时有两种方式可以选择:一种通信方式是利用Winsock协议;二是利用虚拟串口(VCOM),在Windows Mobile或Windows CE中这种虚拟串口建立在RFCOMM通道上,仿真RS-232控制和数据信号的串行仿真协议,操作虚拟串口时如同操作真正的串口。
但是,虽然Windows Mobile或Windows CE操作系统提供了蓝牙技术的完整支持,虽然基于虚拟串口的编程就如同基于传统串口一样简单,但就操作系统目前的实现情况来看,针对一个蓝牙串口设备从搜索到安装获得一个有效的可操作的虚拟串口还是比较复杂的:这些安装/卸载选项分散在不同的设置项中,并且有顺序依赖,在某些情况下甚至会需要通过ActiveSync直接进行注册表项的增加或删除操作,这会带来一些系统安全方面的问题,同时也大大提高了对终端使用者的技术要求。在多数行业应用中,其终端使用者基本不可能具有这样的技术素质,所以这是完全不能接受的。
发明内容
本发明针对现有技术中存在的缺陷或不足,提供一种自动安装蓝牙串口设备的方法,该方法用于在基于Windows Mobile或Windows CE操作系统的嵌入式设备或移动终端上自动安装蓝牙串口设备。本发明创造性地实现了一步式自动安装蓝牙串口设备,极大地简化了用户的操作步骤,提高了可用性和终端用户的使用体验。
本发明的技术方案如下:
一种自动安装蓝牙串口设备的方法,用于在基于Windows Mobile或Windows CE操作系统的嵌入式设备或移动终端上自动安装蓝牙串口设备,其特征在于,包括以下步骤:
①在所述嵌入式设备或移动终端上,开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的可用蓝牙设备逐一与预设名称进行比对,直到找到匹配的预设名称,获取所述可用蓝牙设备的地址,然后配对并获取该可用蓝牙设备的RFCOMM通道号;
②搜索系统中可供使用的串口号,然后基于所述可用蓝设备的地址和RFCOMM通道号为其创建虚拟串口,并将相应的虚拟串口号返回给上层应用,表明已经成功地安装了一个安装蓝牙串口设备,直接为上层应用提供有效操作目标蓝牙串口设备的虚拟串口。
还包括步骤③,启动一个监控线程,实时监测当前蓝牙串口设备连接的有效性,一旦连接断开,则卸载相应虚拟串口并销毁当前蓝牙串口设备,同时通知上层应用,返回步骤①重新搜索可用蓝牙设备,以完成自动修复。
所述监控线程,是指创建的一个独立线程,具体包括:创建一个消息队列;调用操作系统蓝牙技术架构提供的API---RequestBluetoothNotifications来设置需要关注的蓝牙状态,当这些状态发生改变时,相应的消息就会进入消息队列;等待来自消息队列的通知;通过对通知消息的分析来确定蓝牙连接的状态。
所述连接断开的判断,包括采用延时等待的方式来处理只是暂时连接中断、但连接将恢复依然有效的情况,以避免误判。
所述启动对可用蓝牙设备的搜索,包括调用操作系统蓝牙技术架构提供的API---WSALookupServiceBegin启动一个搜索过程:它会初始化对蓝牙客户端的搜索并返回一个句柄;调用WSALookupServiceNext,它会依次获得被搜索到的可用蓝牙设备的信息,包括该设备的名称和地址;所述配对,调用BthPairRequest进行配对,配对时需要提供蓝牙设备的配对识别码PIN;采用以下方式确认可用蓝牙设备是否是一个蓝牙串口设备:通过调用BthNsLookupServiceBegin和BthNsLookupServiceNext来搜索这个蓝牙设备支持的服务,在搜索结果返回的数据中获取RFCOMM通道,如果成功获得则表明这是一个有效的蓝牙串口设备,调用BthNsLookupServiceEnd结束服务搜索;调用WSALookupServiceEnd停止整个搜索过程。
一种自动安装蓝牙串口设备的方法,适用于基于Windows Mobile或Windows CE操作系统的嵌入式设备和移动终端,其特征在于,包括如下步骤:
A.启动需要使用虚拟串口的上层应用,发起获取有效虚拟串口的请求;
B.检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,如果有则继续步骤C,否则跳至步骤D;
C.获取保存的原有虚拟串口和蓝牙串口设备的信息,并检测其有效性。如果仍然可用,则返回有效的虚拟串口号,跳至步骤F;如果原有连接已经不可用,则卸载原有虚拟串口并销毁原有蓝牙串口设备,继续步骤D;
D.开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的可用蓝牙设备逐一与预设名称进行比对,直到名称匹配,获取该可用蓝牙设备的地址,然后配对并获取该可用蓝牙设备的RFCOMM通道号;
E.搜索系统中可供使用的串口号,然后基于可用蓝牙串口设备的地址和RFCOMM通道号为其创建虚拟串口,如果成功则返回有效的虚拟串口号,并将所述地址和RFCOMM通道号信息进行保存;否则返回失败信息,结束操作;
F.启动一个监控线程,实时监测当前蓝牙设备连接的有效性,一旦连接断开,则卸载相应虚拟串口并销毁当前蓝牙设备,同时通知上层应用,返回步骤D重新搜索可用蓝牙设备。
所述蓝牙串口设备,是指所有能够通过串口操作的蓝牙客户端设备。
所述步骤B中所述检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,是通过检测自定义的注册表项或文件,和操作系统预定义的注册表项来完成的。
所述步骤D,蓝牙设备的名称和配对码被保存在注册表项或文件中,能够支持多组名称和配对码,并能够独立于实现代码修改;也能够直接编写在实现代码里不能独立于实现代码修改。
所述步骤E中所述可供使用的串口号,被保存在注册表项或文件中,能够有多个串口号,并能够独立于实现代码修改;也能够直接编写在实现代码里不能独立于实现代码修改。
所述步骤F,对蓝牙设备连接的有效性的监测是通过响应消息队列中的蓝牙状态通知实现的。
本发明的技术效果如下:
本发明提供了一种自动安装蓝牙串口设备的方法。该方法基于Windows Mobile或Windows CE操作系统提供的蓝牙无线系统的技术架构,特别是对蓝牙串口设备的支持技术,集成了从开始检测蓝牙设备到最终可以通过虚拟串口操作该蓝牙设备的各个步骤,使上层应用仅通过一个调用接口就可获得有效的虚拟串口。具体包括:对原有连接有效性的检测,可用时直接使用,不可用时将其删除以避免其对建立新连接的干扰;建立新设备连接时自动检测蓝牙功能的开启状况,自动搜索配对串口设备,自动建立虚拟串口;设备名称、配对码和串口号可通过注册表或文件进行动态配置;连接建立后可实时监控连接的有效性并进行自动修复。本发明创造性地实现了一步式自动安装蓝牙串口设备,极大地简化了用户的操作步骤,因而极大提高了产品的实用性,拓展了产品的可推广领域。
在Windows Mobile或Windows CE嵌入式设备和移动终端上,从搜索一个蓝牙串口设备到安装获得一个有效的可操作的虚拟串口的过程需要用户全程手动参与,相当繁琐而不易操作,本发明给出了一种快速安装蓝牙串口设备的方法,可以切实解决问题,提高可用性。更进一步的,本发明还可实时监控当前蓝牙串口设备的有效性,及时修复连接意外中断的情况,有效提高终端用户的使用体验。
本发明可直接为上层应用提供有效操作目标蓝牙串口设备的虚拟串口,并实时检测其有效性,完全无需用户手动参与,非常好地解决了原有操作模式的缺陷。
附图说明
图1为Windows Mobile或Windows CE中的蓝牙技术架构示意图。图中英文为本领域技术人员熟知的本领域通用技术术语。所述蓝牙技术架构是现有技术。
图2为实施本发明一种自动安装蓝牙串口设备的方法总体流程图。
具体实施方式
本发明涉及蓝牙技术和虚拟串口技术,特别是Windows Mobile或Windows CE操作系统中的蓝牙无线系统的技术架构。
1.一种自动安装蓝牙串口设备的方法,适用于基于Windows Mobile或Windows CE操作系统的嵌入式设备和移动终端,其特征在于,包括如下步骤:
A.需要使用虚拟串口的上一级应用通过某种方式(用户点击或自动运行等)被启动,发起获取有效虚拟串口的请求;
B.检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,如果有则继续步骤C,否则跳至步骤D;
C.获取保存的原有虚拟串口和蓝牙串口设备的信息,并检测其有效性。如果仍然可用,则返回有效的虚拟串口号,跳至步骤F;如果原有连接已经不可用,则卸载原有虚拟串口并销毁原有蓝牙设备,继续步骤D;
D.开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的蓝牙设备逐一与预设名称进行比对,直到找到名称匹配的设备,获取该设备的地址,然后配对并获取该设备的RFCOMM通道号;
E.搜索系统中可供使用的串口号,然后基于给定的蓝牙串口设备的地址和RFCOMM通道号为其创建虚拟串口,如果成功则返回有效的虚拟串口号,并将相关信息进行保存;否则返回失败信息,结束操作。
F.启动一个监控线程,实时监测当前蓝牙设备连接的有效性,一旦连接断开,则卸载相应虚拟串口并销毁当前蓝牙设备,同时通知上一级应用,返回步骤D重新搜索可用蓝牙设备。
所述蓝牙串口设备,是指所有可以通过串口操作的蓝牙客户端设备。所述步骤B中所述检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,是通过检测自定义的注册表项(或文件)和操作系统预定义的注册表项来完成的。所述步骤D,蓝牙设备的名称和配对码被保存在注册表项(或文件)中,可以支持多组名称和配对码,并可以独立于实现代码修改;也可以直接编写在实现代码里不能独立于实现代码修改。所述步骤E中所述可供使用的串口号,被保存在注册表项(或文件)中,可以有多个串口号,并可以独立于实现代码修改;也可以直接编写在实现代码里不能独立于实现代码修改。所述步骤F,对蓝牙设备连接的有效性的监测是通过响应消息队列中的蓝牙状态通知实现的。
在本发明的具体实施中,充分考虑了软件的模块化,仅对上层应用暴露一个调用接口和一个事件通知,但对于不按此模块化方法实施,将本发明的实现与上层应用代码混合在一起的方案,同样保有权利。
如图2所示,图2为本发明的一种自动安装蓝牙串口设备的方法的总体流程图。该流程包括:
步骤21上层应用请求可用的虚拟串口。
本步骤通过在上层应用中调用本实施方案给出的一个接口函数来实现。可以在上层应用启动(用户点击或自动启动)的时候发起调用,也可以在应用的某个功能项启动(比如在快销品应用中,点击打印按钮启动发票打印功能)的时候发起调用。
步骤22判断是否有原有连接的信息。
在收到上层查询可用的虚拟串口的请求后,首先要确定系统中是否曾经成功安装过蓝牙串口设备,这个设备是否当前仍然可用。这带来两个好处:1.如果设备仍然可以,可以快速获得一个可用设备;2.如果设备已经不可用,可以彻底删除其相关信息,保证不影响对新设备安装的影响。
本步骤采用如下方法判断是否有原有连接的信息:
1.对于由本实施方案安装的蓝牙串口设备,将其相关信息保存在注册表中(当然也可以保存在文件中),通过在注册表中查询是否有这些信息就可进行判断;
2.当1中描述的信息不存在时,我们会再直接搜索操作系统中预定义的蓝牙串口设备相关的注册表项,通过这些注册表项的存在情况来进行判断。
如果这些信息都不存在,就直接跳转至步骤26,否则顺序执行下面的步骤23。
步骤23读取原有连接的信息并检测其有效性。
直接从注册表(或文件)中读取原有连接的信息进行检测。首先,检测原来的虚拟串口是否仍然可用:通过是否可成功打开再关闭该虚拟串口来判断;如果不可用,则检测原来的蓝牙串口设备的连接是否可用,如果可用则采用步骤28的方式重新为其创建虚拟串口并更新相关的信息,否则标识原有连接失效。这个过程可以根据实际情况进行一定次数的重试。
步骤24判断原有连接是否可用。
根据步骤23的标识进行判断,如果原有连接仍然可用则直接跳转至步骤210,否则顺序执行下面的步骤25。
步骤25销毁原有连接并删除相关信息。
销毁原有连接包括两步:1.卸载原来使用的虚拟串口;2.卸载原来使用的蓝牙串口设备的蓝牙连接。删除相关信息即删除步骤22中描述的与此连接相关的注册表项(或文件)信息。
步骤26开启本地蓝牙功能并搜索可用的蓝牙设备,配对并获取RFCOMM通道。
本步骤所做的工作是本实施方案的核心。具体包括如下内容:
1.获取本地蓝牙状态,如果处于关闭状态则强制其打开。
2.调用操作系统蓝牙技术架构提供的API---WSALookupServiceBegin启动一个搜索过程:它会初始化对蓝牙客户端的搜索并返回一个句柄。
3.调用WSALookupServiceNext,会依次获得被搜索到的蓝牙设备的信息,包括该设备的名称和地址。
4.将该设备的名称与预先设定的设备名称进行比对,如果一致则调用BthPairRequest进行配对,配对时需要提供蓝牙设备的配对识别码(PIN)。由于很多蓝牙设备客户端都没有输入,因而这个配对识别码也都是预先设定的。为了灵活支持多种设备,本实施方案采用注册表(或文件)来保存一系列的设备名称和配对识别码,在进行设备搜索和配对时依次进行比对。
5.当配对成功后,还需要确认这个蓝牙设备是否是一个串口设备:本实施方案通过调用BthNsLookupServiceBegin和BthNsLookupServiceNext来搜索这个蓝牙设备支持的服务,在搜索结果返回的数据中获取RFCOMM通道,如果可成功获得则表明这是一个有效的蓝牙串口设备,调用BthNsLookupServiceEnd结束服务搜索。
6.重复上述第3步到第5步,直到获得一个有效的蓝牙串口设备连接,或者已经搜索完所有设备。调用WSALookupServiceEnd停止整个搜索过程。
步骤27判断是否有可用的蓝牙串口设备。
根据步骤26的搜索结果进行判断。如果有可用的蓝牙串口设备则继续执行下面的步骤28,否则直接跳转至步骤214。
步骤28搜索系统中可用的串口号,并为可用的蓝牙串口设备创建虚拟串口。
本步骤所做的工作也是本实施方案中比较重要的部分。具体包括如下内容:
1.搜索系统中可用的串口号包含三部分:a.本实施方案会自行定义一个注册表项(或一个配置文件)用来记录可进行尝试的串口号,搜索时首先尝试加载这些串口作为虚拟串口;b.操作系统的蓝牙技术架构也提供了一个注册表项用于记录蓝牙设备可用串口号,但并不能确保所有的嵌入式设备都已经正确定义了这个注册表项,因此本实施方案会在a失败后再尝试加载这个注册表项提供的串口作为虚拟串口;c.如果a、b均未成功,则会依次对系统中支持的所有串口号进行尝试。
2.如果1中的某次尝试成功,也就意味着相应的虚拟串口已经创建成功,本实施方案通过是否可成功打开再关闭该虚拟串口来进一步检测其有效性。
步骤29判断虚拟串口是否创建成功并可用。
通过步骤28的操作结果进行判断。如果获得了可用的虚拟串口则继续执行下面的步骤210,否则直接跳转至步骤214。
步骤210返回虚拟串口号并保存当前连接的相关信息。
将步骤23或步骤28中获取的有效虚拟串口号返回给上层应用,并保存相关的信息。
步骤211监控蓝牙串口设备的连接状态。
到达此步骤,表明已经成功地按照了一个蓝牙串口设备,并已将相应的虚拟串口号返回给上层应用。本步骤创建一个独立的线程对当前蓝牙串口设备连接的有效性进行实时监控,及时修复连接意外中断的情况,具体包括:1.创建一个消息队列;2.调用操作系统蓝牙技术架构提供的API---RequestBluetoothNotifications来设置需要关注的蓝牙状态,,当这些状态发生改变时,相应的消息就会进入消息队列;3.等待来自消息队列的通知;4.通过对通知消息的分析来确定蓝牙连接的状态。
步骤212判断连接是否有效。
通过步骤211中对蓝牙连接的通知消息的分析来判断。这个过程中,要注意判断连接中断是否只是暂时的,比如蓝牙设备偶然离开了有效连接范围,但很快又回来。本实施方案采用延时等待来处理这种情况,以避免误判。当连接依然有效时,会返回步骤211继续监控消息队列的通知;如果连接不再有效,则继续执行下面的步骤213。
步骤213通知应用停止使用当前虚拟串口并销毁当前连接。
当确认当前的蓝牙连接无效后,监控线程会通过设置预定的事件立即通知上层应用停止使用当前虚拟串口,然后通过如下工作销毁当前连接:1.卸载当前虚拟串口;2.卸载当前使用的蓝牙串口设备的蓝牙连接;3.删除步骤210中保持的与此连接相关的注册表项(或文件)信息。这些工作完成后会直接跳转回步骤26,重新建立新的蓝牙连接和虚拟串口,完成自动修复。
步骤214返回失败,并终止操作。
当搜索不到蓝牙设备,或没有可用串口,无法创建虚拟串口时就只能执行这一步骤了。值得注意的是,对蓝牙设备、虚拟串口的搜索与创建,都可进行多次尝试,以提高成功的概率。
在此指明,以上叙述有助于本领域技术人员理解本发明创造,但并非限制本发明创造的保护范围。任何没有脱离本发明创造实质内容的对以上叙述的等同替换、修饰改进和/或删繁从简而进行的实施,均落入本发明创造的保护范围。
Claims (10)
1.一种自动安装蓝牙串口设备的方法,用于在基于Windows Mobile或Windows CE操作系统的嵌入式设备或移动终端上自动安装蓝牙串口设备,其特征在于,包括以下步骤:
①在所述嵌入式设备或移动终端上,开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的可用蓝牙设备逐一与预设名称进行比对,直到找到匹配的预设名称,获取所述可用蓝牙设备的地址,然后配对并获取该可用蓝牙设备的RFCOMM通道号;
②搜索系统中可供使用的串口号,然后基于所述可用蓝设备的地址和RFCOMM通道号为其创建虚拟串口,并将相应的虚拟串口号返回给上层应用,表明已经成功地安装了一个安装蓝牙串口设备,直接为上层应用提供有效操作目标蓝牙串口设备的虚拟串口。
2.根据权利要求1所述的自动安装蓝牙串口设备的方法,其特征在于,还包括步骤③,启动一个监控线程,实时监测当前蓝牙串口设备连接的有效性,一旦连接断开,则卸载相应虚拟串口并销毁当前蓝牙串口设备,同时通知上层应用,返回步骤①重新搜索可用蓝牙设备,以完成自动修复。
3.根据权利要求2所述的自动安装蓝牙串口设备的方法,其特征在于,所述监控线程,是指创建的一个独立线程,具体包括:创建一个消息队列;调用操作系统蓝牙技术架构提供的API---RequestBluetoothNotifications来设置需要关注的蓝牙状态,当这些状态发生改变时,相应的消息就会进入消息队列;等待来自消息队列的通知;通过对通知消息的分析来确定蓝牙连接的状态。
4.根据权利要求1所述的自动安装蓝牙串口设备的方法,其特征在于,所述连接断开的判断,包括采用延时等待的方式来处理只是暂时连接中断、但连接将恢复依然有效的情况,以避免误判。
5.根据权利要求1所述的自动安装蓝牙串口设备的方法,其特征在于,所述启动对可用蓝牙设备的搜索,包括调用操作系统蓝牙技术架构提供的API---WSALookupServiceBegin启动一个搜索过程:它会初始化对蓝牙客户端的搜索并返回一个句柄;调用WSALookupServiceNext,它会依次获得被搜索到的可用蓝牙设备的信息,包括该设备的名称和地址;所述配对,调用BthPairRequest进行配对,配对时需要提供蓝牙设备的配对识别码PIN;采用以下方式确认可用蓝牙设备是否是一个蓝牙串口设备:通过调用BthNsLookupServiceBegin和BthNsLookupServiceNext来搜索这个蓝牙设备支持的服务,在搜索结果返回的数据中获取RFCOMM通道,如果成功获得则表明这是一个有效的蓝牙串口设备,调用BthNsLookupServiceEnd结束服务搜索;调用WSALookupServiceEnd停止整个搜索过程。
6.一种自动安装蓝牙串口设备的方法,适用于基于Windows Mobile或Windows CE操作系统的嵌入式设备和移动终端,其特征在于,包括如下步骤:
A.启动需要使用虚拟串口的上层应用,发起获取有效虚拟串口的请求;
B.检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,如果有则继续步骤C,否则跳至步骤D;
C.获取保存的原有虚拟串口和蓝牙串口设备的信息,并检测其有效性。如果仍然可用,则返回有效的虚拟串口号,跳至步骤F;如果原有连接已经不可用,则卸载原有虚拟串口并销毁原有蓝牙串口设备,继续步骤D;
D.开启本地蓝牙功能,启动对可用蓝牙设备的搜索:对于搜索到的可用蓝牙设备逐一与预设名称进行比对,直到名称匹配,获取该可用蓝牙设备的地址,然后配对并获取该可用蓝牙设备的RFCOMM通道号;
E.搜索系统中可供使用的串口号,然后基于可用蓝牙串口设备的地址和RFCOMM通道号为其创建虚拟串口,如果成功则返回有效的虚拟串口号,并将所述地址和RFCOMM通道号信息进行保存;否则返回失败信息,结束操作;
F.启动一个监控线程,实时监测当前蓝牙设备连接的有效性,一旦连接断开,则卸载相应虚拟串口并销毁当前蓝牙设备,同时通知上层应用,返回步骤D重新搜索可用蓝牙设备。
7.根据权利要求6所述的自动安装蓝牙串口设备的方法,其特征在于,所述蓝牙串口设备,是指所有能够通过串口操作的蓝牙客户端设备。
8.根据权利要求6所述的自动安装蓝牙串口设备的方法,其特征在于,所述步骤B中所述检测系统中是否有曾经被成功使用过的虚拟串口和蓝牙串口设备,是通过检测自定义的注册表项或文件,和操作系统预定义的注册表项来完成的。
9.根据权利要求6所述的自动安装蓝牙串口设备的方法,其特征在于,所述步骤D,蓝牙设备的名称和配对码被保存在注册表项或文件中,能够支持多组名称和配对码,并能够独立于实现代码修改;也能够直接编写在实现代码里不能独立于实现代码修改。
10.根据权利要求6所述的自动安装蓝牙串口设备的方法,其特征在于,所述步骤E中所述可供使用的串口号,被保存在注册表项或文件中,能够有多个串口号,并能够独立于实现代码修改;也能够直接编写在实现代码里不能独立于实现代码修改;所述步骤F,对蓝牙设备连接的有效性的监测是通过响应消息队列中的蓝牙状态通知实现的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102255425A CN102394942A (zh) | 2011-08-08 | 2011-08-08 | 一种自动安装蓝牙串口设备的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102255425A CN102394942A (zh) | 2011-08-08 | 2011-08-08 | 一种自动安装蓝牙串口设备的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102394942A true CN102394942A (zh) | 2012-03-28 |
Family
ID=45862145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102255425A Pending CN102394942A (zh) | 2011-08-08 | 2011-08-08 | 一种自动安装蓝牙串口设备的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102394942A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882564A (zh) * | 2012-08-23 | 2013-01-16 | 深圳雷柏科技股份有限公司 | 双模式无线通讯的智能切换方法及其设备 |
CN103188023A (zh) * | 2013-03-19 | 2013-07-03 | 天脉聚源(北京)传媒科技有限公司 | 一种测距方法、系统及应用方法 |
CN104427579A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 移动终端建立无线局域网的方法及移动终端 |
TWI565287B (zh) * | 2014-11-07 | 2017-01-01 | xiu-wen Zhang | To achieve the smart phone in the remote microphone hearing aid system and its use |
CN106354445A (zh) * | 2016-08-30 | 2017-01-25 | 福建联迪商用设备有限公司 | 基于虚拟蓝牙设备的打印方法及其系统 |
CN107613453A (zh) * | 2017-09-15 | 2018-01-19 | 湖南恒茂高科股份有限公司 | 控制方法及通信系统 |
CN107786968A (zh) * | 2017-09-20 | 2018-03-09 | 陕西法士特齿轮有限责任公司 | 一种pc蓝牙模块与外部蓝牙之间可靠通讯方法 |
CN108282766A (zh) * | 2017-12-27 | 2018-07-13 | 武汉长江通信智联技术有限公司 | 一种工业串口转蓝牙调试工具方法 |
CN109634878A (zh) * | 2018-12-07 | 2019-04-16 | 用友网络科技股份有限公司 | 监控方法、监控装置、服务器、终端和可读存储介质 |
CN110244983A (zh) * | 2019-05-30 | 2019-09-17 | 百富计算机技术(深圳)有限公司 | 固定串口号的方法、终端设备及存储介质 |
CN113326223A (zh) * | 2021-06-17 | 2021-08-31 | 恒安嘉新(北京)科技股份公司 | 一种信息交互、串口配置方法、装置、设备和介质 |
CN113965917A (zh) * | 2021-10-19 | 2022-01-21 | 深圳市元征科技股份有限公司 | 通信方法、装置及终端设备 |
CN116828435A (zh) * | 2023-08-30 | 2023-09-29 | 北京柚果星空科技有限公司 | 一种软蓝牙网关的设备转发方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013902A (zh) * | 2005-12-30 | 2007-08-08 | 得逻辑公司 | 通过单个虚拟端口的蓝牙通信 |
CN101719774A (zh) * | 2009-12-17 | 2010-06-02 | 东南大学 | 一种基于融合通信终端蓝牙串口实现的方法 |
CN102118186A (zh) * | 2009-12-31 | 2011-07-06 | 鼎亿数码科技(上海)有限公司 | 蓝牙设备连接方法 |
-
2011
- 2011-08-08 CN CN2011102255425A patent/CN102394942A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013902A (zh) * | 2005-12-30 | 2007-08-08 | 得逻辑公司 | 通过单个虚拟端口的蓝牙通信 |
CN101719774A (zh) * | 2009-12-17 | 2010-06-02 | 东南大学 | 一种基于融合通信终端蓝牙串口实现的方法 |
CN102118186A (zh) * | 2009-12-31 | 2011-07-06 | 鼎亿数码科技(上海)有限公司 | 蓝牙设备连接方法 |
Non-Patent Citations (1)
Title |
---|
陈志鸿: "《中国优秀硕士论文》", 26 April 2007, article "蓝牙串口仿真协议的研究与实现" * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882564B (zh) * | 2012-08-23 | 2014-10-29 | 深圳雷柏科技股份有限公司 | 双模式无线通讯的智能切换方法及其设备 |
CN102882564A (zh) * | 2012-08-23 | 2013-01-16 | 深圳雷柏科技股份有限公司 | 双模式无线通讯的智能切换方法及其设备 |
CN103188023A (zh) * | 2013-03-19 | 2013-07-03 | 天脉聚源(北京)传媒科技有限公司 | 一种测距方法、系统及应用方法 |
CN104427579A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 移动终端建立无线局域网的方法及移动终端 |
TWI565287B (zh) * | 2014-11-07 | 2017-01-01 | xiu-wen Zhang | To achieve the smart phone in the remote microphone hearing aid system and its use |
CN106354445B (zh) * | 2016-08-30 | 2019-10-22 | 福建联迪商用设备有限公司 | 基于虚拟蓝牙设备的打印方法及其系统 |
CN106354445A (zh) * | 2016-08-30 | 2017-01-25 | 福建联迪商用设备有限公司 | 基于虚拟蓝牙设备的打印方法及其系统 |
CN107613453A (zh) * | 2017-09-15 | 2018-01-19 | 湖南恒茂高科股份有限公司 | 控制方法及通信系统 |
CN107786968A (zh) * | 2017-09-20 | 2018-03-09 | 陕西法士特齿轮有限责任公司 | 一种pc蓝牙模块与外部蓝牙之间可靠通讯方法 |
CN108282766A (zh) * | 2017-12-27 | 2018-07-13 | 武汉长江通信智联技术有限公司 | 一种工业串口转蓝牙调试工具方法 |
CN109634878A (zh) * | 2018-12-07 | 2019-04-16 | 用友网络科技股份有限公司 | 监控方法、监控装置、服务器、终端和可读存储介质 |
CN110244983A (zh) * | 2019-05-30 | 2019-09-17 | 百富计算机技术(深圳)有限公司 | 固定串口号的方法、终端设备及存储介质 |
CN110244983B (zh) * | 2019-05-30 | 2022-04-12 | 百富计算机技术(深圳)有限公司 | 固定串口号的方法、终端设备及存储介质 |
CN113326223A (zh) * | 2021-06-17 | 2021-08-31 | 恒安嘉新(北京)科技股份公司 | 一种信息交互、串口配置方法、装置、设备和介质 |
CN113965917A (zh) * | 2021-10-19 | 2022-01-21 | 深圳市元征科技股份有限公司 | 通信方法、装置及终端设备 |
CN113965917B (zh) * | 2021-10-19 | 2024-04-02 | 深圳市元征科技股份有限公司 | 通信方法、装置及终端设备 |
CN116828435A (zh) * | 2023-08-30 | 2023-09-29 | 北京柚果星空科技有限公司 | 一种软蓝牙网关的设备转发方法及系统 |
CN116828435B (zh) * | 2023-08-30 | 2023-11-14 | 北京柚果星空科技有限公司 | 一种软蓝牙网关的设备转发方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102394942A (zh) | 一种自动安装蓝牙串口设备的方法 | |
CN106095458B (zh) | 一种应用程序中插件的管理方法和装置 | |
CN100472516C (zh) | 终端的配置 | |
CN104376263B (zh) | 应用程序行为拦截的方法和装置 | |
CN101231596B (zh) | 用于提供软件的方法和设备 | |
CN101166043B (zh) | 无线通信装置及无线通信方法 | |
US20090017812A1 (en) | Method and system for restoring user settings after over-the-air update of mobile electronic device software | |
US7986947B2 (en) | Device management network with support for roaming | |
KR100645735B1 (ko) | 모바일 플랫폼의 컨텐츠 오동작 통신 검출 장치 및 방법 | |
CN101390421A (zh) | 用于将用户界面组件下载到无线装置的系统和方法 | |
WO2006071447A2 (en) | Management of persistent software applications | |
TW200301049A (en) | Installing software on a mobile computing device using the rollback and security features of a configuration manager | |
CN102394941A (zh) | 数据下载中的用户确认 | |
EP1851908A1 (en) | Network security enhancement methods, apparatuses, systems, media, signals and computer programs | |
CN109697359A (zh) | 一种消息提醒方法、装置、存储介质及电子设备 | |
FI109951B (fi) | Ohjain ja sen ohjausmenetelmä | |
AU2005218288A1 (en) | Execution of unverified programs in a wireless device operating environment | |
CN101635726B (zh) | C/s架构中服务端和客户端的业务执行方法及系统 | |
CN105493098B (zh) | 终端装置和用于保护终端装置的方法、以及终端管理服务器 | |
CN103916846A (zh) | 一种终端应用的更新方法、系统及设备 | |
KR101119432B1 (ko) | 디바이스상의 레지스트리-기반 자동 설치 및 구성요소처리를 위한 시스템 | |
US20070263614A1 (en) | IP telephone system | |
CN108196997B (zh) | 一种用于对应用进行动态控制的装置、方法以及移动终端 | |
JP2003244065A (ja) | プログラム起動方法、サーバ装置、端末装置 | |
WO2013171745A1 (en) | Anti-malware detection and removal systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120328 |