一种基于无线通道的物联网通信数据的交互方法与流程

文档序号:31722007发布日期:2022-10-04 23:32阅读:41来源:国知局
一种基于无线通道的物联网通信数据的交互方法与流程

1.本发明属于物联网通信领域,涉及一种基于无线通道的物联网通信数据的交互方法。


背景技术:

2.物联网作为互联网的延伸和扩展,主要功能是将各种信息传感设备与网络结合起来而形成的一个巨大网络,实现任何时间、任何地点,人、机、物的互联互通。设备间通过建立通信通道,实现设备间的数据交互。而无线通信是物联网通信的重要组成部分,通过无线通信而避免了繁乱的布线且非常适用于短距离通信。
3.常见的物联网无线通信技术包含蓝牙、wifi等,其适用于短距离无线通信,设备间通过建立的通信通道,实现信息数据的交互,从而完成相应的协同工作,以实现对物品的智能化识别、定位、跟踪、监控和管理。
4.现有技术中,通信数据方式是在通道建立之后,直接进行数据交互。通信过程中数据的丢失会造成数据的不完整,且未建立完整的重发机制,一味地直接重发数据,造成流量的消耗及数据交互效率的降低。


技术实现要素:

5.针对现有技术的技术问题,本发明提供了一种基于无线通道的物联网通信数据的交互方法,包括以下步骤:
6.s100:设置通信基础标志,包括数据包长度、剩余数据长度、剩余数据长度补充标志、通道类型、数据发送成功标志及数据送达标志;
7.sa00:判断当前操作是否为发送,如果是,执行步骤s200,否则,当前操作为接收,执行步骤s400;
8.s200:分割数据包,包括以下步骤:
9.s201:获取待分割数据包作为待分割数据;
10.s202:定义完整数据包个数及待分割数据长度;
11.s203:获取待分割数据的字节长度作为待分割数据长度;
12.s204:待分割数据长度除以数据包长度的商,作为完整数据包个数;
13.s205:待分割数据长度除以数据包长度的余,作为剩余数据长度;
14.s206:根据完整数据包个数与剩余数据长度,获取数据作为待分割数组;
15.s207:结束待分割数据的分割;
16.s300:发送通讯数据并结束流程,包括以下步骤:
17.s301:遍历待分割数组,判断是否存在元素,如果是,将待分割数组中存在的元素作为待发送数据,执行步骤s302,否则,执行步骤s307;
18.s302:设置发送次数并赋初值为0;
19.s303:采用发送数据的api,用以发送待发送数据,发送次数=发送次数+1;
20.s304:判断数据是否发送成功;
21.s305:判断数据是否送达,包括以下步骤:
22.s3051:设置数据送达标志的初值为false,设置超时计数器的单位为毫秒且初值为0,设置数据送达等待时间阈值,记为等待阈值;
23.s3052:判断通道类型是否为false,如果是,执行步骤s3053,否则,执行步骤s3054;
24.s3053:设置数据送达标志为true,执行步骤s3057;
25.s3054:判断超时计数器是否大于等待阈值,如果是,执行步骤s3057,否则,执行步骤s3055;
26.s3055:判断数据送达标志是否为true,如果是,执行步骤s3057,否则,执行步骤s3056;
27.s3056:休眠n毫秒,超时计数器=超时计数器+n,执行步骤s3054,其中,n为不小于20的自然数;
28.s3057:判断数据送达标志是否为true,如果是,表示本次发送完成,执行步骤s301,继续数据发送,否则,执行步骤s306;
29.s306:判断重发次数是否小于重发次数阀值,如果是,执行步骤s303,否则,执行步骤s307,其中,重发次数阀值为3;
30.s307:结束流程;
31.s400:接收通讯数据并结束流程,包括以下步骤:
32.s401:设置接收数据缓冲区,用以存储所接收的数据;
33.s402:启动接收数据线程,接收数据。
34.优选地,步骤s100包括以下步骤:
35.s101:设置通信数据单次发送数据的字节长度,作为数据包长度;
36.s102:设置数据分割后剩余的非完整数据包的字节长度,作为剩余数据长度;
37.s103:设置剩余数据长度补充标志:当剩余数据需要填零,直至剩余数据加上填零后的字节长度等于数据包长度时,设置剩余数据长度补充标志为true,否则,设置为false;
38.s104:设置通道类型:当通道无需异步等待数据确认时,设置通道类型为false,反之,设置为true;
39.s105:设置数据发送成功标志,用以表示数据是否送达,赋初值为false;
40.s106:设置数据送达标志,用以表示异步确认数据送达,赋初值为false。
41.优选地,步骤s206包括以下步骤:
42.s2061:设置分割数据包的标志作为分割值,并赋初始值为0;
43.s2062:判断分割值是否小于完整数据包个数,如果是,执行步骤s2063,否则,执行步骤s2066;
44.s2063:获取待分割数据中从分割值*数据包长度至(分割值+1)*数据包长度的数据,作为分割数据元;
45.s2064:将分割数据元添加至待分割数组;
46.s2065:分割值=分割值+1,执行步骤s2062;
47.s2066:获取待分割数据中,从待分割数据长度-剩余数据长度的差,至待分割数据
长度的数据,作为剩余数据元;
48.s2067:判断剩余数据元是否存在数据,如果是,执行步骤s207,否则,执行步骤s2068;
49.s2068:判断剩余数据长度补充标志是否为真,如果是,执行步骤s2069,否则,执行步骤s206b;
50.s2069:判断剩余数据的长度是否小于数据包长度,如果是,执行步骤s206a,否则,执行步骤s206b;
51.s206a:将剩余数据的末尾填零,直至剩余数据加上填零后的字节长度等于数据包长度;
52.s206b:将剩余数据元添加至待分割数组。
53.优选地,步骤s304包括以下步骤:
54.s3041:设置发送成功标志的初值为false;
55.s3042:判断通讯通道是否正常,如果是,执行步骤s3043,否则,执行步骤s3045;
56.s3043:判断发送数据api的反馈是否为false,如果是,执行步骤s3045,否则,执行步骤s3044;
57.s3044:设置发送成功标志为true;
58.s3045:判断发送成功标志是否为true,如果是,执行步骤s305,否则,执行步骤s306。
59.优选地,步骤s402包括以下步骤:
60.s4021:调用接收数据的api,获取通信数据作为接收数据;
61.s4022:判断接收数据是否为空,如果是,执行步骤s4024,否则,执行步骤s4023;
62.s4023:将接收数据尾加至接收数据缓冲区;
63.s4024:休眠n毫秒,判断是否结束数据接收,如果是,结束流程,否则,执行s4021,其中,n为不小于20的自然数。
64.优选地,等待阈值为600毫秒
65.本发明具有以下有益效果:
66.1、数据收发双重确认,兼容异步和同步收发确认;
67.2、提供数据重发,提升数据送达概率;
68.3、提供数据分包,定长组装兼容常用数据格式;
69.4、通过同步发送确认、异步送达确认,兼容多类型无线通道类型的数据收发;
70.5、通过数据异步送达确认,确定数据重发的数据类型,减少流量消耗。
附图说明
71.图1为本发明所提供的方法的总流程图;
72.图2为本发明所提供的方法中获取待分割数组的具体流程图;
73.图3为本发明所提供的方法中判断数据是否送达的具体流程图。
具体实施方式
74.图1示出了本发明所提供的方法的总流程图。如图1所示,本发明的方法包括以下
步骤:
75.s100:设置通信基础标志,包括数据包长度、剩余数据长度、剩余数据长度补充标志、通道类型、数据发送成功标志及数据送达标志。
76.步骤s100包括以下步骤:
77.s101:设置通信数据单次发送数据的字节长度,作为数据包长度;
78.s102:设置数据分割后剩余的非完整数据包的字节长度,作为剩余数据长度;
79.s103:设置剩余数据长度补充标志:当剩余数据需要填零,直至剩余数据加上填零后的字节长度等于数据包长度时,设置剩余数据长度补充标志为true,否则,设置为false;
80.s104:设置通道类型:当通道无需异步等待数据确认时,设置通道类型为false,例如,socket通道。反之,当通道需要异步等待数据确认时,设置设置为true,例如,蓝牙通道;
81.s105:设置数据发送成功标志,用以表示数据是否送达,赋初值为false;
82.s106:设置数据送达标志,用以表示异步确认数据送达,赋初值为false。
83.sa00:判断当前操作是否为发送,如果是,执行步骤s200,否则,当前操作为接收,执行步骤s400;
84.s200:分割数据包,包括以下步骤:
85.s201:获取待分割数据包作为待分割数据;
86.s202:定义完整数据包个数及待分割数据长度;
87.s203:获取待分割数据的字节长度作为待分割数据长度;
88.s204:待分割数据长度除以数据包长度的商,作为完整数据包个数;
89.s205:待分割数据长度除以数据包长度的余,作为剩余数据长度;
90.s206:根据完整数据包个数与剩余数据长度,获取数据作为待分割数组。
91.图2示出了本发明所提供的方法中获取待分割数组的具体流程图。如图2所示,步骤s206包括以下步骤:
92.s2061:设置分割数据包的标志作为分割值,并赋初始值为0;
93.s2062:判断分割值是否小于完整数据包个数,如果是,执行步骤s2063,否则,执行步骤s2066;
94.s2063:获取待分割数据中从分割值*数据包长度至(分割值+1)*数据包长度的数据,作为分割数据元;
95.s2064:将分割数据元添加至待分割数组;
96.s2065:分割值=分割值+1,执行步骤s2062;
97.s2066:获取待分割数据中,从待分割数据长度-剩余数据长度的差,至待分割数据长度的数据,作为剩余数据元;
98.s2067:判断剩余数据元是否存在数据,如果是,执行步骤s207,否则,执行步骤s2068;
99.s2068:判断剩余数据长度补充标志是否为真,如果是,执行步骤s2069,否则,执行步骤s206b;
100.s2069:判断剩余数据的长度是否小于数据包长度,如果是,执行步骤s206a,否则,执行步骤s206b;
101.s206a:将剩余数据的末尾填零,直至剩余数据加上填零后的字节长度等于数据包
长度;
102.s206b:将剩余数据元添加至待分割数组。
103.s207:结束待分割数据的分割;
104.s300:发送通讯数据并结束流程,包括以下步骤:
105.s301:遍历待分割数组,判断是否存在元素,如果是,将待分割数组中存在的元素作为待发送数据,执行步骤s302,否则,执行步骤s307;
106.s302:设置发送次数并赋初值为0;
107.s303:采用发送数据的api,用以发送待发送数据,发送次数=发送次数+1;
108.s304:判断数据是否发送成功.步骤s304包括以下步骤:
109.s3041:设置发送成功标志的初值为false;
110.s3042:判断通讯通道是否正常,如果是,执行步骤s3043,否则,执行步骤s3045;
111.s3043:判断发送数据api的反馈是否为false,如果是,执行步骤s3045,否则,执行步骤s3044;
112.s3044:设置发送成功标志为true;
113.s3045:判断发送成功标志是否为true,如果是,执行步骤s305,否则,执行步骤s306。
114.s305:判断数据是否送达,包括以下步骤:
115.s3051:设置数据送达标志的初值为false,设置超时计数器的单位为毫秒且初值为0,设置数据送达等待时间阈值,记为等待阈值,本实施例中,等待阈值设置为600毫秒;
116.s3052:判断通道类型是否为false,如果是,执行步骤s3053,否则,执行步骤s3054;
117.s3053:设置数据送达标志为true,执行步骤s3057;
118.s3054:判断超时计数器是否大于等待阈值600毫秒,如果是,执行步骤s3057,否则,执行步骤s3055;
119.s3055:判断数据送达标志是否为true,如果是,执行步骤s3057,否则,执行步骤s3056;
120.s3056:休眠20毫秒,超时计数器=超时计数器+20,执行步骤s3054;
121.s3057:判断数据送达标志是否为true,如果是,表示本次发送完成,执行步骤s301,继续数据发送,否则,执行步骤s306;
122.s306:判断重发次数是否小于重发次数阀值3,如果是,执行步骤s303,否则,执行步骤s307;
123.s307:结束流程;
124.s400:接收通讯数据并结束流程,包括以下步骤:
125.s401:设置接收数据缓冲区,用以存储所接收的数据;
126.s402:启动接收数据线程,接收数据。步骤s402包括以下步骤:
127.s4021:调用接收数据的api,获取通信数据作为接收数据;
128.s4022:判断接收数据是否为空,如果是,执行步骤s4024,否则,执行步骤s4023;
129.s4023:将接收数据尾加至接收数据缓冲区;
130.s4024:休眠20毫秒,判断是否结束数据接收,如果是,结束流程,否则,执行s4021。
131.通过本发明所提供的上述方法,解决了现有技术中尚无一种基于无线通道的物联网通信数据的交互方法的技术问题。
132.应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1