一种软蓝牙网关的设备转发方法及系统与流程

文档序号:35638294发布日期:2023-10-06 05:56阅读:36来源:国知局
一种软蓝牙网关的设备转发方法及系统与流程

本发明涉及蓝牙网关,尤其涉及一种软蓝牙网关的设备转发方法及系统。


背景技术:

1、随着物联网的发展,各种蓝牙串口设备广泛应用于工业现场,这些设备通常通过模拟串口与上位机交互。

2、但在大量此类设备通信管理中,难以有效管理设备与数据,无法使用常规的蓝牙网关(如ibeacon、ble原始信号)进行局域网或广域网的数据集中。

3、有鉴于此特提出本发明。


技术实现思路

1、本发明要解决的技术问题在于克服现有技术的不足,提供一种软蓝牙网关的设备转发方法及系统,能够实现对蓝牙串口设备的连接管理、数据提取和网络转发。

2、第一方面,为解决上述技术问题,本发明采用技术方案的基本构思是:

3、一种软蓝牙网关的设备转发方法,所述方法包括以下步骤:

4、初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;

5、分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的mac地址;

6、打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;

7、定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;

8、将目标信息数据,根据配置的uri进行转发。

9、优选的是,初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备,包括:

10、获取本地机器上的蓝牙适配器句柄;

11、设置适配器的扫描模式为主动扫描模式,并初始化适配器,其中,主动扫描模式包括扫描间隔和扫描窗口;

12、调用getpaireddevices接口获取已配对设备列表,其中,设备列表包括设备名称、mac地址、设备类型;

13、在已配对设备列表中检查设备类字段,并筛选出设备类为蓝牙串口的设备;

14、设定定时器间隔为5秒,在定时器回调函数中调用scandevices接口主动扫描设备类为蓝牙串口的设备,得到scandevices返回的扫描结果;

15、解析scandevices返回的扫描结果,并获取每个设备类为蓝牙串口的设备的信号强度、连接状态和时间戳信息;

16、将扫描结果与历史记录对比,判断设备类为蓝牙串口的设备是否有新的连接或者断开事件发生;

17、通过重复定时器回调,持续扫描并记录设备类为蓝牙串口的设备的连接状态;

18、调用setscanparameters接口实时调整扫描参数;

19、调用stopscan关闭扫描,并调用closeadapter关闭蓝牙适配器。

20、优选的是,分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的mac地址,包括:

21、遍历已获取的已配对蓝牙设备列表,并逐一访问每个已配对蓝牙设备的记录;

22、对每个所述记录,调用getdeviceidentifier接口获取设备的标识符字符串;

23、判断标识符中是否包含表示蓝牙的固定设备id;

24、若包含表示蓝牙的固定设备id,则判断对应的蓝牙设备为蓝牙串口设备;

25、在所述记录中查找deviceaddress字段,获取蓝牙串口设备的mac地址;

26、将所述mac地址与设备的标识符字符串记录关联保存,得到已配对蓝牙串口设备的标识符和mac地址的关联映射表。

27、优选的是,打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列,包括:

28、根据所述关联映射表,筛选出已判断为蓝牙设备的串口;

29、遍历蓝牙串口,依次调用openserialport接口打开串口;

30、对每个打开的串口,启动独立的读线程,循环调用readserialport读取串口数据;

31、根据读取的串口数据包长度,判断是否为有效的蓝牙数据包,并将串口数据包长度为0的空包丢弃;

32、根据所述关联映射表,将每个有效蓝牙数据包存入对应的设备缓存队列中。

33、优选的是,对每个有效蓝牙数据包,根据所述关联映射表存入对应的设备缓存队列中,包括:

34、若设备缓存队列已满,则移除时间线最长的蓝牙数据包。

35、优选的是,定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据,包括:

36、根据消息格式定义,确认蓝牙数据包中的起始标志字节和消息长度字段的偏移;

37、遍历缓存队列中的每一个蓝牙数据包,并查找包起始是否包含预定义的标志字节;

38、若找到标志字节,则读取消息长度字段,获取整个消息的长度;

39、根据消息长度,从当前数据包中提取完整的消息数据;

40、对提取的完整消息数据,解析包含的命令字字段,并判断是否为包含关键信息的指定命令;

41、若包含所述指定命令,则解析消息有效负载并查找关键信息的偏移和长度;

42、根据偏移和长度,从有效负载中截取出目标字节序列;

43、将目标字节序列与对应的来源设备相关联保存,得到目标信息数据。

44、优选的是,将目标信息数据,根据配置的uri进行转发,包括:

45、读取软件配置文件,获取已定义的转发uri;

46、对每条提取到的关键信息数据,组装http请求数据体;

47、设置请求头字段,并通过http客户端库函数,向uri发送封装好的数据请求,其中,若uri配置为tcp模式,则建立tcp连接,并通过套接字发送;

48、通过解析返回结果,确认服务器是否成功接收到数据,直到全部转发完毕;其中,若发送失败,则写入日志,保存未发送数据备份。

49、第二方面,一种软蓝牙网关的设备转发系统,包括:

50、扫描模块,用于初始化蓝牙适配器,并循环扫描本地所有已配对的蓝牙串口设备;

51、分析模块,用于分析已配对的蓝牙串口设备,获得设备标识符,并根据设备标识符判断已配对的蓝牙串口设备是否为蓝牙设备,如果是则提取出对应的mac地址;

52、打开模块,用于打开判定为蓝牙设备的串口,循环读取数据并存入对应设备的缓存队列;

53、定位模块,用于定位设备的缓存队列中关键数据,按预设规则提取出目标信息数据;

54、转发模块,用于将目标信息数据,根据配置的uri进行转发。

55、第三方面,一种计算机设备,包括:

56、一个或多个处理器;

57、存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器任一所述的软蓝牙网关的设备转发方法。

58、第四方面,一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,该程序被处理器执行时实现任一所述的软蓝牙网关的设备转发方法。

59、与现有技术相比,本技术实施例的软蓝牙网关的设备转发方法,可在x86计算机上通过软件模拟蓝牙网关功能,实现对蓝牙串口设备的连接管理、数据提取和网络转发,可以设置关键信息提取、mac地址关联、扫描频率、转发uri等设置,可以满足企业使用x86小型工控机充当蓝牙网关的需求,而且企业可以根据需要在该网关上任意扩展其他应用,无需了解任何蓝牙协议,不会受限于传统蓝牙网关的功能限制。

60、下面结合附图对本发明的具体实施方式作进一步详细的描述。

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