管理能够与iOS设备进行通信的外部蓝牙设备的方法及装置与流程

文档序号:17011416发布日期:2019-03-02 02:15阅读:232来源:国知局
管理能够与iOS设备进行通信的外部蓝牙设备的方法及装置与流程

本发明涉及计算机软件开发领域,尤其涉及管理能够与ios设备进行通信的外部蓝牙设备的方法及装置。



背景技术:

现有的ios设备所使用的蓝牙设备管理应用程序(app),通常直接调用ios自带的蓝牙库,在ios设备上的蓝牙设备与外部的外部蓝牙设备(例如,蓝牙体重秤、蓝牙牙刷等)之间进行数据通信。

然而,在同时接入多个不同的外部蓝牙设备(例如,同时支持蓝牙体重秤和蓝牙牙刷)时,因为不同外部蓝牙设备的具体通信协议(例如,包括具体的控制指令、具体的设备信息)不同,使用ios自带的蓝牙库管理每个外部蓝牙设备时通常都需要调用多个不同的函数(例如,公开号为cn105188023a、发明名称为《一种蓝牙通讯方法和通讯装置》的专利申请文件中记载的scanforperipheralswithservices、connectperipheral、discoverservices、peripheraldiddiscoverservices、characteristicuuidsforservice、diddiscovercharacteristicforservice等)。而且,在返回对应于某个具体外部蓝牙设备的设备信息或下发针对某个具体外部蓝牙设备的指令时,通常需要开发人员自己编写函数解析该设备信息中所包含的各个具体字段及字段值,处理起来非常繁琐。

因此,需要提出新的技术方案,以方便地管理多种不同的外部蓝牙设备。



技术实现要素:

根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的方法,包括:

搜寻与ios设备中的蓝牙设备能够进行通信的外部蓝牙设备,保存搜寻到的或经更新的外部蓝牙设备的设备信息;

订阅搜寻到的或经更新的外部蓝牙设备的设备信息至用户定义的外部蓝牙设备实例,使用外部蓝牙设备实例接收和转发订阅的设备信息及针对搜寻到的外部蓝牙设备的用户控制指令;

接收和显示经转发的订阅的设备信息,接收、显示和转发用户控制指令,

其中,外部蓝牙设备包括各种不同类型和/或型号的蓝牙设备,每个外部蓝牙设备实例对应于具有相同类型和/或相同型号的、具有相同设备信息集合和相同用户控制指令集合的蓝牙设备所对应的用户定义的外部蓝牙设备类的一个实例。

根据本发明的方法,基于外部蓝牙设备的mac地址来区分外部蓝牙设备及外部蓝牙设备的设备信息。

根据本发明的方法,其外部蓝牙设备类或外部蓝牙设备实例实现了用于实现以下操作的方法:

将外部蓝牙设备类或外部蓝牙设备实例自身注册到蓝牙引擎模块,以实现针对搜寻到的或经更新的外部蓝牙设备的设备信息的订阅和针对搜寻到的外部蓝牙设备的用户控制指令的接收;

使用服务字典,告知蓝牙引擎模块需要监听的设备信息和用户控制指令;

实现针对蓝牙设备与各个外部蓝牙设备之间的各个连接的连接状态的监听、针对各个外部蓝牙设备所发送的广播数据的监听、针对各个外部蓝牙设备所发送的非广播数据的监听,以监听设备信息;

经由蓝牙引擎模块所提供的写数据接口将用户控制指令转发给蓝牙引擎模块。

根据本发明的方法,在外部蓝牙设备实例的初始化方法中调用用于实现将外部蓝牙设备实例自身注册到蓝牙引擎模块的操作的方法。

根据本发明的方法,其外部蓝牙设备包括下列中的至少一种中的至少一个:蓝牙体重秤、蓝牙牙刷、蓝牙耳机、蓝牙鼠标、蓝牙温度计、蓝牙湿度计、蓝牙气压计、蓝牙体重计、蓝牙血压计。

根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置,包括:

蓝牙引擎模块,用于搜寻与ios设备中的蓝牙设备能够进行通信的外部蓝牙设备,保存搜寻到的或经更新的外部蓝牙设备的设备信息;

外部蓝牙设备管理模块,用于向蓝牙引擎模块订阅搜寻到的或经更新的外部蓝牙设备的设备信息至用户定义的外部蓝牙设备实例,使用外部蓝牙设备实例接收和转发订阅的设备信息及针对搜寻到的外部蓝牙设备的用户控制指令;

app模块,用于接收和显示经转发的订阅的设备信息,接收、显示和转发用户控制指令,

其中,外部蓝牙设备包括各种不同类型和/或型号的蓝牙设备,每个外部蓝牙设备实例对应于具有相同类型和/或相同型号的、具有相同设备信息集合和相同用户控制指令集合的蓝牙设备所对应的用户定义的外部蓝牙设备类的一个实例。

根据本发明的装置,基于外部蓝牙设备的mac地址来区分外部蓝牙设备及外部蓝牙设备的设备信息。

根据本发明的装置,其外部蓝牙设备类或外部蓝牙设备实例实现了用于实现以下操作的方法:

将外部蓝牙设备类或外部蓝牙设备实例自身注册到蓝牙引擎模块,以实现针对搜寻到的或经更新的外部蓝牙设备的设备信息的订阅和针对搜寻到的外部蓝牙设备的用户控制指令的接收;

使用服务字典,告知蓝牙引擎模块需要监听的设备信息和用户控制指令;

实现针对蓝牙设备与各个外部蓝牙设备之间的各个连接的连接状态的监听、针对各个外部蓝牙设备所发送的广播数据的监听、针对各个外部蓝牙设备所发送的非广播数据的监听,以监听设备信息;

经由蓝牙引擎模块所提供的写数据接口将用户控制指令转发给蓝牙引擎模块。

根据本发明的装置,在外部蓝牙设备实例的初始化方法中调用用于实现将外部蓝牙设备实例自身注册到蓝牙引擎模块的操作的方法,

其中,装置设置在ios设备之中。

根据本发明的装置,其外部蓝牙设备包括下列中的至少一种中的至少一个:蓝牙体重秤、蓝牙牙刷、蓝牙耳机、蓝牙鼠标、蓝牙温度计、蓝牙湿度计、蓝牙气压计、蓝牙体重计、蓝牙血压计。

根据本发明的上述技术方案,能够自动返回对应于不同外部蓝牙设备的设备信息或下发针对不同外部蓝牙设备的指令,逻辑处理操作直观,能够方便地在ios系统下管理(接入的)多种不同的外部蓝牙设备。

附图说明

并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与相关的文字描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。

图1示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的方法的示意流程图。

图2示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置的示意框图。

图3示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置的一个实例的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的方法的示意流程图。

如图1所示,根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的方法,包括:

步骤s102:搜寻与ios设备中的蓝牙设备能够进行通信的外部蓝牙设备,保存搜寻到的或经更新的外部蓝牙设备的设备信息;

步骤s104:订阅搜寻到的或经更新的外部蓝牙设备的设备信息至用户定义的外部蓝牙设备实例,使用外部蓝牙设备实例接收和转发订阅的设备信息及针对搜寻到的外部蓝牙设备的用户控制指令;

步骤s106:接收和显示经转发的订阅的设备信息,接收、显示和转发用户控制指令,

其中,外部蓝牙设备包括各种不同类型和/或型号的蓝牙设备,每个外部蓝牙设备实例对应于具有相同类型和/或相同型号的、具有相同设备信息集合和相同用户控制指令集合的蓝牙设备所对应的用户定义的外部蓝牙设备类的一个实例。

可选地,基于外部蓝牙设备的mac地址来区分外部蓝牙设备及外部蓝牙设备的设备信息。

可选地,外部蓝牙设备类或外部蓝牙设备实例实现了用于实现以下操作的方法(函数或协议):

将外部蓝牙设备类或外部蓝牙设备实例自身注册到蓝牙引擎模块,以实现针对搜寻到的或经更新的外部蓝牙设备的设备信息的订阅和针对搜寻到的外部蓝牙设备的用户控制指令的接收;

使用服务字典,告知蓝牙引擎模块需要监听的设备信息和用户控制指令;

实现针对蓝牙设备与各个外部蓝牙设备之间的各个连接的连接状态的监听、针对各个外部蓝牙设备所发送的广播数据的监听、针对各个外部蓝牙设备所发送的非广播数据的监听,以监听设备信息;

经由蓝牙引擎模块所提供的写数据接口将用户控制指令转发给蓝牙引擎模块。

即,外部蓝牙设备实例(即,图3中的设备类a-设备类d)将自己注册到逻辑引擎(或设备管理类)后,只要实现了设备协议(蓝牙协议)中的相关接口(函数),就可以监听到设备数据变化,通过逻辑引擎提供的命令下发接口,可以轻松地控制设备。

例如,本领域技术人员可以使用xcode编写以下oc源代码来实现上述方法(函数或协议):

为了清楚起见,没有给出各个方法的具体实现代码,不影响对本发明的技术方案的理解。

1、导入设备接入协议(即,图2中的蓝牙引擎模块201所对应的实例所属的oc类的)头文件和设备管理类(即,图2中的外部蓝牙设备管理模块203中的外部蓝牙设备实例所属的oc类的)头文件

#import"dlbtdevicejoinprotocol.h"

#import"dlbtdevicemanager.h"

2、实现协议中的方法

其中,nsdictionary对应用于实现上述服务字典的数据结构。

可选地,在外部蓝牙设备实例的初始化方法中调用用于实现将外部蓝牙设备实例自身注册到蓝牙引擎模块的操作的方法。

可选地,外部蓝牙设备包括下列中的至少一种中的至少一个:蓝牙体重秤、蓝牙牙刷、蓝牙耳机、蓝牙鼠标、蓝牙温度计、蓝牙湿度计、蓝牙气压计、蓝牙体重计、蓝牙血压计。

图2示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置200的示意框图。

如图2所示,根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置200,包括:

蓝牙引擎模块201,用于搜寻与ios设备中的蓝牙设备能够进行通信的外部蓝牙设备,保存搜寻到的或经更新的外部蓝牙设备的设备信息;

外部蓝牙设备管理模块203,用于向蓝牙引擎模块订阅搜寻到的或经更新的外部蓝牙设备的设备信息至用户定义的外部蓝牙设备实例,使用外部蓝牙设备实例接收和转发订阅的设备信息及针对搜寻到的外部蓝牙设备的用户控制指令;

app模块205,用于接收和显示经转发的订阅的设备信息,接收、显示和转发用户控制指令,

其中,外部蓝牙设备包括各种不同类型和/或型号的蓝牙设备,每个外部蓝牙设备实例对应于具有相同类型和/或相同型号的、具有相同设备信息集合和相同用户控制指令集合的蓝牙设备所对应的用户定义的外部蓝牙设备类的一个实例。

可选地,基于外部蓝牙设备的mac地址来区分外部蓝牙设备及外部蓝牙设备的设备信息。

可选地,外部蓝牙设备类或外部蓝牙设备实例实现了用于实现以下操作的方法(函数或协议):

将外部蓝牙设备类或外部蓝牙设备实例自身注册到蓝牙引擎模块,以实现针对搜寻到的或经更新的外部蓝牙设备的设备信息的订阅和针对搜寻到的外部蓝牙设备的用户控制指令的接收;

使用服务字典,告知蓝牙引擎模块需要监听的设备信息和用户控制指令;

实现针对蓝牙设备与各个外部蓝牙设备之间的各个连接的连接状态的监听、针对各个外部蓝牙设备所发送的广播数据的监听、针对各个外部蓝牙设备所发送的非广播数据的监听,以监听设备信息;

经由蓝牙引擎模块所提供的写数据接口将用户控制指令转发给蓝牙引擎模块。

可选地,在外部蓝牙设备实例的初始化方法中调用用于实现将外部蓝牙设备实例自身注册到蓝牙引擎模块的操作的方法,

其中,装置200设置在ios设备之中。

可选地,外部蓝牙设备包括下列中的至少一种中的至少一个:蓝牙体重秤、蓝牙牙刷、蓝牙耳机、蓝牙鼠标、蓝牙温度计、蓝牙湿度计、蓝牙气压计、蓝牙体重计、蓝牙血压计。

为了使本领域技术人员更清楚地理解根据本发明的上述技术方案,下面将结合具体实施例进行说明。

图3示例性地示出了根据本发明的管理能够与ios设备进行通信的外部蓝牙设备的装置200的一个实例的示意图。

如图3所示,该实例主要包含蓝牙引擎(即,上述蓝牙引擎模块201)、设备类a-设备类d(即,上述外部蓝牙设备管理模块203所使用的外部蓝牙设备实例)和app。设备类a-设备类d与设备a-设备d一一对应,设备a-设备d通过蓝牙协议上报参数(即,上述设备信息)。

蓝牙引擎负责搜寻(外部)蓝牙设备,找到设备后将设备与用户信息绑定。将设备上报的信息和设备蓝牙连接状态发送给蓝牙设备类,将设备类下发的命令(即,上述用户控制指令)发送给蓝牙设备。

例如,蓝牙体重秤的参数包括体重值;蓝牙牙刷的参数包括开关状态、震动频率;蓝牙耳机的参数包括开关状态、音量大小。针对蓝牙体重秤的命令包括发送体重值的命令;针对蓝牙牙刷的命令包括开关命令、调整震动频率的命令;针对蓝牙耳机的命令包括开关命令、调整音量大小的命令。

例如,蓝牙引擎1)可以将各种设备状态分发给对应的蓝牙设备类,蓝牙设备类随后向app提供上述各种设备状态(即,图3中的“设备当前各种参数”);2)将蓝牙设备类下发的各种命令由蓝牙设备类分发给对应的蓝牙设备。从而使得数据流的逻辑处理更加直观,容易区分。

蓝牙设备类负责订阅设备信息,订阅后就可以收到设备数据更新信息。

当蓝牙设备各个参数状态有更新时,蓝牙引擎还负责将状态更新通知到相应的蓝牙设备类。

其中,每个蓝牙设备类是对具体蓝牙设备(例如,控制指令和设备信息都相同的同一类蓝牙设备)的抽象。例如,可以通过mac地址对蓝牙设备进行区分,从而实现了具体设备具体管理。

app负责使用命令发送接口,向设备类发送命令;还负责从蓝牙设备类接收上述各种设备状态,很方便地显示设备的各个参数(状态)。

根据本发明的上述技术方案,能够自动返回对应于不同外部蓝牙设备的设备信息或下发针对不同外部蓝牙设备的指令,逻辑处理操作直观,能够方便地在ios系统下管理(接入的)多种不同的外部蓝牙设备。能够对不同的外部蓝牙设备的上下行数据(即,蓝牙连接状态上报数据和控制指令下发数据)统一处理,各个设备可以专注实现其他逻辑功能。

根据本发明的上述技术方案,可以轻松地支持多种蓝牙设备,简单地处理蓝牙设备的数据上报和命令下发、以及连接状态显示。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的精神和范围。

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