发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种具有多级中继组网能力的物联网通讯方法及设备,其目的在于复用传感器自身传递数据的功能,通过传感器的级联关系组建网络架构,由此解决在配网环境中,大范围组网时如何避障的技术问题。
为实现上述目的,按照本发明的一个方面,提供了具有多级中继组网能力的物联网通讯方法,通讯方法包括:
第二传感器接收到第一传感器的第一数据包,根据所述第一数据包中携带的路由路径和帧类型确定所述第一数据包中携带的承载数据;
所述第二传感器将自身的数据拼接到的所述承载数据之后,得到第二数据包;
所述第二传感器根据路由信息将所述第二数据包进行转发。
优选地,所述第一传感器发送的第一数据包的帧格式包括固定帧头、动态帧头、承载数据和帧尾,其中:
所述固定帧头包括起始符、帧类型、命令字、分组ID、发送ID、接收ID、帧号、时间和中继数量中的一项或者多项,所述帧类型包括遥测、遥信、遥控或参数整定中的一种或者多种;
所述动态帧头包括用于根据需求设置动态路由路径和/或IOT信息帧头,所述动态路由路径包括完整路由路径和部分路由路径。
优选地,所述第二传感器接收到所述第一传感器的第一数据包时,判断所述第一数据包是否带有完整路由路径,其中:
若所述第一传感器的第一数据包携带完整路由路径,所述第二传感器获取到第一数据包中所携带的完整路由路径后,所述第二传感器根据所述第一数据包中携带的完整路由路径确定自身是否处于所述完整路由路径上;
若确定所述第二传感器处于所述完整路由路径上,并且所述第二传感器通过第一数据包中承载数据中包含的拼接数据完成拼接后,所述第二传感器将所述完整路由路径携带在第二数据包中发送出去;其中,所述路由路径表现为所述第一数据包中的完整路由路径;
若所述第一传感器的第一数据包中携带部分路由路径,所述第二传感器获取到第一数据包中所携带的部分路由路径后,所述第二传感器根据第一数据包中携带的发送ID和接收ID,以及本地存储的路由信息,生成用于后续中继转发的部分路由路径或者剩余路由路径,携带在第二数据包中,并在完成所述承载数据拼接后发送出去,其中,所述路由路径表现为所述第一数据包中的部分路由路径。
优选地,所述第二传感器根据所述第一数据包的帧类型判断是否需要拼接,具体方法包括:
所述第二传感器判断所述第一数据包的帧类型是否是遥信数据;
若所述第一数据包的帧类型是遥信数据,判断所述第二传感器是否有待拼接遥信数据,
若所述第二传感器中有待拼接遥信数据,则将第二传感器中的遥信数据拼接到第一数据包的承载数据之后,携带到所述第二数据包中,所述第二传感器根据路由信息将所述第二数据包进行转发;
若所述第二传感器中无待拼接遥信数据,则将所述第一数据包进行转发。
优选地,所述第二传感器根据所述第一数据包的帧类型判断是否需要拼接,具体方法包括:
所述第二传感器判断所述第一数据包的帧类型是否是遥测数据;
若所述第一数据包的帧类型是遥测数据,所述第二传感器将所述第一数据包中继转发。
优选地,所述拼接承载数据的具体方法包括:
根据所述第二数据包长度限制,以第一数据包的数据源ID以及数据内容插入到所述第二数据包的帧尾CRC前,所述第二数据包完成遥信数据拼装,将所述第二数据包进行转发,完成拼接的遥信数据从所述第二传感器待发送遥信信息表中删除。
优选地,通讯方法包括:
发送ID传感器通过第一传感器向接收ID传感器发送数据,接收ID传感器无法回应时;
若第二传感器带有监听权限,调用所述第二传感器的监听服务子函数;
所述第二传感器将发送ID传感器向路由路径中第一传感器发送的数据包进行监听;
且所述第二传感器将所述第一传感器发送的第一数据包插入到监听信息表中,同时将所述第一数据包转发给接收ID传感器。
优选地,所述第二传感器将所述第一数据包发送至接收ID传感器后,具体方法包括:
若所述第一传感器收到所述接收ID传感器发出的应答信号,则所述第二传感器从所述监听信息表中删除所述第一数据包对应的内存空间;
若所述第一传感器未收到所述接收ID传感器发出的应答信号,则第二传感器动态分配内存,在监听信息表中保存所述第一数据包。
优选地,所述监听信息表中删除所述第一数据包对应的内存空间,具体方法包括:
所述监听信息表中设置转发时间;
若所述第一数据包的存在时间超过所述转发时间,所述监听信息表中删除超时的所述第一数据包,释放对应的内存空间。
按照本发明的另一方面,提供了一种具有多级中继组网能力的物联网通讯设备,设备执行本发明第一方面中第一传感器和/或第二传感器相应的方法内容。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
本发明提供的一种具有多级中继组网能力的物联网通讯方法,可以提高通信质量并降低无线传感器网络的组网复杂程度和成本。
本发明还提供的一种具有多级中继组网能力的物联网通讯设备,设备是可以接收IOT采集指令的传感器,由于这类传感器可以使用低功耗的传感器,因此,既可以作为传感信号采集终端,又可以作为相邻传感节点无线数据传输的中继节点,而不需要专门的中继器,具有组网简单、成本低廉的优点。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
实施例一:
本实施例一提供一种具有多级中继组网能力的物联网通讯方法,如图2所示,通讯方法包括:
步骤S101:第二传感器接收到第一传感器的第一数据包。
本实施例一中,默认第一传感器和第二传感器在一条路由路径上,第二传感器是第一传感器的下级传感器,第一传感器可能带有完整路由路径,或者带有部分路由路径。
步骤S102:根据所述第一数据包中携带的路由路径和帧类型确定所述第一数据包中携带的承载数据。
若第二传感器在第一数据包中携带的路由路径节点上,第二传感器需要判断第一数据包的帧类型是否为遥信数据,若是遥信数据,并且第二传感器也有待拼接遥信数据,则将第二传感器中的遥信数据拼接到第一数据包的承载数据之后,同时,携带到第二数据包中,第二传感器将第二数据包转发给路由路径中的第三传感器,第三传感器是第二传感器的下级传感器。
第二传感器接收第一传感器发出的第一数据包,第二传感器可以向第三传感器发送与第一数据包拼接后的第二数据包。第二传感器接收第一传感器发出的第一数据包,若第一数据包的帧类型不是遥信数据,或者第二数据包中没有待拼接的遥信数据,则第二传感器不进行数据拼接,直接向第三传感器转发未拼接的第一数据包,若第三传感器有待拼接的遥信数据,可以进行与第一数据包的拼接,形成第三数据包,再向路由路径中的第四传感器发送。
步骤S103:所述第二传感器将自身的数据拼接到的所述承载数据之后,得到第二数据包。
第二传感器自身的数据包括传感器采集到的数据,例如IOT信息头采集到的环境温度、环境湿度、传感器温度或照度中的一种或多种;在本实施例一中第二传感器自身的数据类型更多的表现为遥信数据。
IOT信息帧头包括:环境温度、环境湿度、传感器温度、TX信号强度和RX信号强度。
步骤S104:所述第二传感器根据路由信息将所述第二数据包进行转发。
路由信息包括分组ID、发送ID、接收ID、第一数据包中携带的路由路径等等。
如图3所示,是本实施例一中一种具有多级中继组网能力的物联网通讯方法的全部步骤流程图。
步骤S301:协议解析函数入口。
第二传感器接收到所述第一传感器的第一数据包后,第二传感器进入协议解析函数入口。
步骤S302:协议解析。
协议解析主要包括:帧头帧尾判断、CRC检验、长度等规则检查。
步骤S303:判断是否为正确帧。若不是正确的帧格式,计算机执行流程直接跳转到步骤S315。若是正确的帧格式,计算机执行步骤S304。
此处判断第二传感器是否收到第一传感器向其发送的数据,比如第二传感器收到的是非本路由路径的无线信号、非本路由路径上设备的通讯帧或非本路由路径上通讯帧信息不完整等情况。
步骤S304:根据路由路径判断第二传感器是否是帧目的地。若是帧目的地,计算机执行步骤S305,若不是帧目的地,计算机执行步骤S308。
第二传感器根据第一数据包中携带的第一数据包判断第二传感器是否是帧目的地,若是帧目的地,第一数据包中的接收ID与第二传感器的ID一致,表示第二传感器为路由路径的终点,不再进行数据包的转发动作。若第二传感器不是帧目的地,表示第二传感器为路由路径上的某一节点,第二传感器可以对第一传感器的第一数据包进行拼接或直接转发。
步骤S305:根据第二传感器的帧类型、命令字和数据等内容,调用相应子函数。
步骤S306:添加IOT信息记录。
帧目的地将接收到数据包中的IOT信息添加到接收ID传感器内。
步骤S307:协议响应。
步骤S318:协议解析函数出口。
步骤S308:若第二传感器不是帧目的地,判断第二传感器是否处于第一传感器的路由路径上。若是,计算机执行步骤S309,若不是,计算机执行步骤S315。
步骤S309:若第二传感器处于第一传感器携带的路由路径,需要判断第一数据包中是否自带完整的路由表。若是,计算机执行步骤S311,若不是,计算机执行步骤S310。
步骤S310:若第一数据包中带有部分的路由表,第二传感器对部分路由表进行修改。
第二传感器修改部分路由表的具体操作为:第二传感器获取到第一数据包中所携带的部分路由路径后,第二传感器根据第一数据包中携带的发送ID和接收ID,以及本地存储的路由信息,路由信息为路由网络中其它传感器对第二传感器的信号强度排序,第二传感器按照信号强度和中继数数量根据路由路径的算法生成用于后续中继转发的部分路由路径或者剩余路由路径。
具体的路由路径算法为:路由网络中各个传感器采集环境指标参数,环境指标参数包括环境温度、传感器温度、环境湿度和照度中的一种或多种。例如湿度,信号强度表按照采集到的湿度参数记录下至少两个湿度范围区间(例如湿度值为0~20%,20~40%,40~60%,60~80%,80~100%)内的信号强度和中继数量,形成信号强度表,在需要传感器生成用于后续中继转发的部分路由路径或者剩余路由路径时,按照查询信号强度表的方式,根据当前的湿度,查询到对应的湿度区间,在对应的湿度区间内优先寻找中继数量最少的路径,再寻找信号强度最高的传感器,由此生成临时路由表,第一传感器将临时路由表携带在第一数据包中,向下级传感器进行转发。
信号强度表如表一所示,信号强度表中包括路由网络中各个传感器的信号强度,路由路径所需要的中继器数量,第一传感器根据传感器的信号强度顺序制定路由路径,并且将路由路径携带在第一数据包中发送出去。
表一:
步骤S311:判断第一数据包的帧类型是否为遥信数据,若是,进行步骤S312,若不是,进行步骤S314。
第二传感器需要判断第一数据包的帧类型,以便判断是否需要进行拼接第一数据包。
步骤S312:第一数据包的帧类型为遥信数据,判断第二数据包是否带有待拼接的遥信数据,若是,进行步骤S313,若不是,进行步骤S314。
第二数据包的帧类型默认为遥信数据,第二传感器可以与第一数据包的遥信数据进行拼接。若第二数据包的帧类型与第一数据包的帧类型不统一,则第二传感器不与第一数据包进行拼接。若第一数据包或第二数据包的帧类型为遥测数据时,均不进行拼接动作。
步骤S313:对待拼接的遥信数据进行拼接。
第二传感器具体进行拼接的方法为:根据第二数据包长度限制,以第一数据包的数据源ID以及数据内容插入到第二数据包的帧尾CRC前,第二数据包完成遥信数据拼装,将第二数据包进行转发,完成拼接的遥信数据从第二传感器待发送遥信信息表中删除。
如图4所示,例如:信号帧格式中数据部分,数据源ID1和数据1是属于第一传感器待发送的有效数据(例如:遥信数据、遥测数据等等),数据源ID2和数据2是属于第二传感器的待发送的数据(在本实施例一中优选指定为遥信数据,因为遥信数据较小,适合于做多传感器中遥信数据的拼接),第二传感器中的IOT信息帧头采集到的数据是第二传感器所在区域的数据,将数据源ID1和数据1拼接之后,第二数据包中带有第一传感器的遥信数据,而且位于数据源ID2和数据2之前,第二传感器将拼接后的第二数据包作进一步更新CRC校验字段后,发送至第三传感器,同时,第二数据包转发时动态路由表中的时间会进行相应修改。遥信数据经过叠加和转发后,到达第三传感器。
步骤S314:协议转让。
第二传感器根据路由信息将第一数据包或第二数据包进行转发。
若第二传感器没有拼接第一数据包,则直接转发第一数据包;若第二传感器拼接了第一数据包的承载内容,属于第二数据包。完成拼接的遥信信号从所述第二传感器待发送拼接信息表中直接删除。
本实施例一提供的一种具有多级中继组网能力的物联网通讯方法,可以提高通信质量并降低无线传感器网络的组网复杂程度和成本。
传感器可以使用低功耗的传感器,既可以作为传感信号的采集终端,又可以作为相邻传感节点无线数据传输的中继节点,而不需要专门的中继器,具有组网简单、成本低廉的优点。
本实施例一中,为了方便区分数据包的帧类型,结合本实施例一,还存在一种优选的实现方案,具体的,如图4所示,所述第一传感器发送的第一数据包的帧格式包括固定帧头、动态帧头、承载数据和帧尾,其中:
所述固定帧头包括起始符、帧类型、命令字、分组ID、发送ID、接收ID、帧号、时间和中继数量中的一项或者多项,所述帧类型包括遥测、遥信、遥控或参数整定中的一种或者多种;
所述动态帧头包括用于根据需求设置动态路由路径和/或IOT信息帧头,所述动态路由路径包括完整路由路径和部分路由路径。
本实施例一中,如图4所示,所述数据包括数据数量、数据长度和传感器信息;所述帧尾包括CRC和结束符。
根据需求设置动态路由路径,需求例如:是否存在路由路径是作为端到端直传的遥信类型的数据包,还是需要中继转发的遥信类型的数据包的依据;是否为遥测信号,依据是数据包中是否携带IOT信息帧头。
如图4所示,信号的类型由固定帧头中的帧类型决定,固定帧头中的帧类型至少包括3个比特位,帧类型包括遥测、遥信、遥控或参数整定中的一种或者多种。动态路由表中的中继ID数和数据中的传感器数量一致;IOT信息帧头中至少包括环境温度、环境湿度、传感器温度、TX信号强度和RX信号强度。CRC经过校验后才能证明整个数据包的可靠性。
第二传感器为了确定需要进行所述第一数据包中携带的承载数据内容的拼接,结合本实施例一,还存在一种优选的实现方案,具体的,所述第二传感器接收到所述第一传感器的第一数据包时,判断所述第一数据包是否带有完整路由路径,其中:
若所述第一传感器的第一数据包携带完整路由路径,所述第二传感器获取到第一数据包中所携带的完整路由路径后,所述第二传感器根据所述第一数据包中携带的完整路由路径确定自身是否处于所述完整路由路径上。
第二传感器首先需要判断自身是否处于第一传感器的路由路径上,若第二传感器在第一传感器的路由路径上才能对第一数据包中携带的承载数据进行内容拼接,若不在路由路径上则不能进行承载数据进行内容拼接。
数据源传感器决定是否指定完整路由路径,如果指定了,其它传感器按照指定的路由路径中继,如果没有指定,由有中继作用的传感器来决定下一级信号由谁来接力。
数据源传感器默认使用内建的完整路由表通讯,在信号不畅通的情况下,不指定完整路由,只将数据传给下一级,由下一级决定路由走向。所述动态路由表中包括传感器自身的遥信信息,还缓存有其它传感器的遥信信息。
若确定所述第二传感器处于所述完整路由路径上,并且所述第二传感器通过第一数据包中承载数据中包含的拼接数据完成拼接后(例如图4中的数据1、数据2,均为所述拼接数据的实例表现内容),所述第二传感器将所述完整路由路径携带在第二数据包中发送出去;其中,所述路由路径表现为所述第一数据包中的完整路由路径。
为了能够使得拼接顺序有序进行,例如路由路径中有五个节点,规定路由顺序为第一传感器→第二传感器→第三传感器→第四传感器→第五传感器,在路由网络中,假设各个数据包类型均为遥信数据。若第二传感器中没有待拼接发送信息表,第二传感器将第一数据包直接转发至第三传感器,若第二传感器中有待拼接发送信息表,第二传感器将自身的数据与第一数据包拼接后再转发至第三传感器,第三传感器在接收到第二传感器发送的数据包之后,再进行是否需要拼接的判断。
若所述第一传感器的第一数据包中携带部分路由路径,所述第二传感器获取到第一数据包中所携带的部分路由路径后,所述第二传感器根据第一数据包中携带的发送ID和接收ID,以及本地存储的路由信息,生成用于后续中继转发的部分路由路径或者剩余路由路径,携带在第二数据包中,并在完成所述承载数据拼接后发送出去,其中,所述路由路径表现为所述第一数据包中的部分路由路径。
若第一传感器的第一数据包中携带部分路由路径,第二传感器根据第一数据包中携带的发送ID和接收ID,以及本地存储的路由信息,利用路由路径的算法生成用于后续中继转发的部分路由路径或者剩余路由路径,可以决定第二数据包后续的走向。
为了判断第二传感器的数据是否需要与第一传感器的数据拼接,结合本实施例一,还存在一种优选的实现方案,具体的,所述第二传感器根据所述第一数据包的帧类型判断是否需要拼接,具体方法包括:
所述第二传感器判断所述第一数据包的帧类型是否是遥信数据;
若所述第一数据包的帧类型是遥信数据,判断所述第二传感器是否有待拼接遥信数据,
若所述第二传感器中有待拼接遥信数据,则将第二传感器中的遥信数据拼接到第一数据包的承载数据之后,携带到所述第二数据包中,所述第二传感器根据路由信息将所述第二数据包进行转发;
若所述第二传感器中无待拼接遥信数据,则将所述第一数据包进行转发。
如图5所示,第一数据包中遥信数据不带中继时,数据内容只有传感器ID,没有动态路由表;
第一传感器为发送ID,第二传感器为接收ID,第一数据包中不需要携带路由表,也无需拼接。第一数据包中帧类型为遥信数据,且被监听传感器监听到时(此时专指具有监听能力的传感器),数据内容只有传感器ID,没有动态路由表;
第一数据包中遥信数据带中继数据拼接时,根据第二数据包长度限制,以第一数据包的数据源ID以及数据内容插入到第二数据包的帧尾CRC前。
第一数据包中遥测数据帧不带中继时,遥测数据很大,不适合拼接,只适合中继转发;
第一数据包中遥测数据带中继时,有动态路由表(即路由路径),数据不拼接。
由于遥测数据或遥控数据类型的重要程度都比遥信类型的数据低得多,而且遥测数据或遥控数据类型的数据量比较大,故对于遥测数据均不做拼接。
本实施例一中,在第一数据包发送至第二传感器时,如图6所示,经过以下步骤:
S401:协议发送函数入口。
S402:路由计算子函数。
S403:协议发送缓冲区初始化,缓冲区加入“固定帧头”数据。
S404:判断第二传感器是否需要中继。若需要中继,计算机执行S405,若不需要中继,计算机执行S406。
第二传感器的ID如果不是接收ID,则需要中继。
S405:缓冲区加入“动态路由表”。
S406:判断是否是遥测信号,若是,计算机执行S407,若不是,计算机执行S408。
S407:缓冲区加入“IOT信息帧头”。
若是遥测数据,第二传感器将第一数据包进行缓存,并且在缓冲区加入第一数据包的IOT信息帧头。
IOT信息帧头包括:环境温度、环境湿度、传感器温度、TX信号强度和RX信号强度。
S408:缓冲区加入“数据”。
第二传感器在缓冲区加入第一数据包的数据。
S409:计算CRC,缓冲区加入“帧尾”。
第二传感器在缓冲区加入第一数据包的帧尾。
S410:协议发送函数出口。
第二传感器将缓存好的第一数据包进行转发,并删除缓存的第一数据包。
第二传感器在拼接数据时,会受到第一数据包数据量的限制,若因为数据过大无法拼接时,结合本实施例一,还存在一种优选的实现方案,具体的,如图5所示,所述第二传感器根据所述第一数据包的帧类型判断是否需要拼接,具体方法包括:
所述第二传感器判断所述第一数据包的帧类型是否是遥测数据;
若所述第一数据包的帧类型是遥测数据,所述第二传感器将所述第一数据包中继转发。
本实施例一中,第二传感器处于第一数据包中携带的完整路由路径上,若第一数据包是遥测数据,遥测数据的数据量过大,第二数据包长度无法拼接下第一数据包的承载数据内容,此时,第二传感器将第一数据包进行缓存,并且第二传感器将缓存的第一数据包直接进行转发,转发完成后,缓存的第一数据包从第二传感器中直接删除。若第二传感器是接受ID传感器时,第二传感器获取第一数据包中动态帧头的IOT信息帧头进行记录。
为了在不影响数据包可靠性的前提下,结合本实施例一,还存在一种优选的实现方案,具体的,如图5所示,所述拼接承载数据的具体方法包括:
根据所述第二数据包长度限制,以第一数据包的数据源ID以及数据内容插入到所述第二数据包的帧尾CRC前,所述第二数据包完成遥信数据拼装,将所述第二数据包进行转发,完成拼接的遥信数据从所述第二传感器待发送遥信信息表中删除。
为了避免出现发送ID传感器向接收ID传感器传输数据时接收ID传感器无法接收到发送ID传感器数据包的情况,结合本实施例一,还存在一种优选的实现方案,具体的,如图7所示,通讯方法包括:
发送ID传感器通过第一传感器向接收ID传感器发送数据,接收ID传感器无法回应时;
若第二传感器带有监听权限,调用所述第二传感器的监听服务子函数;
所述第二传感器将发送ID传感器向路由路径中第一传感器发送的数据包进行监听;
且所述第二传感器将所述第一传感器发送的第一数据包插入到监听信息表中,同时将所述第一数据包转发给接收ID传感器。
本实施例一中,传感器的监听权限在安装传感器的初始阶段由安装人员预先设置。若发送ID传感器和接收ID传感器之间没有中继节点,接收ID传感器无法接收到发送ID传感器数据包时,第二传感器可以启用监听,直接监听发送ID传感器向接收ID传感器发送的数据包,并将数据包转发给接收ID传感器。
若发送ID传感器和接收ID传感器之间有中继节点,例如中继节点为第一传感器,发送ID传感器通过第一传感器向接收ID传感器发送数据,第二传感器监听到发送ID传感器向第一传感器发送的数据包,同时监听第一传感器向接收ID传感器发送的第一数据包,第一数据包中带有第一传感器的相关信息,第二传感器将监听到的相关信息也插入到监听信息表中,并且对于相同项目下的内容进行更新,表中内容包括:iot信息帧头、时间、遥信信息等。
若第二传感器没有监听权限,到达协议解析函数出口。
为了更好地管理第二传感器的监听信息,结合本实施例一,还存在一种优选的实现方案,具体的,如图7所示,所述第二传感器将所述第一数据包发送至接收ID传感器后,具体方法包括:
若所述第一传感器收到所述接收ID传感器发出的应答信号,则所述第二传感器从所述监听信息表中删除所述第一数据包对应的内存空间;
若所述第一传感器未收到所述接收ID传感器发出的应答信号,则第二传感器动态分配内存,在监听信息表中保存所述第一数据包。
本实施例一中,第二传感器进行监听的步骤流程如图7所示,
S501:监听函数入口。
S502:判断接收ID传感器是否有答应帧,若有答应帧,计算机执行S503,若无答应帧,计算机执行S504。
S503:监听信息表中能否找到监听对应的数据帧。
若所述第一传感器收到接收ID传感器发出的应答信号,则从监听表中找到监听信息对应的第一数据包,并删除该第一数据包。
S504:动态分配内存,在监听表中新增一条记录。
若所述第一传感器未收到接收ID传感器发出的应答信号,则动态分配内存,在监听信息表中保存所述第一数据包。
S505:从监听表中删除第一数据包对应的数据帧记录,释放对应内存空间。
S506:监听函数出口。
为了尽量不占用第二传感器的内存空间,结合本实施例一,还存在一种优选的实现方案,具体的,如图8所示,所述监听信息表中删除所述第一数据包对应的内存空间,具体方法包括:
所述监听信息表中设置转发时间;
若所述第一数据包的存在时间超过所述转发时间,所述监听信息表中删除超时的所述第一数据包,释放对应的内存空间。
若所述存在时间超过所述转发时间,则取出监听信息表,改写发送ID、路由表、CRC协议信息后发送,所述监听信息表中删除超时的监听记录,释放对应的内存空间。
本实施例一中,第二传感器对第一数据包的步骤流程如图8所示,
S601:监听表定时处理函数入口。
S602:判断监听表中是否存在超过转发有效时间的数据帧,若有,计算机执行S603,若无,计算机执行S604。
由于数据包具有时效性,超过转发时间的数据包已无价值,第二传感器需要判断自身的监听表中是否存在超过转发有效时间的第一数据包。
S603:从监听表中删除所有超时的数据帧记录,释放对应内存空间。
S604:按转发延时生效时间排序,取最小值对应的记录。
按照监听表中待转发数据包的到达时间进行排序。
S605:若当前时间大于转发有效时间,计算机执行S606,若当前时间小于转发有效时间,计算机执行S608。
第二传感器的监听表中可能有多条待转发数据包,优先转发存在监听表中时间最长的待转发数据包。
S606:取监听数据,改写发送ID、路由表和CRC等信息后发送。
S607:从监听表中删除对应的数据帧记录,释放对应内存空间。
S608:监听表定时处理函数出口。
实施例二:
本实施例二中提供一种具有多级中继组网能力的物联网通讯设备,设备为执行实施例一中第一传感器和/或第二传感器相应的方法内容。
设备是可以接收IOT采集指令的传感器,由于这类传感器可以使用低功耗的传感器,因此,既可以作为传感信号采集终端,又可以作为相邻传感节点无线数据传输的中继节点,而不需要专门的中继器,具有组网简单、成本低廉的优点。
为了满足即使相隔很远的两个节点间也能够完成彼此的数据传输与交换,可以在这两个节点之间寻找一个或一系列能够同时与两节点直接通信的节点来进行辅助通信,这种通信方式可以扩展无线网络的覆盖范围、实现长距离的可靠通信、节省布线、降低成本等,目前已广泛应用于移动通信、无线局域网、卫星通信网络等领域,且在未来的新型无线通信中,也将具有更加广泛的应用前景。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。