CN107529132B - 蓝牙设备与应用程序之间传输数据的方法和装置 - Google Patents
蓝牙设备与应用程序之间传输数据的方法和装置 Download PDFInfo
- Publication number
- CN107529132B CN107529132B CN201710790575.1A CN201710790575A CN107529132B CN 107529132 B CN107529132 B CN 107529132B CN 201710790575 A CN201710790575 A CN 201710790575A CN 107529132 B CN107529132 B CN 107529132B
- Authority
- CN
- China
- Prior art keywords
- data
- application program
- bluetooth device
- attribute value
- frames
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Abstract
本发明公开了一种蓝牙设备与应用程序之间传输数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取待传输数据;将待传输数据生成数据包,每个数据包为一个操作的数据,且数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;将数据包传输给数据接收方。该实施方式实现了使用一个协议适用于所有蓝牙设备的目的,进而可以使用一个应用程序与多个蓝牙设备进行数据交互,简化了蓝牙应用的开发和维护,降低了应用程序的开发和维护成本,提高了用户体验度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种蓝牙设备与应用程序之间传输数据的方法和装置。
背景技术
随着蓝牙低能耗BLE(Bluetooth Low Energy)协议的完善和推广,大量的BLE设备上市。蓝牙技术联盟SIG定义了很多规范或协议(profile)来规范各种应用,但是这些profile并不通用。例如:体温计的profile只适用于体温计,血压仪的profile只适用于血压仪,等等。
例如如下的几种常用的规范或协议:《BLOOD PRESSURE PROFILE》(血压曲线)和《BLOOD PRESSURE SERVICE》(血压服务)、《Continuous Glucose Monitoring Profile》(连续血糖监测)和《Continuous Glucose Monitoring Service》(连续血糖监测服务)、《CYCLING POWER PROFILE》(循环功率谱)和《CYCLING POWER SERVICE》(循环功率服务),等等。每种规范或协议以及包含在这些规范或协议里面的服务都是针对于特定的应用而制定的。
以《BLOOD PRESSURE SERVICE》为例,它详细规定了每个特征值(characteristic)的数据内容,比如血压测量(Blood Pressure Measurement)这个characteristic就包括了:标记字段Flags Field、血压测量复合值字段Blood Pressure Measurement CompoundValue Field、时间戳字段Time Stamp Field、脉冲率字段Pulse Rate Field、用户标识字段User ID Field、以及测量状态字段Measurement Status Field等数据内容。根据《BLOODPRESSURE SERVICE》的规定,这个规范或协议即可很好地适用于血压仪。
同理,SIG制定的其他适用于特定产品的Profile也不具有通用性。那么,当同一个厂商在生产多种蓝牙设备时,例如:一个厂商同时生产体温计、血压仪和血脂测量仪时,则需要对应研发多款应用来与蓝牙设备进行数据交互。当用户使用该厂商的多种蓝牙设备时,也需要安装多个应用来与对应的蓝牙设备进行数据交互。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
对于同一个厂商生产多种蓝牙设备的情况,SIG制定的个性化规范或协议为蓝牙应用的开发、维护等都带来了极大的不便,且造成了很多不必要的资源浪费;另外,用户在使用时,需要同时安装多个应用与蓝牙设备进行数据交互,用户体验差。
发明内容
有鉴于此,本发明实施例提供一种蓝牙设备与应用程序之间传输数据的方法和装置,能够实现使用一个协议适用于所有蓝牙设备的目的,进而可以使用一个应用程序与多个蓝牙设备进行数据交互,简化了蓝牙应用的开发和维护,降低了应用程序的开发和维护成本,提高了用户体验度。
为实现上述目的,根据本发明实施例的一个方面,提供了一种蓝牙设备与应用程序之间传输数据的方法。
一种蓝牙设备与应用程序之间传输数据的方法,包括:获取待传输数据;将所述待传输数据生成数据包,每个所述数据包为一个操作的数据,且所述数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,所述操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;将所述数据包传输给数据接收方。
可选地,将所述数据包传输给数据接收方的步骤包括:将所述数据包拆分为数据帧,并依次传输所述数据帧,以便所述数据接收方将接收到的所述数据帧进行合包以得到所述数据包。
可选地,若所述数据接收方为应用程序,则蓝牙设备通过将所述数据帧放入预定义的提示特征值的方式依次将所述数据帧传输给所述应用程序。
可选地,若所述数据接收方为蓝牙设备,则应用程序通过将所述数据帧放入预定义的写入特征值的方式依次将所述数据帧传输给所述蓝牙设备。
可选地,所述数据帧包括帧头和负载数据,其中,所述帧头为4字节,所述负载数据为16字节。
可选地,所述帧头包括所述数据包拆分得到的数据帧的个数、所述数据帧的序号、所述负载数据的加解密密钥类型和所述数据包的序列号。
可选地,所述负载数据的加解密算法为对称加密算法。
可选地,所述负载数据的加解密算法为三重数据加密算法或高级加密标准算法。
可选地,所述操作类型包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果。
根据本发明实施例的另一方面,提供了一种蓝牙设备与应用程序之间传输数据的装置。
一种蓝牙设备与应用程序之间传输数据的装置,包括:获取模块,用于获取待传输数据;打包模块,用于将所述待传输数据生成数据包,每个所述数据包为一个操作的数据,且所述数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,所述操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;传输模块,用于将所述数据包传输给数据接收方。
可选地,所述传输模块还用于:将所述数据包拆分为数据帧,并依次传输所述数据帧,以便所述数据接收方将接收到的所述数据帧进行合包以得到所述数据包。
可选地,若所述数据接收方为应用程序,则蓝牙设备通过将所述数据帧放入预定义的提示特征值的方式依次将所述数据帧传输给所述应用程序。
可选地,若所述数据接收方为蓝牙设备,则应用程序通过将所述数据帧放入预定义的写入特征值的方式依次将所述数据帧传输给所述蓝牙设备。
可选地,所述数据帧包括帧头和负载数据,其中,所述帧头为4字节,所述负载数据为16字节。
可选地,所述帧头包括所述数据包拆分得到的数据帧的个数、所述数据帧的序号、所述负载数据的加解密密钥类型和所述数据包的序列号。
可选地,所述负载数据的加解密算法为对称加密算法。
可选地,所述负载数据的加解密算法为三重数据加密算法或高级加密标准算法。
可选地,所述操作类型包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果。
根据本发明实施例的又一方面,提供了一种蓝牙设备与应用程序之间传输数据的终端。
一种蓝牙设备与应用程序之间传输数据的终端(,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的蓝牙设备与应用程序之间传输数据的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的蓝牙设备与应用程序之间传输数据的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过对蓝牙设备和应用程序进行交互的数据格式以及操作语义的约定,实现了使用一个协议适用于所有蓝牙设备的目的,从而可以使用一个应用程序与多个蓝牙设备进行数据交互,简化了蓝牙应用的开发和维护,降低了应用程序的开发和维护成本,提高了用户体验度。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的蓝牙设备与应用程序之间传输数据的方法的主要流程的示意图;
图2是根据本发明实施例的蓝牙设备与应用程序之间传输数据的装置的主要模块的示意图;
图3是本发明实施例可以应用于其中的示例性系统架构图;
图4是适于用来实现本发明实施例的终端设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了解决现有技术中存在的问题,本发明提供了一种使用一个通用协议来实现蓝牙设备和应用程序之间的数据传输的方法。无论是体温计、血压仪、跑步机、血脂测量仪等等,都可以使用一个数据传输协议来实现,如此,即可实现一个应用程序与多个蓝牙设备进行数据交互。
为了实现如上所述的功能,本协议只有一个服务service,且该service由两个特征值characteristic组成,如表1所示。
表1
本协议在具体实现时,按照角色可以把智能硬件分为以下三种:
蓝牙设备(Slave):支持BLE协议的设备;
控制终端(Master):与用户产生交互的控制端,指令的发起方,同时也是信息的查询窗口。可以是手机或者是支持BLE的网关等;
云端:提供后台服务、存储蓝牙设备信息的具有公网IP的服务器端。
本发明所提供的协议是描述蓝牙设备与控制终端、云端如何组成系统,之间如何通讯及如何管理的应用层协议。手机应用程序APP(Application)要能够通过该协议和各种蓝牙设备交换信息,操控各种蓝牙设备,前提是这个蓝牙设备和手机APP都有对本协议的支持。
本协议的具体实现形式例如可以是一个软件开发包(如SDK包)。根据本发明的技术方案,蓝牙设备在进行功能开发时,需要链接入这个软件开发包,并实现这个软件开发包所要求的回调函数,并使用这个软件开发包实现自己的应用功能,以便可以被支持本协议的手机APP识别和操控。
下面结合具体实施例介绍本发明的实施过程。
图1是根据本发明实施例的蓝牙设备与应用程序之间传输数据的方法的主要流程的示意图。如图1所示,本发明的蓝牙设备与应用程序之间传输数据的方法主要包括如下的步骤S101至步骤S103。
步骤S101:获取待传输数据。
待传输数据可以是由蓝牙设备向手机APP发送的数据,也可以是手机APP向蓝牙设备发送的数据。其中,蓝牙设备向手机APP发送的数据例如可以是由蓝牙设备采集的需要发送给手机应用程序APP的数据,也可以是蓝牙设备反馈手机APP的读数据命令的结果等;手机APP向蓝牙设备发送的数据例如可以是由手机APP向蓝牙设备发送的读、写蓝牙设备的某些特征或属性等。
步骤S102:将待传输数据生成数据包,每个数据包为一个操作的数据,且数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力。
一个蓝牙设备由若干个属性组成。设备的每一项操作或能力,定义为一个属性(property)。例如:开灯、关灯、温度提升1度,等等。属性对应的数值按能力不同,阈值也不同。每个属性都有自己的数值,即属性值value。
根据本发明的实施例的技术方案,通信数据在格式上分为两层:通信层面和业务层面。通信层面是为软件开发包(SDK包)服务,业务层面是为应用程序和蓝牙设备服务。
在业务层面上,数据是以数据包的形式进行传输的。
业务层面数据包长度不固定,如表2所示,数据包的结构可以为:seq+operate+length+content+crc。其中,seq:即数据包的序列号或标识号,大小为1字节(Byte),当出现数据传输超时(超时的阈值可由实现酌情决定)需要进行重传时,可根据序列号进行去重,并且,应答包的序列号须与请求包的序列号一致;operate:即操作类型,大小为1字节,一个数据包能且只能是一种操作,操作类型详见表3;length:即操作内容的长度,大小为2字节;content:操作内容,大小为n(n为正数)字节,可以由0个、1个或者多个TLV结构体(详见表4)组成;crc:校验码,大小为2字节,用于检错,是对seq+operate+length+content+crc字段计算的校验和。
表2
seq | operate | length | content | crc |
1Byte | 1Byte | 2Byte | n Byte | 2Byte |
表3
编号 | 意义 |
0x01 | 应用程序读取蓝牙设备的属性值 |
0x11 | 蓝牙设备反馈应用程序读取属性值的命令 |
0x02 | 应用程序写入蓝牙设备的属性值且不带结果反馈 |
0x03 | 应用程序写入蓝牙设备的属性值且带结果反馈 |
0x13 | 蓝牙设备反馈应用程序写入属性值命令的执行结果 |
0x16 | 蓝牙设备向应用程序发送数据且不带结果反馈 |
0x17 | 蓝牙设备向应用程序发送数据且带结果反馈 |
0x07 | 应用程序反馈蓝牙设备发送数据的执行结果 |
如表3所示,操作类型主要可以包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果等。
表4
Tag ID | Length | Value |
2Byte | 1Byte | x Byte |
如表4所示,为TLV的具体结构,由Tag+Length+Value组成。其中,Tag:属性标识,大小为2字节(Byte),用于指示当前数据包要操作的属性,可以是属性的编号等可以标识属性的信息;Length:属性值的长度,大小为1字节;Value:属性值,大小为x(x为正数)字节,用于表示当前数据包中要操作的属性的内容。需要注意的是,属性标识可以包括蓝牙设备的唯一标识、产品的标识码,或者设备的某一个具体属性的标识等等。在具体实现时,可以通过在数据库中维护操作的属性标识与蓝牙设备标识或者蓝牙设备的不同属性之间的关联关系的方式来实现。属性标识Tag的示例如表5所示。
表5
属性标识 | Tag ID | 数据类型 | 数据长度 | 描述 |
PUID | 0xFFFF | uchar数组 | 6 | 蓝牙设备的唯一标识 |
GUID | 0xFFFC | uchar数组 | 32 | 系统生成的产品的标识码 |
dev_snapshot | 0xFEFF | uchar数组 | x | 蓝牙设备快照 |
Gender | 0xFEFE | uchar | 1 | 用户性别,0-女性,1-男性 |
age | 0xFEFD | uchar | 1 | 用户年龄 |
height | 0xFEFC | uchar | 1 | 用户身高,单位:厘米 |
time | 0xFEFA | uint | 4 | 时间 |
如表5所示,其中,Tag ID指的是属性标识在本发明的协议中的唯一标识ID。
待传输数据在获取后,需要根据本发明所提出的协议生成数据包,然后执行步骤S103。
步骤S103:将数据包传输给数据接收方。
其中,根据本发明的技术方案,步骤S103将数据包传输给数据接收方在实现时具体可以是:将数据包拆分为数据帧,并依次传输数据帧,以便数据接收方将接收到的数据帧进行合包以得到该数据包。亦即:一个业务层面的数据包由若干个通信层面的数据帧组成,在通信过程中,通过将应用层上的数据包分解成许多数据帧来进行传输,然后再将数据帧进行合包操作以实现数据包的传输。
其中,若数据接收方为应用程序,则蓝牙设备通过将数据帧放入预定义的提示特征值的方式依次将数据帧传输给应用程序。若数据接收方为蓝牙设备,则应用程序通过将数据帧放入预定义的写入特征值的方式依次将数据帧传输给蓝牙设备。
一个特征值一次传输的数据定义为一个数据帧,每个数据帧的数据长度为20字节。数据帧包括帧头和负载数据,其中,帧头为4字节,负载数据为16字节。
帧头包括数据包拆分得到的数据帧的个数、数据帧的序号、负载数据的加解密密钥类型和数据包的序列号等信息。帧头的结构例如是:count+num+keytype+seq。其中,count是数据包拆分得到的数据帧的个数;num:本数据帧的序号;keytype:负载数据的加解密密钥类型;seq:本数据帧所属数据包的序列号,数据包的序列号从0到255循环递增。
负载数据指的是数据帧传输的数据内容。在通信层面看来,负载数据就是原始数据,没有任何格式。负载数据的格式和语义要由业务层面来解析。负载数据统一为16字节,没有例外。如果不足16字节就用0x00补齐。例如:若负载数据为12 34 56 78四个字节,不足16字节,那么可以将负载数据补齐得到12 34 56 78 00 00 00 00 00 00 00 00 00 00 0000。
为了保证数据传输过程的安全,可以对负载数据进行加密。负载数据的加解密算法为对称加密算法,例如为三重数据加密算法(3DES算法)或高级加密标准算法(AES算法)。在使用加密算法对负载数据进行加密或解密时,可以使用128位(bit)的密钥。以使用AES算法对负载数据进行加解密为例,相应的代码如下:
通过对负载数据进行加密后再传输,即可大大增加数据传输的安全性。
一个业务层面的数据包由若干个通信层面的数据帧组成,在通信过程中实现拆帧和合包操作。在接收一包数据时,把该包数据所有的数据帧接收完之后,将这些数据帧通过合包操作,组成一个seq+operate+length+content+crc格式结构的数据包。在发送一包数据时,先将数据构成一个seq+operate+length+content+crc结构的数据包,这包数据通过分帧操作之后,放到BLE信道上发送出去。
下面举例介绍数据包通过拆帧和合包进行传输的过程。
拆帧:假设蓝牙设备有1000B(字节)数据要发送给应用程序APP,这1000B数据定义为1个数据包(Packet)。蓝牙设备通过SDK包根据本发明的协议将数据包拆分为多个数据帧。由于一个数据帧的负载数据长度有限(如16个字节),显然需要分多次才能传输完成。1000B数据,由1000B/16B,可以知道,该数据包可以分成62个完整的数据帧,且还剩下8个字节。剩下的8个字节,不足一帧的负载数据大小(16个字节),因此需对剩下的8个字节通过以0值补齐的方式生成一个数据帧。故而,该数据包被拆分成63个数据帧。
发送第一个数据帧:蓝牙设备通过SDK包把第一个数据帧的内容放入提示特征值indicate characteristic里面,然后发送给手机应用程序,由于提示特征值需要回执,故当第一个数据帧发送到应用程序的SDK包后,会请求应用程序返回确认信息。当收到传输完成通知的时候,即可认为发送第一个数据帧已完成。然后,按照发送第一个数据帧的方式,依次发送剩下的数据帧。
同样地,当数据包为由应用程序发送给蓝牙设备时,也需要按照前面介绍的拆帧过程将数据包拆分为多个数据帧。区别仅在于,如果是应用程序往蓝牙设备发送数据,那么就通过将数据帧的内容放入写入特征值write characteristic里,然后发送给蓝牙设备,且写入特征值不是必须要回执。
合包:当应用程序或蓝牙设备上部署的SDK包,在一个数据包的所有数据帧全部接收完之后,通过合帧操作还原出该数据包,然后把该数据包返回给应用程序或蓝牙设备的应用层。其中,合帧操作指的是:去掉所有数据帧的帧头字段,将所有的负载数据字段合并。
根据如上介绍的拆帧和合包过程可以知道,如果是应用程序往蓝牙设备发送数据,那么就通过write characteristic发送一些数据帧给蓝牙设备,这些数据帧组成一个操作来读、写蓝牙设备的某些属性。如果是蓝牙设备往应用程序发送数据,那么就通过indicate characteristic发送一些数据帧给应用程序,这些数据帧组成一个操作来主动向应用程序报告数据,或者反馈应用程序的读命令结果,等等。
根据如步骤S101至步骤S103所述的方法,即可以在手机APP和蓝牙设备间实现双工通信,又因为有对数据格式的约定,以及对操作语义的约定,这样就实现了使用一个协议适用于所有蓝牙设备的目的。
图2是根据本发明实施例的蓝牙设备与应用程序之间传输数据的装置的主要模块的示意图。如图2所示,本发明的蓝牙设备与应用程序之间传输数据的装置200主要包括获取模块201、打包模块202和传输模块203。
获取模块201用于获取待传输数据;
打包模块202用于将待传输数据生成数据包,每个数据包为一个操作的数据,且数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;
传输模块203用于将数据包传输给数据接收方。
根据本发明实施例的技术方案,传输模块203还可以用于:将数据包拆分为数据帧,并依次传输数据帧,以便数据接收方将接收到的数据帧进行合包以得到数据包。
其中,若数据接收方为应用程序,则蓝牙设备通过将数据帧放入预定义的提示特征值的方式依次将数据帧传输给应用程序。
又,若数据接收方为蓝牙设备,则应用程序通过将数据帧放入预定义的写入特征值的方式依次将数据帧传输给蓝牙设备。
根据本发明的技术方案,数据帧包括帧头和负载数据,其中,帧头为4字节,负载数据为16字节。
在本发明的实施例中,帧头包括数据包拆分得到的数据帧的个数、数据帧的序号、负载数据的加解密密钥类型和数据包的序列号。
另外,本发明中,负载数据的加解密算法为对称加密算法。例如可以为三重数据加密算法或高级加密标准算法。
根据本发明的实施例,操作类型主要可以包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果。
根据本发明实施例的技术方案,通过对蓝牙设备和应用程序进行交互的数据格式以及操作语义的约定,实现了使用一个协议适用于所有蓝牙设备的目的,从而可以使用一个应用程序与多个蓝牙设备进行数据交互,简化了蓝牙应用的开发和维护,降低了应用程序的开发和维护成本,提高了用户体验度。
图3示出了可以应用本发明实施例的蓝牙设备与应用程序之间传输数据的方法或蓝牙设备与应用程序之间传输数据的装置的示例性系统架构300。
如图3所示,系统架构300可以包括终端设备301、302、303,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备301、302、303通过网络304与服务器305交互,以接收或发送消息等。终端设备301、302、303上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备301、302、303可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器305可以是提供各种服务的服务器,例如对用户利用终端设备301、302、303所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的蓝牙设备与应用程序之间传输数据的方法一般由服务器305执行,相应地,蓝牙设备与应用程序之间传输数据的装置一般设置于服务器305中。
应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图4,其示出了适于用来实现本发明实施例的终端的计算机系统400的结构示意图。图4示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、打包模块和传输模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“用于获取待传输数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取待传输数据;将所述待传输数据生成数据包,每个所述数据包为一个操作的数据,且所述数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,所述操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;将所述数据包传输给数据接收方。
根据本发明实施例的技术方案,通过对蓝牙设备和应用程序进行交互的数据格式以及操作语义的约定,实现了使用一个协议适用于所有蓝牙设备的目的,从而可以使用一个应用程序与多个蓝牙设备进行数据交互,简化了蓝牙应用的开发和维护,降低了应用程序的开发和维护成本,提高了用户体验度。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种蓝牙设备与应用程序之间传输数据的方法,其特征在于,包括:
获取待传输数据;
将所述待传输数据生成数据包,每个所述数据包为一个操作的数据,且所述数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,所述操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;
将所述数据包传输给数据接收方;
将所述数据包传输给数据接收方的步骤包括:
将所述数据包拆分为数据帧,并依次传输所述数据帧,以便所述数据接收方将接收到的所述数据帧进行合包以得到所述数据包;
若所述数据接收方为应用程序,则蓝牙设备通过将所述数据帧放入预定义的提示特征值的方式依次将所述数据帧传输给所述应用程序,以使所述数据帧组成一个操作来主动向应用程序报告数据或者反馈应用程序的读命令结果;
若所述数据接收方为蓝牙设备,则应用程序通过将所述数据帧放入预定义的写入特征值的方式依次将所述数据帧传输给所述蓝牙设备,以使所述数据帧组成一个操作来读、写蓝牙设备的属性。
2.根据权利要求1所述的方法,其特征在于,所述数据帧包括帧头和负载数据,其中,所述帧头为4字节,所述负载数据为16字节。
3.根据权利要求2所述的方法,其特征在于,所述帧头包括所述数据包拆分得到的数据帧的个数、所述数据帧的序号、所述负载数据的加解密密钥类型和所述数据包的序列号。
4.根据权利要求3所述的方法,其特征在于,所述负载数据的加解密算法为对称加密算法。
5.根据权利要求3或4所述的方法,其特征在于,所述负载数据的加解密算法为三重数据加密算法或高级加密标准算法。
6.根据权利要求1所述的方法,其特征在于,所述操作类型包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果。
7.一种蓝牙设备与应用程序之间传输数据的装置,其特征在于,包括:
获取模块,用于获取待传输数据;
打包模块,用于将所述待传输数据生成数据包,每个所述数据包为一个操作的数据,且所述数据包的结构包括序列号、操作类型、操作内容的长度、操作内容和校验码,所述操作内容包括属性标识、属性值的长度和属性值,其中,属性为蓝牙设备的操作或能力;
传输模块,用于将所述数据包传输给数据接收方;
所述传输模块还用于:
将所述数据包拆分为数据帧,并依次传输所述数据帧,以便所述数据接收方将接收到的所述数据帧进行合包以得到所述数据包;
若所述数据接收方为应用程序,则蓝牙设备通过将所述数据帧放入预定义的提示特征值的方式依次将所述数据帧传输给所述应用程序,以使所述数据帧组成一个操作来主动向应用程序报告数据或者反馈应用程序的读命令结果;
若所述数据接收方为蓝牙设备,则应用程序通过将所述数据帧放入预定义的写入特征值的方式依次将所述数据帧传输给所述蓝牙设备,以使所述数据帧组成一个操作来读、写蓝牙设备的属性。
8.根据权利要求7所述的装置,其特征在于,所述数据帧包括帧头和负载数据,其中,所述帧头为4字节,所述负载数据为16字节。
9.根据权利要求8所述的装置,其特征在于,所述帧头包括所述数据包拆分得到的数据帧的个数、所述数据帧的序号、所述负载数据的加解密密钥类型和所述数据包的序列号。
10.根据权利要求9所述的装置,其特征在于,所述负载数据的加解密算法为对称加密算法。
11.根据权利要求9或10所述的装置,其特征在于,所述负载数据的加解密算法为三重数据加密算法或高级加密标准算法。
12.根据权利要求7所述的装置,其特征在于,所述操作类型包括:应用程序读取蓝牙设备的属性值、蓝牙设备反馈应用程序读取属性值的命令、应用程序写入蓝牙设备的属性值且不带结果反馈、应用程序写入蓝牙设备的属性值且带结果反馈、蓝牙设备反馈应用程序写入属性值命令的执行结果、蓝牙设备向应用程序发送数据且不带结果反馈、蓝牙设备向应用程序发送数据且带结果反馈、应用程序反馈蓝牙设备发送数据的执行结果。
13.一种蓝牙设备与应用程序之间传输数据的终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710790575.1A CN107529132B (zh) | 2017-09-05 | 2017-09-05 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710790575.1A CN107529132B (zh) | 2017-09-05 | 2017-09-05 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107529132A CN107529132A (zh) | 2017-12-29 |
CN107529132B true CN107529132B (zh) | 2021-04-30 |
Family
ID=60683518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710790575.1A Active CN107529132B (zh) | 2017-09-05 | 2017-09-05 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107529132B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858359A (zh) * | 2018-08-22 | 2020-03-03 | 深圳市文鼎创数据科技有限公司 | 基于蓝牙设备的交易方法、服务器、电子设备及存储介质 |
CN112073761B (zh) * | 2019-06-10 | 2022-09-09 | 海信视像科技股份有限公司 | 蓝牙功能的实现方法及装置、双硬件系统显示设备 |
CN112445548A (zh) * | 2019-09-02 | 2021-03-05 | 广州皓醒湾科技有限公司 | 蓝牙设备操作命令的处理方法、系统及可读存储介质 |
CN111277988B (zh) * | 2020-03-17 | 2023-06-23 | 北京百瑞互联技术有限公司 | 一种提高微信小程序蓝牙传输速度的方法 |
CN113177135A (zh) * | 2021-04-30 | 2021-07-27 | 广州酷狗计算机科技有限公司 | 车载设备播放音频的方法、装置和存储介质及电子设备 |
CN113742762B (zh) * | 2021-11-05 | 2022-04-15 | 中关村芯海择优科技有限公司 | 数据交互方法、装置、终端设备及存储介质 |
CN116828435B (zh) * | 2023-08-30 | 2023-11-14 | 北京柚果星空科技有限公司 | 一种软蓝牙网关的设备转发方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360012A (zh) * | 2008-09-26 | 2009-02-04 | 广州市聚晖电子科技有限公司 | 一种适用于不同数据采集终端接入的系统 |
CN104181875A (zh) * | 2014-07-09 | 2014-12-03 | 浙江大学城市学院 | 基于物联模式的运动健身系统 |
WO2015180567A1 (zh) * | 2014-05-30 | 2015-12-03 | 阿里巴巴集团控股有限公司 | 一种智能显示终端与体感设备实现数据交互的方法及装置 |
CN106686109A (zh) * | 2017-01-16 | 2017-05-17 | 上海雨儿欢电器有限公司 | 基于物联网的智能电器app控制平台 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741648A (zh) * | 2009-12-29 | 2010-06-16 | 中兴通讯股份有限公司 | 分布式远程测试系统、方法、以及服务器 |
CN105141686B (zh) * | 2015-08-19 | 2019-04-09 | 贵阳朗玛信息技术股份有限公司 | 一种实现蓝牙通信的方法及装置 |
CN105847351A (zh) * | 2016-03-22 | 2016-08-10 | 南京邮电大学 | 一种物联网环境下居家养老健康信息感知分析和预警系统 |
-
2017
- 2017-09-05 CN CN201710790575.1A patent/CN107529132B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360012A (zh) * | 2008-09-26 | 2009-02-04 | 广州市聚晖电子科技有限公司 | 一种适用于不同数据采集终端接入的系统 |
WO2015180567A1 (zh) * | 2014-05-30 | 2015-12-03 | 阿里巴巴集团控股有限公司 | 一种智能显示终端与体感设备实现数据交互的方法及装置 |
CN104181875A (zh) * | 2014-07-09 | 2014-12-03 | 浙江大学城市学院 | 基于物联模式的运动健身系统 |
CN106686109A (zh) * | 2017-01-16 | 2017-05-17 | 上海雨儿欢电器有限公司 | 基于物联网的智能电器app控制平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107529132A (zh) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107529132B (zh) | 蓝牙设备与应用程序之间传输数据的方法和装置 | |
US11095615B2 (en) | Selective encryption delineation | |
US20180077129A1 (en) | Methods and apparatus to provide extended object notation data | |
US9286249B2 (en) | USB device communication method, device and system wherein a human interface device (HID) descriptor and report are added to a driver of USB device | |
US20170099332A1 (en) | Systems and methods using binary dynamic rest messages | |
US20190215369A1 (en) | Secure Wireless Communication Platform | |
US11868707B2 (en) | Information interaction method and apparatus, server, system, and storage medium | |
CN113438628B (zh) | 用于数据交互的方法和装置 | |
CN109309736A (zh) | 全局唯一id的生成方法和生成装置 | |
CN112416396B (zh) | 一种应用程序更新方法和系统 | |
CN113364795A (zh) | 一种数据传输方法和代理服务器 | |
CN112653614A (zh) | 基于消息中间件的请求处理方法和装置 | |
US8621016B2 (en) | Adaptive differential propagation of soap messages | |
US9781010B2 (en) | Managing remote devices | |
CN112417016A (zh) | 一种数据交换方法、系统、设备及存储介质 | |
CN112329044A (zh) | 信息获取方法、装置、电子设备和计算机可读介质 | |
CN110572805A (zh) | 数据传输方法、装置、电子设备和计算机可读介质 | |
CN105959263B (zh) | 基于json的机构养老数据交互方法及系统 | |
CN114513552B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110048865A (zh) | 一种总线数据传输方法、装置、电子设备及存储介质 | |
US11575524B2 (en) | Selective encryption delineation | |
KR20120063387A (ko) | Sms 메시지 생성 장치 및 방법 | |
CN112507676B (zh) | 能源报表生成方法、装置、电子设备和计算机可读介质 | |
CN116437377A (zh) | 设备控制通信协议通信方法、系统、电子设备及介质 | |
CN112732457A (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 |