发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种蓝牙通信方法、系统以及一种电子设备,用于解决现有技术中基于linux系统的平台不同时兼容经典和低功耗蓝牙设备。
为实现上述目的及其他相关目的,本发明提供一种蓝牙通信方法,应用于基于linux系统的电子设备与标准蓝牙设备和低功耗蓝牙设备的建立蓝牙通信的过程中,所述蓝牙通信方法包括:基于linux系统的电子设备启动蓝牙扫描,获取扫描到的各蓝牙设备的类型;根据获取的各蓝牙设备的类型将各所述蓝牙设备的设备信息保存至与各蓝牙设备的类型对应的预先设置的类型数组内;在待接入的所述蓝牙设备为标准蓝牙设备时,进行蓝牙配对认证,获取所述标准蓝牙设备的设备信息并显示各标准蓝牙设备的设备状态,选择所要连接的标准蓝牙设备建立蓝牙通信并更新所连接的标准蓝牙设备的设备状态;在待接入的所述蓝牙设备为低功耗蓝牙设备时,获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态。
优选地,所述获取所述标准蓝牙设备的设备信息具体包括:在蓝牙配对认证成功后,根据触发的认证完成事件,从所述标准蓝牙设备所对应的类型数组内获取所述标准蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中。
优选地,在连接所述标准蓝牙设备之后,所述更新所连接的标准蓝牙设备的设备状态具体包括:根据接收到的预设事件,更新所述设备表并根据更新后的所述设备表更新所连接的标准蓝牙设备的设备状态。
优选地,获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态具体包括:根据接收到的预设事件,自动建立蓝牙通信,从所述低功耗蓝牙设备所对应的类型数组内获取所述低功耗蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中,同时更新已连接的低功耗蓝牙设备的设备状态。
优选地,所述设备信息包括:蓝牙设备名称、蓝牙设备ID、生产厂商ID和/或设备功率中的至少一个。
为实现上述目的,本发明还提供一种蓝牙通信系统,应用于基于linux系统的电子设备中,所述蓝牙通信方法系统包括:类型数组模块,包括用于存储蓝牙设备的设备信息的类型数组;获取模块,用于在启动蓝牙扫描并获取扫描到的各蓝牙设备的类型;保存模块,与所述类型数组模块和所述获取模块相连,用于根据获取的各蓝牙设备的类型将各所述蓝牙设备的设备信息保存至与各蓝牙设备的类型对应的预先设置的类型数组内;标准蓝牙设备处理模块,与所述保存模块相连,在待接入的所述蓝牙设备为标准蓝牙设备时,用于进行蓝牙配对认证,获取所述标准蓝牙设备的设备信息并显示各标准蓝牙设备的设备状态,选择所要连接的标准蓝牙设备建立蓝牙通信并更新所连接的标准蓝牙设备的设备状态;低功耗蓝牙设备处理模块,与所述保存模块相连,在待接入的所述蓝牙设备为低功耗蓝牙设备时,用于获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态。
优选地,所述标准蓝牙设备处理模块还用于在蓝牙配对认证成功后,根据触发的认证完成事件,从所述标准蓝牙设备所对应的类型数组内获取所述标准蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中。
优选地,所述标准蓝牙设备处理模块还用于根据接收到的预设事件,更新所述设备表并根据更新后的所述设备表更新所连接的标准蓝牙设备的设备状态。
优选地,所述低功耗蓝牙设备处理模块还用于根据接收到的预设事件,自动建立蓝牙通信,从所述低功耗蓝牙设备所对应的类型数组内获取所述低功耗蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中,同时更新已连接的低功耗蓝牙设备的设备状态。
为实现上述目的,本发明还提供一种电子设备,所述电子设备内包含如上所述的蓝牙通信系统。
如上所述,本发明的一种蓝牙通信方法、系统以及一种电子设备,具有以下有益效果:
本发明通过根据蓝牙设备的类型,建立用于保存不同类型的蓝牙设备的设备信息的不同类型数组,再分别处理不同类型的蓝牙设备的蓝牙建立过程,可以在linux系统下,使电子设备能兼容经典(标准)、低功耗蓝牙设备并进行数据通信。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明的目的在于提供一种蓝牙通信方法、系统以及一种电子设备,用于解决现有技术中基于linux系统的平台不同时兼容经典和低功耗蓝牙设备。以下将详细阐述本发明的一种蓝牙通信方法、系统以及一种电子设备的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种蓝牙通信方法、系统以及一种电子设备。
本实施例提供一种蓝牙通信方法,应用于基于linux系统的电子设备与标准蓝牙设备和低功耗蓝牙设备的建立蓝牙通信的过程中。其中所述基于linux系统的电子设备可以为任意基于linux系统的电子产品,例如,为基于linux系统的路由器。标准蓝牙设备和低功耗蓝牙设备例如为血糖仪、血压计等医疗电子设备。低功耗蓝牙设备是自动进行扫描连接,标准蓝牙设备(一般也称为经典蓝牙设备)则需要手动选择对应的设备进行配对、连接。
具体地,如图1所示,所述蓝牙通信方法包括以下步骤。
步骤S11,基于linux系统的电子设备启动蓝牙扫描,获取扫描到的各蓝牙设备的类型。
步骤S12,根据获取的各蓝牙设备的类型将各所述蓝牙设备的设备信息保存至与各蓝牙设备的类型对应的预先设置的类型数组内。
步骤S13,在待接入的所述蓝牙设备为标准蓝牙设备时,进行蓝牙配对认证,获取所述标准蓝牙设备的设备信息并显示各标准蓝牙设备的设备状态,选择所要连接的标准蓝牙设备建立蓝牙通信并更新所连接的标准蓝牙设备的设备状态。
步骤S14,在待接入的所述蓝牙设备为低功耗蓝牙设备时,获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态。
以下对上述步骤S11至步骤S14进行详细说明。
步骤S11,基于linux系统的电子设备启动蓝牙扫描,获取扫描到的各蓝牙设备的类型,从而确定蓝牙设备是标准蓝牙设备,还是低功耗蓝牙设备。
步骤S12,根据获取的各蓝牙设备的类型将各所述蓝牙设备的设备信息保存至与各蓝牙设备的类型对应的预先设置的类型数组内。要兼容标准蓝牙设备和低功耗蓝牙设备这两个类型的蓝牙设备,在本实施例中,预先设置了两个类型的数组:标准蓝牙结构体数组和低功耗蓝牙结构体数组,通过标准蓝牙结构体数组和低功耗蓝牙结构体数组分别保存标准蓝牙设备的设备信息和低功耗蓝牙设备的设备信息。
其中,在本实施例中,所述设备信息包括:蓝牙设备名称、蓝牙设备ID、生产厂商ID和/或设备功率中的一个或几个组合。
步骤S13,在待接入的所述蓝牙设备为标准蓝牙设备时,进行蓝牙配对认证,获取所述标准蓝牙设备的设备信息并显示各标准蓝牙设备的设备状态,选择所要连接的标准蓝牙设备建立蓝牙通信并更新所连接的标准蓝牙设备的设备状态。
其中,在本实施例中,所述获取所述标准蓝牙设备的设备信息具体包括:在蓝牙配对认证成功后,根据触发的认证完成事件,从所述标准蓝牙设备所对应的类型数组内获取所述标准蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中。
更进一步地,在本实施例中,在连接所述标准蓝牙设备之后,所述更新所连接的标准蓝牙设备的设备状态具体包括:根据接收到的预设事件,更新所述设备表并根据更新后的所述设备表更新所连接的标准蓝牙设备的设备状态。
具体地,在本实施例中,基于linux系统的电子设备接入标准(经典)蓝牙设备的过程如下:
1)基于linux系统的电子设备启动蓝牙扫描进程,调用扫描新设备函数,在发现蓝牙设备为标准蓝牙设备时,初始化用来保存新发现的标准蓝牙设备的设备信息的标准蓝牙结构体数组,在本实施例中,例如定义为edr_disc()。然后可以注册一个标准蓝牙设备执行函数,例如定义为edr(),该执行函数在扫描完成后执行。
2)执行函数edr(),保存新的标准蓝牙设备的设备信息至数组edr_disc()中。
3)蓝牙设备认证过程,在蓝牙配对认证成功后,收到AUTH_CMPL(认证完成)事件,与标准蓝牙结构体数组保存的数据进行判断,从而获取蓝牙设备名称、蓝牙设备ID、生产厂商ID和设备功率等,将此设备信息保存在一个设备表中,更新此设备状态为未连接。
4)选择待选设备,启动连接、数据处理进程。由于标准蓝牙设备的类型设备不是自动进行连接,需要选择对应的设备启动该进程,建立通道进行数据的处理。
5)接收预设的open事件,与标准蓝牙结构体数组保存的数据进行判断,获取设备其他信息并更新设备表,且设置该设备状态为已连接。
步骤S14,在待接入的所述蓝牙设备为低功耗蓝牙设备时,获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态。
其中,在本实施例中,获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态具体包括:根据接收到的预设事件,自动建立蓝牙通信,从所述低功耗蓝牙设备所对应的类型数组内获取所述低功耗蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中,同时更新已连接的低功耗蓝牙设备的设备状态。
具体地,在本实施例中,基于linux系统的电子设备接入低功耗蓝牙设备的过程如下:
1)基于linux系统的电子设备启动蓝牙扫描进程,调用扫描新设备函数,在发现蓝牙设备为低功耗蓝牙设备时,初始化用来保存新发现的低功耗蓝牙设备的设备信息的低功耗蓝牙结构体数组,在本实施例中,例如定义为ble_disc()。然后可以注册一个低功耗蓝牙设备执行函数,例如定义为ble(),该函数在扫描完成后执行。
2)执行函数ble(),保存新的低功耗蓝牙设备的设备信息至数组ble_disc()中。
3)接收预设的open事件,读取低功耗蓝牙设备其中的设备地址信息,与低功耗蓝牙结构体数组保存的数据进行判断,从而获取蓝牙设备名称、蓝牙设备ID、生产厂商ID和设备功率等,并将此设备信息保存在设备表中,同时更新设备的状态为已连接。
为实现上述蓝牙通信方法,本实施例对应提供提供一种蓝牙通信系统,应用于基于linux系统的电子设备中,具体地,如图2所示,所述蓝牙通信系统1包括:类型数组模块11,获取模块12,保存模块13,标准蓝牙设备处理模块14以及低功耗蓝牙设备处理模块15。
所述类型数组模块11包括用于存储蓝牙设备的设备信息的类型数组。要兼容标准蓝牙设备和低功耗蓝牙设备这两个类型的蓝牙设备,在本实施例中,在所述类型数组模块11中预先设置了两个类型的数组:标准蓝牙结构体数组和低功耗蓝牙结构体数组,通过标准蓝牙结构体数组和低功耗蓝牙结构体数组分别保存标准蓝牙设备的设备信息和低功耗蓝牙设备的设备信息。
所述获取模块12用于在启动蓝牙扫描并获取扫描到的各蓝牙设备的类型,从而确定蓝牙设备是标准蓝牙设备,还是低功耗蓝牙设备。
所述保存模块13与所述类型数组模块11和所述获取模块12相连,用于根据获取的各蓝牙设备的类型将各所述蓝牙设备的设备信息保存至与各蓝牙设备的类型对应的预先设置的类型数组内。
其中,在本实施例中,所述设备信息包括:蓝牙设备名称、蓝牙设备ID、生产厂商ID和/或设备功率中的一个或几个组合。
所述标准蓝牙设备处理模块14与所述保存模块13相连,在待接入的所述蓝牙设备为标准蓝牙设备时,用于进行蓝牙配对认证,获取所述标准蓝牙设备的设备信息并显示各标准蓝牙设备的设备状态,选择所要连接的标准蓝牙设备建立蓝牙通信并更新所连接的标准蓝牙设备的设备状态。
其中,在本实施例中,所述标准蓝牙设备处理模块14还用于在蓝牙配对认证成功后,根据触发的认证完成事件,从所述标准蓝牙设备所对应的类型数组内获取所述标准蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中。
更进一步地,在本实施例中,所述标准蓝牙设备处理模块14还用于根据接收到的预设事件,更新所述设备表并根据更新后的所述设备表更新所连接的标准蓝牙设备的设备状态。
具体地,在本实施例中,所述标准蓝牙设备处理模块14处理接入标准(经典)蓝牙设备的过程如下:
1)基于linux系统的电子设备启动蓝牙扫描进程,调用扫描新设备函数,在发现蓝牙设备为标准蓝牙设备时,初始化用来保存新发现的标准蓝牙设备的设备信息的标准蓝牙结构体数组,在本实施例中,例如定义为edr_disc()。然后可以注册一个标准蓝牙设备执行函数,例如定义为edr(),该执行函数在扫描完成后执行。
2)执行函数edr(),保存新的标准蓝牙设备的设备信息至数组edr_disc()中。
3)蓝牙设备认证过程,在蓝牙配对认证成功后,收到AUTH_CMPL(认证完成)事件,与标准蓝牙结构体数组保存的数据进行判断,从而获取蓝牙设备名称、蓝牙设备ID、生产厂商ID和设备功率等,将此设备信息保存在一个设备表中,更新此设备状态为未连接。
4)选择待选设备,启动连接、数据处理进程。由于标准蓝牙设备的类型设备不是自动进行连接,需要选择对应的设备启动该进程,建立通道进行数据的处理。
5)接收预设的open事件,与标准蓝牙结构体数组保存的数据进行判断,获取设备其他信息并更新设备表,且设置该设备状态为已连接。
所述低功耗蓝牙设备处理模块15与所述保存模块13相连,在待接入的所述蓝牙设备为低功耗蓝牙设备时,用于获取所述低功耗蓝牙设备的设备信息、自动建立蓝牙通信并更新已连接的低功耗蓝牙设备的设备状态。
其中,在本实施例中,所述低功耗蓝牙设备处理模块15还用于根据接收到的预设事件,自动建立蓝牙通信,从所述低功耗蓝牙设备所对应的类型数组内获取所述低功耗蓝牙设备的设备信息并将所述设备信息保存至预设的设备表中,同时更新已连接的低功耗蓝牙设备的设备状态。
具体地,在本实施例中,基于linux系统的电子设备接入低功耗蓝牙设备的过程如下:
1)基于linux系统的电子设备启动蓝牙扫描进程,调用扫描新设备函数,在发现蓝牙设备为低功耗蓝牙设备时,初始化用来保存新发现的低功耗蓝牙设备的设备信息的低功耗蓝牙结构体数组,在本实施例中,例如定义为ble_disc()。然后可以注册一个低功耗蓝牙设备执行函数,例如定义为ble(),该函数在扫描完成后执行。
2)执行函数ble(),保存新的低功耗蓝牙设备的设备信息至数组ble_disc()中。
3)接收预设的open事件,读取低功耗蓝牙设备其中的设备地址信息,与低功耗蓝牙结构体数组保存的数据进行判断,从而获取蓝牙设备名称、蓝牙设备ID、生产厂商ID和设备功率等,并将此设备信息保存在设备表中,同时更新设备的状态为已连接。
此外,如图3所示,本实施例还提供一种电子设备2,所述电子设备2内包含如上所述的蓝牙通信系统1,由于上述蓝牙通信系统1能兼容经典(标准)、低功耗蓝牙设备并进行数据通信,这样,经典、低功耗蓝牙设备都能够与电子设备2(例如为智能路由器)进行通信。例如,经典、低功耗蓝牙设备为健康医疗设备时,健康医疗设备可以通过所述电子设备2(例如为智能路由器)将健康医疗设备的数据传输到云端,为智慧医疗提供可靠的个人健康档案。
综上所述,本发明通过根据蓝牙设备的类型,建立用于保存不同类型的蓝牙设备的设备信息的不同类型数组,再分别处理不同类型的蓝牙设备的蓝牙建立过程,可以在linux系统下,使电子设备能兼容经典(标准)、低功耗蓝牙设备并进行数据通信。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。