CN116828435A - 一种软蓝牙网关的设备转发方法及系统 - Google Patents
一种软蓝牙网关的设备转发方法及系统 Download PDFInfo
- Publication number
- CN116828435A CN116828435A CN202311103680.5A CN202311103680A CN116828435A CN 116828435 A CN116828435 A CN 116828435A CN 202311103680 A CN202311103680 A CN 202311103680A CN 116828435 A CN116828435 A CN 116828435A
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- equipment
- data
- serial port
- paired
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013507 mapping Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 3
- 238000013075 data extraction Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种软蓝牙网关的设备转发方法及系统,所述方法包括以下步骤:初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;将目标信息数据,根据配置的URI进行转发。本发明能够实现对蓝牙串口设备的连接管理、数据提取和网络转发。
Description
技术领域
本发明涉及蓝牙网关技术领域,尤其涉及一种软蓝牙网关的设备转发方法及系统。
背景技术
随着物联网的发展,各种蓝牙串口设备广泛应用于工业现场,这些设备通常通过模拟串口与上位机交互。
但在大量此类设备通信管理中,难以有效管理设备与数据,无法使用常规的蓝牙网关(如iBeacon、BLE原始信号)进行局域网或广域网的数据集中。
有鉴于此特提出本发明。
发明内容
本发明要解决的技术问题在于克服现有技术的不足,提供一种软蓝牙网关的设备转发方法及系统,能够实现对蓝牙串口设备的连接管理、数据提取和网络转发。
第一方面,为解决上述技术问题,本发明采用技术方案的基本构思是:
一种软蓝牙网关的设备转发方法,所述方法包括以下步骤:
初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
将目标信息数据,根据配置的URI进行转发。
优选的是,初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备,包括:
获取本地机器上的蓝牙适配器句柄;
设置适配器的扫描模式为主动扫描模式,并初始化适配器,其中,主动扫描模式包括扫描间隔和扫描窗口;
调用GetPairedDevices接口获取已配对设备列表,其中,设备列表包括设备名称、MAC地址、设备类型;
在已配对设备列表中检查设备类字段,并筛选出设备类为蓝牙串口的设备;
设定定时器间隔为5秒,在定时器回调函数中调用ScanDevices接口主动扫描设备类为蓝牙串口的设备,得到ScanDevices返回的扫描结果;
解析ScanDevices返回的扫描结果,并获取每个设备类为蓝牙串口的设备的信号强度、连接状态和时间戳信息;
将扫描结果与历史记录对比,判断设备类为蓝牙串口的设备是否有新的连接或者断开事件发生;
通过重复定时器回调,持续扫描并记录设备类为蓝牙串口的设备的连接状态;
调用SetScanParameters接口实时调整扫描参数;
调用StopScan关闭扫描,并调用CloseAdapter关闭蓝牙适配器。
优选的是,分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址,包括:
遍历已获取的已配对蓝牙设备列表,并逐一访问每个已配对蓝牙设备的记录;
对每个所述记录,调用GetDeviceIdentifier接口获取设备的标识符字符串;
判断标识符中是否包含表示蓝牙的固定设备ID;
若包含表示蓝牙的固定设备ID,则判断对应的蓝牙设备为蓝牙串口设备;
在所述记录中查找DeviceAddress字段,获取蓝牙串口设备的MAC地址;
将所述MAC地址与设备的标识符字符串记录关联保存,得到已配对蓝牙串口设备的标识符和MAC地址的关联映射表。
优选的是,打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列,包括:
根据所述关联映射表,筛选出已判断为蓝牙设备的串口;
遍历蓝牙串口,依次调用OpenSerialPort接口打开串口;
对每个打开的串口,启动独立的读线程,循环调用ReadSerialPort读取串口数据;
根据读取的串口数据包长度,判断是否为有效的蓝牙数据包,并将串口数据包长度为0的空包丢弃;
根据所述关联映射表,将每个有效蓝牙数据包存入对应的设备缓存队列中。
优选的是,对每个有效蓝牙数据包,根据所述关联映射表存入对应的设备缓存队列中,包括:
若设备缓存队列已满,则移除时间线最长的蓝牙数据包。
优选的是,定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据,包括:
根据消息格式定义,确认蓝牙数据包中的起始标志字节和消息长度字段的偏移;
遍历缓存队列中的每一个蓝牙数据包,并查找包起始是否包含预定义的标志字节;
若找到标志字节,则读取消息长度字段,获取整个消息的长度;
根据消息长度,从当前数据包中提取完整的消息数据;
对提取的完整消息数据,解析包含的命令字字段,并判断是否为包含关键信息的指定命令;
若包含所述指定命令,则解析消息有效负载并查找关键信息的偏移和长度;
根据偏移和长度,从有效负载中截取出目标字节序列;
将目标字节序列与对应的来源设备相关联保存,得到目标信息数据。
优选的是,将目标信息数据,根据配置的URI进行转发,包括:
读取软件配置文件,获取已定义的转发URI;
对每条提取到的关键信息数据,组装HTTP请求数据体;
设置请求头字段,并通过HTTP客户端库函数,向URI发送封装好的数据请求,其中,若URI配置为TCP模式,则建立TCP连接,并通过套接字发送;
通过解析返回结果,确认服务器是否成功接收到数据,直到全部转发完毕;其中,若发送失败,则写入日志,保存未发送数据备份。
第二方面,一种软蓝牙网关的设备转发系统,包括:
扫描模块,用于初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
分析模块,用于分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
打开模块,用于打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
定位模块,用于定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
转发模块,用于将目标信息数据,根据配置的URI进行转发。
第三方面,一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器任一所述的软蓝牙网关的设备转发方法。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,该程序被处理器执行时实现任一所述的软蓝牙网关的设备转发方法。
与现有技术相比,本申请实施例的软蓝牙网关的设备转发方法,可在x86计算机上通过软件模拟蓝牙网关功能,实现对蓝牙串口设备的连接管理、数据提取和网络转发,可以设置关键信息提取、MAC地址关联、扫描频率、转发URI等设置,可以满足企业使用x86小型工控机充当蓝牙网关的需求,而且企业可以根据需要在该网关上任意扩展其他应用,无需了解任何蓝牙协议,不会受限于传统蓝牙网关的功能限制。
下面结合附图对本发明的具体实施方式作进一步详细的描述。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分,本领域技术人员应该理解的是,这些附图未必是按比例绘制的,在附图中:
图1为本申请实施例软蓝牙网关的设备转发方法的流程示意图。
图2为本申请实施例软蓝牙网关的设备转发系统示意图。
图3为本申请实施例计算机设备示意图。
图4为本申请实施例软蓝牙网关的设备转发方法部分逻辑示意图。
需要说明的是,这些附图和文字描述并不旨在以任何方式限制本发明的构思范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念,附图中的元素是示意性的,没有按比例绘制。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请下述实施例以软蓝牙网关的设备转发方法为例进行详细说明本申请的方案,但是此实施例并不能限制本申请保护范围。
如图1至图4所示,本发明提供了一种软蓝牙网关的设备转发方法,所述方法包括以下步骤:
步骤1,初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
步骤2,分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
步骤3,打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
步骤4,定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
步骤5,将目标信息数据,根据配置的URI进行转发。
在上述实施例中,实现了通过软件的方式在普通计算机上模拟蓝牙网关,降低了硬件成本;可以在一般x86计算机上部署,不依赖专用硬件,扩展性强;通过设备标识符分析技术,可以有效识别蓝牙串口设备;循环读取和缓存队列技术,可以持续获取蓝牙设备的数据;可以通过配置规则灵活提取关键信息,自定义软件的功能;支持多种网络转发协议,扩展了连接方式;适用于大规模蓝牙设备的连接管理,简化了设备和数据管理。
在本发明实施例中,所述步骤1,初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备,包括:
步骤11,获取本地机器上的蓝牙适配器句柄;
步骤12,设置适配器的扫描模式为主动扫描模式,并初始化适配器,其中,主动扫描模式包括扫描间隔和扫描窗口;
步骤13,调用GetPairedDevices接口获取已配对设备列表,其中,设备列表包括设备名称、MAC地址、设备类型;
步骤14,在已配对设备列表中检查设备类字段,并筛选出设备类为蓝牙串口的设备;
步骤15,设定定时器间隔为5秒,在定时器回调函数中调用ScanDevices接口主动扫描设备类为蓝牙串口的设备,得到ScanDevices返回的扫描结果;
步骤16,解析ScanDevices返回的扫描结果,并获取每个设备类为蓝牙串口的设备的信号强度、连接状态和时间戳信息;
步骤17,将扫描结果与历史记录对比,判断设备类为蓝牙串口的设备是否有新的连接或者断开事件发生;
步骤18,通过重复定时器回调,持续扫描并记录设备类为蓝牙串口的设备的连接状态;
步骤19,调用SetScanParameters接口实时调整扫描参数;
步骤101,调用StopScan关闭扫描,并调用CloseAdapter关闭蓝牙适配器。
在上述实施例中,获取本地蓝牙适配器句柄,可以对适配器进行配置和控制;设置主动扫描模式,可以主动发现蓝牙设备,通过调整扫描参数来优化性能;获取已配对设备列表,可以获得所有目标设备的地址和信息;筛选出蓝牙串口设备,可以准确定位目标设备;定时主动扫描目标设备,可以持续获取设备实时状态;解析扫描结果,可以获得信号强度、连接状态等关键信息;对比历史状态,可以准确判断连接状态变化;持续扫描,可以动态监控目标设备状态;调整扫描参数,可以优化扫描性能;关闭扫描和适配器,可以释放资源有利于后续对蓝牙串口设备进行识别、连接、数据读取等操作。
在本发明实施例中,所述步骤2,分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址,包括:
步骤21,遍历已获取的已配对蓝牙设备列表,并逐一访问每个已配对蓝牙设备的记录;
步骤22,对每个所述记录,调用GetDeviceIdentifier接口获取设备的标识符字符串;
步骤23,判断标识符中是否包含表示蓝牙的固定设备ID;
步骤24,若包含表示蓝牙的固定设备ID,则判断对应的蓝牙设备为蓝牙串口设备;
步骤25,在所述记录中查找DeviceAddress字段,获取蓝牙串口设备的MAC地址;
步骤26,将所述MAC地址与设备的标识符字符串记录关联保存,得到已配对蓝牙串口设备的标识符和MAC地址的关联映射表。
在上述实施例中,遍历已配对设备列表,可以逐一访问每个设备记录;获取设备标识符字符串,可以准确判断设备类型;检查标识符中的固定ID,可以判断是否为蓝牙设备;包含蓝牙固定ID则判断为蓝牙串口设备,可以有效识别目标设备;获取MAC地址字段,可以准确获得设备的物理地址;建立标识符和MAC的关联映射表,可以支持后续的设备识别和数据处理;不需要人工记录和核对设备标识符与MAC的对应关系;自动获取和建立映射表,可以简化设备管理,提高效率,为软件蓝牙网关获取设备关键信息提供支持,有利于后续的设备连接、数据读取和网络转发操作。
在本发明实施例中,所述步骤3,打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列,包括:
步骤31,根据所述关联映射表,筛选出已判断为蓝牙设备的串口;
步骤32,遍历蓝牙串口,依次调用OpenSerialPort接口打开串口;
步骤33,对每个打开的串口,启动独立的读线程,循环调用ReadSerialPort读取串口数据;
步骤34,根据读取的串口数据包长度,判断是否为有效的蓝牙数据包,并将串口数据包长度为0的空包丢弃;
步骤35,根据所述关联映射表,将每个有效蓝牙数据包存入对应的设备缓存队列中。
在本发明实施例中,所述步骤35,对每个有效蓝牙数据包,根据所述关联映射表存入对应的设备缓存队列中,包括:
步骤351,若设备缓存队列已满,则移除时间线最长的蓝牙数据包。
在本发明实施例中,所述步骤4,定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据,包括:
步骤4,根据消息格式定义,确认蓝牙数据包中的起始标志字节和消息长度字段的偏移;
步骤41,遍历缓存队列中的每一个蓝牙数据包,并查找包起始是否包含预定义的标志字节;
步骤42,若找到标志字节,则读取消息长度字段,获取整个消息的长度;
步骤43,根据消息长度,从当前数据包中提取完整的消息数据;
步骤44,对提取的完整消息数据,解析包含的命令字字段,并判断是否为包含关键信息的指定命令;
步骤45,若包含所述指定命令,则解析消息有效负载并查找关键信息的偏移和长度;
步骤46,根据偏移和长度,从有效负载中截取出目标字节序列;
步骤47,将目标字节序列与对应的来源设备相关联保存,得到目标信息数据。
在上述实施例中,确认数据包的格式定义,可以准确定位标志和长度信息;查找包起始标志字节,可以判断是否是有效的数据包;读取消息长度,可以获取完整的消息数据;提取完整消息,可以进行进一步分析;解析命令字,可以判断是否包含关键信息;解析有效负载,可以定位关键信息的位置;根据偏移和长度提取数据,可以准确获取目标信息;与源设备关联保存,方便后续处理;可以有效从海量设备数据中筛选出关键信息,为软件蓝牙网关的信息提取和处理提供支持;自动化提取关键数据,简化后续分析工作。
在本发明实施例中,所述步骤5,将目标信息数据,根据配置的URI进行转发,包括:
步骤51,读取软件配置文件,获取已定义的转发URI;
步骤52,对每条提取到的关键信息数据,组装HTTP请求数据体;
步骤53,设置请求头字段,并通过HTTP客户端库函数,向URI发送封装好的数据请求,其中,若URI配置为TCP模式,则建立TCP连接,并通过套接字发送;
步骤54,通过解析返回结果,确认服务器是否成功接收到数据,直到全部转发完毕;其中,若发送失败,则写入日志,保存未发送数据备份。
本发明还提供了一种软蓝牙网关的设备转发系统,包括:
扫描模块,用于初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
分析模块,用于分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
打开模块,用于打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
定位模块,用于定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
转发模块,用于将目标信息数据,根据配置的URI进行转发。
计算机设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质,例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种软蓝牙网关的设备转发方法,其特征在于,所述方法包括以下步骤:
初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
将目标信息数据,根据配置的URI进行转发。
2.根据权利要求1所述的软蓝牙网关的设备转发方法,其特征在于,初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备,包括:
获取本地机器上的蓝牙适配器句柄;
设置适配器的扫描模式为主动扫描模式,并初始化适配器,其中,主动扫描模式包括扫描间隔和扫描窗口;
调用GetPairedDevices接口获取已配对设备列表,其中,设备列表包括设备名称、MAC地址、设备类型;
在已配对设备列表中检查设备类字段,并筛选出设备类为蓝牙串口的设备;
设定定时器间隔为5秒,在定时器回调函数中调用ScanDevices接口主动扫描设备类为蓝牙串口的设备,得到ScanDevices返回的扫描结果;
解析ScanDevices返回的扫描结果,并获取每个设备类为蓝牙串口的设备的信号强度、连接状态和时间戳信息;
将扫描结果与历史记录对比,判断设备类为蓝牙串口的设备是否有新的连接或者断开事件发生;
通过重复定时器回调,持续扫描并记录设备类为蓝牙串口的设备的连接状态;
调用SetScanParameters接口实时调整扫描参数;
调用StopScan关闭扫描,并调用CloseAdapter关闭蓝牙适配器。
3.根据权利要求2所述的软蓝牙网关的设备转发方法,其特征在于:分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址,包括:
遍历已获取的已配对蓝牙设备列表,并逐一访问每个已配对蓝牙设备的记录;
对每个所述记录,调用GetDeviceIdentifier接口获取设备的标识符字符串;
判断标识符中是否包含表示蓝牙的固定设备ID;
若包含表示蓝牙的固定设备ID,则判断对应的蓝牙设备为蓝牙串口设备;
在所述记录中查找DeviceAddress字段,获取蓝牙串口设备的MAC地址;
将所述MAC地址与设备的标识符字符串记录关联保存,得到已配对蓝牙串口设备的标识符和MAC地址的关联映射表。
4.根据权利要求3所述的软蓝牙网关的设备转发方法,其特征在于:打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列,包括:
根据所述关联映射表,筛选出已判断为蓝牙设备的串口;
遍历蓝牙串口,依次调用OpenSerialPort接口打开串口;
对每个打开的串口,启动独立的读线程,循环调用ReadSerialPort读取串口数据;
根据读取的串口数据包长度,判断是否为有效的蓝牙数据包,并将串口数据包长度为0的空包丢弃;
根据所述关联映射表,将每个有效蓝牙数据包存入对应的设备缓存队列中。
5.根据权利要求4所述的软蓝牙网关的设备转发方法,其特征在于:对每个有效蓝牙数据包,根据所述关联映射表存入对应的设备缓存队列中,包括:
若设备缓存队列已满,则移除时间线最长的蓝牙数据包。
6.根据权利要求5所述的软蓝牙网关的设备转发方法,其特征在于:定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据,包括:
根据消息格式定义,确认蓝牙数据包中的起始标志字节和消息长度字段的偏移;
遍历缓存队列中的每一个蓝牙数据包,并查找包起始是否包含预定义的标志字节;
若找到标志字节,则读取消息长度字段,获取整个消息的长度;
根据消息长度,从当前数据包中提取完整的消息数据;
对提取的完整消息数据,解析包含的命令字字段,并判断是否为包含关键信息的指定命令;
若包含所述指定命令,则解析消息有效负载并查找关键信息的偏移和长度;
根据偏移和长度,从有效负载中截取出目标字节序列;
将目标字节序列与对应的来源设备相关联保存,得到目标信息数据。
7.根据权利要求6所述的软蓝牙网关的设备转发方法,其特征在于:将目标信息数据,根据配置的URI进行转发,包括:
读取软件配置文件,获取已定义的转发URI;
对每条提取到的关键信息数据,组装HTTP请求数据体;
设置请求头字段,并通过HTTP客户端库函数,向URI发送封装好的数据请求,其中,若URI配置为TCP模式,则建立TCP连接,并通过套接字发送;
通过解析返回结果,确认服务器是否成功接收到数据,直到全部转发完毕;其中,若发送失败,则写入日志,保存未发送数据备份。
8.一种软蓝牙网关的设备转发系统,其特征在于:包括:
扫描模块,用于初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;
分析模块,用于分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的MAC地址;
打开模块,用于打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;
定位模块,用于定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;
转发模块,用于将目标信息数据,根据配置的URI进行转发。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的软蓝牙网关的设备转发方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,该程序被处理器执行时实现如权利要求1-7中任一所述的软蓝牙网关的设备转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311103680.5A CN116828435B (zh) | 2023-08-30 | 2023-08-30 | 一种软蓝牙网关的设备转发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311103680.5A CN116828435B (zh) | 2023-08-30 | 2023-08-30 | 一种软蓝牙网关的设备转发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116828435A true CN116828435A (zh) | 2023-09-29 |
CN116828435B CN116828435B (zh) | 2023-11-14 |
Family
ID=88127797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311103680.5A Active CN116828435B (zh) | 2023-08-30 | 2023-08-30 | 一种软蓝牙网关的设备转发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116828435B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835464A (zh) * | 2005-03-16 | 2006-09-20 | 联想(北京)有限公司 | 一种通过蓝牙串口进行通信的方法及系统 |
CN102394942A (zh) * | 2011-08-08 | 2012-03-28 | 北京登合科技有限公司 | 一种自动安装蓝牙串口设备的方法 |
CN105141686A (zh) * | 2015-08-19 | 2015-12-09 | 贵阳朗玛信息技术股份有限公司 | 一种实现蓝牙通信的方法及装置 |
CN106686535A (zh) * | 2017-01-23 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种在iOS系统上实现低功耗蓝牙通信的方法及装置 |
CN107529132A (zh) * | 2017-09-05 | 2017-12-29 | 北京京东尚科信息技术有限公司 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
CN109348461A (zh) * | 2018-11-12 | 2019-02-15 | 苏州纽克斯电源技术股份有限公司 | 蓝牙网格通讯方法、装置、调控设备及计算机存储介质 |
CN110213758A (zh) * | 2019-06-13 | 2019-09-06 | 桃芯科技(苏州)有限公司 | 基于蓝牙的数据通信方法、存储介质和电子设备 |
CN112188456A (zh) * | 2020-09-25 | 2021-01-05 | 浙江三维万易联科技有限公司 | 蓝牙设备数据采集方法和装置、存储介质和电子装置 |
US20210144780A1 (en) * | 2019-11-08 | 2021-05-13 | Boe Technology Group Co., Ltd. | Bluetooth connection establishment method, device and system |
US20210367643A1 (en) * | 2019-06-28 | 2021-11-25 | Feitian Technologies Co., Ltd. | Data transmission method for bluetooth card reader and electronic device |
CN115334486A (zh) * | 2022-10-18 | 2022-11-11 | 成都锐成芯微科技股份有限公司 | 蓝牙通信方法及蓝牙系统 |
-
2023
- 2023-08-30 CN CN202311103680.5A patent/CN116828435B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835464A (zh) * | 2005-03-16 | 2006-09-20 | 联想(北京)有限公司 | 一种通过蓝牙串口进行通信的方法及系统 |
CN102394942A (zh) * | 2011-08-08 | 2012-03-28 | 北京登合科技有限公司 | 一种自动安装蓝牙串口设备的方法 |
CN105141686A (zh) * | 2015-08-19 | 2015-12-09 | 贵阳朗玛信息技术股份有限公司 | 一种实现蓝牙通信的方法及装置 |
CN106686535A (zh) * | 2017-01-23 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种在iOS系统上实现低功耗蓝牙通信的方法及装置 |
CN107529132A (zh) * | 2017-09-05 | 2017-12-29 | 北京京东尚科信息技术有限公司 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
CN109348461A (zh) * | 2018-11-12 | 2019-02-15 | 苏州纽克斯电源技术股份有限公司 | 蓝牙网格通讯方法、装置、调控设备及计算机存储介质 |
CN110213758A (zh) * | 2019-06-13 | 2019-09-06 | 桃芯科技(苏州)有限公司 | 基于蓝牙的数据通信方法、存储介质和电子设备 |
US20210367643A1 (en) * | 2019-06-28 | 2021-11-25 | Feitian Technologies Co., Ltd. | Data transmission method for bluetooth card reader and electronic device |
US20210144780A1 (en) * | 2019-11-08 | 2021-05-13 | Boe Technology Group Co., Ltd. | Bluetooth connection establishment method, device and system |
CN112188456A (zh) * | 2020-09-25 | 2021-01-05 | 浙江三维万易联科技有限公司 | 蓝牙设备数据采集方法和装置、存储介质和电子装置 |
CN115334486A (zh) * | 2022-10-18 | 2022-11-11 | 成都锐成芯微科技股份有限公司 | 蓝牙通信方法及蓝牙系统 |
Non-Patent Citations (2)
Title |
---|
徐丽仙: "Eclipse开发环境中Android应用程序获取蓝牙设备过程研究与实现", 扬州职业大学学报 * |
黄强国等: "基于android蓝牙无线通信系统的实现", 电子质量 * |
Also Published As
Publication number | Publication date |
---|---|
CN116828435B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6836890B1 (en) | Methods and systems for message translation and parsing of data structures in a distributed component architecture | |
CN110381101B (zh) | Api网关控制系统、控制方法、设备和介质 | |
CN111935081B (zh) | 一种数据包脱敏方法和装置 | |
KR20180118168A (ko) | Fix 프로토콜에 기반한 서비스 구현 방법, 장치 및 시스템 | |
US8312475B2 (en) | Remote control of computing devices via two disparate networks | |
CN113596017B (zh) | 一种协议解析方法、装置、软网关和存储介质 | |
CN112559463B (zh) | 压缩文件处理的方法及装置 | |
CN111628927A (zh) | 邮件管理方法及装置、存储介质及电子终端 | |
CN108076017A (zh) | 一种数据包的协议解析方法及装置 | |
CN110278272B (zh) | 模拟Socket请求的通用方法 | |
US7010790B2 (en) | Modular method and device for the tracing of a multimedia message through a telecommunications network | |
CN113312008B (zh) | 一种文件读写业务的处理方法、系统、设备以及介质 | |
CN116828435B (zh) | 一种软蓝牙网关的设备转发方法及系统 | |
CN112688885B (zh) | 一种报文处理方法及装置 | |
CN113708990A (zh) | 一种用于数据包的抓包及解包的方法及设备 | |
CN109189643A (zh) | 请求接口响应数据的监控方法、装置、设备及存储介质 | |
CN111277569B (zh) | 一种网络报文解码方法、装置及电子设备 | |
CN112699000A (zh) | 数据处理方法、装置、可读存储介质和电子设备 | |
CN113268401B (zh) | 日志信息的输出方法、装置及计算机可读存储介质 | |
CN110222846B (zh) | 一种面向互联网终端的信息安防方法及信息安防系统 | |
JP3543683B2 (ja) | ドキュメント自動作成システム、ドキュメント自動作成方法およびドキュメント自動作成用プログラムを記録した記録媒体 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN114826635A (zh) | 端口服务探测方法、装置、设备及计算机可读存储介质 | |
JP3626926B2 (ja) | ファイル送信サーバ、ファイル送受信システム、ファイル送受信方法、および送信プログラム | |
CN114390088B (zh) | 一种edps通过opc ua客户端与opc ua服务端的交互方法以及装置 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room D101A-59, Floor 1, B-2, Dongsheng Science Park, Zhongguancun, No. 66, Xixiaokou Road, Haidian District, Beijing, 100192 Patentee after: Beijing Yuguo Technology Co.,Ltd. Address before: Room D101A-59, Floor 1, B-2, Dongsheng Science Park, Zhongguancun, No. 66, Xixiaokou Road, Haidian District, Beijing, 100192 Patentee before: Beijing Yingguo XingKong Technology Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |