专利摘要
本发明提供了一种基于地理位置的智能车载网数据通信实现方法,所述车载网包括接入节点和车辆节点,车辆节点或者接入节点均为设备;接入节点的地理坐标具有唯一性;一个接入节点与车辆节点构成一个子网,一个子网中的车辆节点在所有的接入节点中与同一个子网中的接入节点距离最近,一个接入节点唯一标识一个子网。通过本发明所提供的智能车载网的实现方法,多个车辆节点能够通过一次数据传输过程获取所需数据,缩短了获取数据的延迟,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
权利要求
1.一种基于地理位置的智能车载网数据通信实现方法,其特征在于,所述车载网包括接入节点和车辆节点,车辆节点或者接入节点均为设备;接入节点的地理坐标具有唯一性;一个接入节点与车辆节点构成一个子网,一个子网中的车辆节点在所有的接入节点中与同一个子网中的接入节点距离最近,一个接入节点唯一标识一个子网,车辆节点启动后,获取所在车载网的接入节点的地理坐标,并加入距离自己最近的接入节点所在的子网;位于两个不同子网的车辆节点通过所在子网的接入节点进行通信;
一种与地理位置相关的数据由数据类型和数据坐标唯一标识,数据类型定义了数据的种类,数据坐标定义该数据发生的位置;接入节点具有无线接口和有线接口,接入节点通过无线接口与车辆节点实现通信,通过有线接口与邻居接入节点实现通信;接入节点保存所有邻居接入节点的地理坐标;
一个消息包含名字域和负载域,名字域包含源地理坐标域、目的地理坐标域、命令域、跳数域、数据类型域和数据坐标域;源地理坐标域为发送消息的设备的地理坐标;目的地理坐标域为目标设备的地理坐标,命令域值表1所示;跳数域值定义消息的传输范围,跳数域值只有在目的地理坐标域值为0或者命令域值为5的情况下有效,跳数域值的初始值预先设置;数据类型和数据坐标定义了目标数据;如果目的地理坐标为(0,0),则跳数域定义的传输范围内的所有设备均为目标设备;
表1:
一种与地理位置相关的数据通过创建云来构建,每个云成员保存一个云表,云表项包含数据类型域、数据坐标域、数据值域和生命周期域;如果一个云表项的生命周期衰减为0,则该云表项从云表中删除;
在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,如果车辆节点V1的地理坐标为(x1,y1),则通过构建云VC1来创建数据C1,云VC1由数据类型CY1和数据坐标(x1,y1)唯一标识:
步骤101:开始;
步骤102:车辆节点V1构建名字N1,在名字N1中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY1,数据坐标为(x1,y1);车辆节点V1发送一个消息,该消息的名字为N1,负载为空;
步骤103:一个车辆节点接收到名字为N1且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C1的部分数据,则构建名字N2,在名字N2中,源地理坐标为(0,0),目的地理坐标为名字N1中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N1中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N2,负载为构建的数据C1的部分数据;该车辆节点将名字N1中的跳数域值递减1,如果跳数域值为0,则执行步骤104,否则执行步骤103;
步骤104:如果车辆节点V1接收到名字为N2且负载不为空的消息,则执行步骤109;否则执行步骤105;
步骤105:接收到名字为N2且负载不为空的消息的车辆节点将名字N2中的跳数域值递减1,如果跳数域值为0,则执行步骤109,否则执行步骤106;
步骤106:如果接收到名字为N2且负载不为空的消息的车辆节点从车辆节点E1接收到该消息且车辆节点与名字N2的目的地理坐标的距离小于车辆节点E1与名字N2的目的地理坐标的距离,则执行步骤107,否则执行步骤108;
步骤107:接收到名字为N2且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤104;
步骤108:接收到名字为N2且负载不为空的消息的车辆节点丢弃该消息,执行步骤104;
步骤109:在预定时间内,车辆节点V1接收到名字为N2且负载不为空的消息后利用消息负载中的数据构建数据C1,然后构建名字N3,在名字N3中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N3,负载为数据C1;
步骤110:接收到名字为N3消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N2的消息,则保存该消息的负载数据C1并将自己标记为云VC1成员;车辆节点将名字N3中的跳数域值递减1,如果跳数域值为0,则执行步骤112,否则执行步骤111;
步骤111:接收到名字为N3消息的车辆节点将该消息转发到邻居车辆节点,执行步骤110;
步骤112:车辆节点V1构建名字N4,在名字N4中,源地理坐标为(x1,y1),目的地理坐标为(x2,y2),命令域值为3,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N4,负载为数据C1;
步骤113:如果接入节点AP1接收到名字为N4的消息,则执行步骤117,否则执行步骤114;
步骤114:接收到名字为N4的消息的车辆节点从车辆节点E2接收到该消息,如果该车辆节点与名字N4的目的地理坐标的距离小于车辆节点E2与名字N4的目的地理坐标的距离,则执行步骤115,否则执行步骤116;
步骤115:接收到名字为N4的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤113;
步骤116:接收到名字为N4的消息的车辆节点丢弃该消息,执行步骤113;
步骤117:接入节点AP1接收到名字为N4的消息后,在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N4的数据类型和数据坐标,数据值为该消息中的负载数据C1,生命周期值为最大值,并将自己标记为云VC1的成员;
步骤118:结束。
2.根据权利要求1所述的一种基于地理位置的智能车载网数据通信实现方法,其特征在于,在数据C2由数据类型CY2和数据坐标(x2,y2)唯一定义,数据坐标(x2,y2)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,接入节点AP1通过下述过程构建云VC2来创建数据C2,云VC2由数据类型CY2和数据坐标(x2,y2)唯一标识:
步骤201:开始;
步骤202:接入节点AP1构建名字N5,在名字N5中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY2,数据坐标为(x2,y2);接入节点AP1发送一个消息,该消息的名字为N5,负载为空;
步骤203:一个车辆节点接收到名字为N5且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C2的部分数据,则构建名字N6,在名字N6中,源地理坐标为(0,0),目的地理坐标为名字N5中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N5中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N6,负载为构建的数据C1的部分数据;该车辆节点将名字N5中的跳数域值递减1,如果跳数域值为0,则执行步骤204,否则执行步骤203;
步骤204:如果接入节点AP1接收到名字为N6且负载不为空的消息,则执行步骤209;否则执行步骤205;
步骤205:接收到名字为N6且负载不为空的消息的车辆节点将名字N6中的跳数域值递减1,如果跳数域值为0,则执行步骤209,否则执行步骤206;
步骤206:如果接收到名字为N6且负载不为空的消息的车辆节点从车辆节点E3接收到该消息且车辆节点与名字N6的目的地理坐标的距离小于车辆节点E3与名字N6的目的地理坐标的距离,则执行步骤207,否则执行步骤208;
步骤207:接收到名字为N6且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤204;
步骤208:接收到名字为N6且负载不为空的消息的车辆节点丢弃该消息,执行步骤204;
步骤209:在预定时间内,接入节点AP1接收到名字为N6且负载不为空的消息后利用消息负载中的数据构建数据C2,然后构建名字N7,在名字N7中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY2,数据坐标为(x2,y2);车辆节点发送一个消息,该消息的名字为N7,负载为数据C2;接入节点AP1在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N6的数据类型和数据坐标,数据值为数据C2,生命周期值为最大值,并将自己标记为云VC2的成员;
步骤210:接收到名字为N7消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N6的消息,则保存该消息的负载数据C2并将自己标记为云VC2成员;车辆节点将名字N7中的跳数域值递减1,如果跳数域值为0,则执行步骤212,否则执行步骤211;
步骤211:接收到名字为N7消息的车辆节点将该消息转发到邻居车辆节点,执行步骤210;
步骤212:结束。
3.根据权利要求1所述的一种基于地理位置的智能车载网数据通信实现方法,其特征在于,在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2),云VC1的成员能够提供数据C1的条件下,如果车辆节点V3位于子网S1内,地理坐标为(x3,y3),那么它通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点V3构建名字N8,在名字N8中,源地理坐标为(x3,y3),目的地理坐标为(x2,y2),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点V3发送一个消息,该消息的名字为N8,负载为空;
步骤303:如果接入节点AP1接收到名字为N8的消息,则执行步骤304,否则执行步骤307;
步骤304:接入节点AP1查看云表,如果存在数据类型为CY1且数据坐标为(x1,y1)的云表项,则执行步骤305,否则执行步骤306;
步骤305:接入节点AP1构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N9,负载为数据类型为CY1且数据坐标为(x1,y1)的云表项的数据域值,执行步骤314;
步骤306:接入节点AP1构建名字N10,在名字N10中,源地理坐标为名字N8的源地理坐标,目的地理坐标为名字N8的数据坐标,命令域值为4,跳数域值为0,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N10,负载为空;
步骤307:车辆节点接收到名字为N8或者N10的消息后,判断自己是否能够提供名字N8或者N10的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤308,否则执行步骤309;
步骤308:接收到名字为N8或者N10的消息的车辆节点构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤309:如果接收到名字为N8或者N10的消息的车辆节点的地理坐标为名字N8或者N10的数据坐标,即地理坐标(x1,y1),则执行步骤310,否则执行步骤311;
步骤310:位于地理坐标(x1,y1)的车辆节点如果没有保存数据C1,则执行步骤101~步骤118创建数据C1,然后构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤311:如果接收到名字为N8或者N10的消息的车辆节点从车辆节点E4接收到该消息,且该车辆节点与名字N8或者N10的目的地理坐标的距离小于车辆节点E4与名字N8或者N10的目的地理坐标的距离,则执行步骤312,否则执行步骤313;
步骤312:接收到名字为N8或者N10的消息的车辆节点转发该消息,执行步骤303;
步骤313:接收到名字为N8或者N10的消息的车辆节点丢弃该消息,执行步骤303;
步骤314:如果车辆节点V3接收到名字为N9的消息,则执行步骤318,否则执行步骤315;
步骤315:如果接收到名字为N9的消息的车辆节点从车辆节点E5接收到该消息,且该车辆节点与名字N9的目的地理坐标的距离小于车辆节点E5与名字N9的目的地理坐标的距离,则执行步骤316,否则执行步骤317;
步骤316:接收到名字为N9的消息的车辆节点丢弃该消息,执行步骤314;
步骤317:接收到名字为N9的消息的车辆节点转发该消息,如果该车辆节点在名字N9的目的地理坐标的一跳范围内,则执行步骤319,否则执行步骤314;
步骤318:车辆节点V3接收到名字为N9的消息后保存消息负载中的数据C1,将自己标记为云VC1的成员,车辆节点V3构建名字N11,在名字N11中,源地理坐标为(x3,y3),目的地理坐标为(0,0),命令域值为6,跳数域值为1,数据类型为CY1,数据坐标为(x1,y1);车辆节点V3发送一个消息,该消息的名字为N11,负载为空,执行步骤323;
步骤319:接收到名字N9的消息的车辆节点如果在预定时间内接收到名字为N11的消息,则执行步骤323,否则执行步骤320;
步骤320:接收到名字N9的消息的车辆节点将名字N9的跳数域值递减1,如果跳数域值为0,则执行步骤323,否则执行步骤321;
步骤321:接收到名字N9的消息车辆节点转发该消息;
步骤322:如果车辆节点V3接收到名字为N9的消息,则执行步骤318,否则执行步骤319;
步骤323:结束。
4.根据权利要求1所述的一种基于地理位置的智能车载网数据通信实现方法,其特征在于,在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,接入节点AP1通过下述过程获取数据C1:
步骤401:开始;
步骤402:接入节点AP1构建名字P1,在名字P1中,源地理坐标为(x2,y2),目的地理坐标为(x1,y1),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);接入节点AP1从无线接口发送一个消息,该消息的名字为P1,负载为空;车辆节点接收到名字为P1的消息后,判断自己是否能够提供名字P1的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤403,否则执行步骤404;
步骤403:接收到名字为P1的消息的车辆节点构建名字P2,在名字P2中,源地理坐标为0,目的地理坐标为名字P1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字P1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为P2,负载为数据C1,执行步骤409;
步骤404:如果接收到名字为P1的消息的车辆节点的地理坐标与名字P1的数据坐标即地理坐标(x1,y1)相同,则执行步骤405,否则执行步骤406;
步骤405:位于地理坐标(x1,y1)的车辆节点如果没有保存数据C1,则执行步骤101~步骤118创建数据C1,然后构建名字P2,在名字P2中,源地理坐标为0,目的地理坐标为名字P1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字P1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为P2,负载为数据C1,执行步骤409;
步骤406:如果接收到名字为P1的消息的车辆节点从车辆节点X1接收到该消息且该车辆节点与名字P1的目的地理坐标的距离小于车辆节点X1与名字P1的目的地理坐标的距离,则执行步骤407,否则执行步骤408;
步骤407:接收到名字为P1的消息的车辆节点转发该消息,执行步骤403;
步骤408:接收到名字为P1的消息的车辆节点丢弃该消息,执行步骤403;
步骤409:如果接入节点AP1接收到名字为P2的消息,则执行步骤413,否则执行步骤410;
步骤410:如果接收到名字为P2的消息的车辆节点从车辆节点X2接收到该消息,且该车辆节点与名字P2的目的地理坐标的距离小于车辆节点X2与名字P2的目的地理坐标的距离,则执行步骤411,否则执行步骤412;
步骤411:接收到名字为P2的消息的车辆节点丢弃该消息,执行步骤409;
步骤412:接收到名字为P2的消息的车辆节点转发该消息,执行步骤409;
步骤413:接入节点AP1接收到名字为P2的消息后,创建一个云表项,该云表项的数据类型和数据坐标等于名字P2的数据类型和数据坐标,数据域值为数据C1,将自己标记为云VC1的成员;
步骤414:结束。
5.根据权利要求4所述的一种基于地理位置的智能车载网数据通信实现方法,其特征在于,每个接入节点保存一个聚合表,每个聚合表项包含数据类型域,数据坐标域和名字域;
在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2),云VC1的成员能够提供数据C1的条件下,如果车辆节点V4位于子网S5内,车辆节点V4的地理坐标为(x4,y4),子网S5的接入节点为AP5,地理坐标为(x5,y5),那么它通过下述过程获取数据C1:
步骤501:开始;
步骤502:车辆节点V4构建名字A1,在名字A1中,源地理坐标为(x4,y4),目的地理坐标为(x5,y5),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点V4发送一个消息,该消息的名字为A1,负载为空;
步骤503:如果接入节点接收到名字为A1的消息,则执行步骤509,否则执行步骤504;
步骤504:车辆节点接收到名字为A1的消息后,判断自己是否能够提供名字A1的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤505,否则执行步骤506;
步骤505:接收到名字为A1的消息的车辆节点构建名字A2,在名字A2中,源地理坐标为0,目的地理坐标为名字A1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字A1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为A2,负载为数据C1,执行步骤513;
步骤506:如果接收到名字为A1的消息的车辆节点从车辆节点H1接收到该消息,且该车辆节点与名字A1的目的地理坐标的距离小于车辆节点H1与A1的目的地理坐标的距离,则执行步骤507,否则执行步骤508;
步骤507:接收到名字为A1的消息的车辆节点转发该消息,执行步骤503;
步骤508:接收到名字为A1的消息的车辆节点丢弃该消息,执行步骤503;
步骤509:如果接入节点的聚合表中不存在数据类型为CY1,数据坐标为(x1,y1)且名字域值为A1的聚合表项,接入节点则创建一个聚合表项,该聚合表项的数据类型为CY1,数据坐标为(x1,y1),名字域值为A1;如果接入节点只有一项数据名称为CY1且数据坐标为(x1,y1)的聚合表项,则执行步骤510,否则执行步骤513;
步骤510:判断接收到名字为A1的消息的接入节点是否为接入节点AP1,如果是,则执行步骤512,否则执行步骤511;
步骤511:接收到名字为A1的消息的接入节点计算所有邻居接入节点与名字A1的目的地理坐标的距离,选择距离最近的邻居接入节点,并从与该邻居接入节点相连的有线接口转发该消息,执行步骤503;
步骤512:接收到名字为A1的消息的接入节点AP1查看云表,如果不存在数据名称和数据坐标分别等于名字A1的数据名称和数据坐标的云表项,则执行步骤401~414获取数据C1,然后构建名字A2,在名字A2中,源地理坐标为0,目的地理坐标为名字A1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字A1的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为A2,负载为数据C1;
步骤513:如果接入节点接收到名字为A2的消息,则执行步骤514,否则执行步骤517;
步骤514:接收到名字为A2的消息的接入节点查看聚合表,选择所有数据类型和数据坐标等于名字A2的数据类型和数据坐标的聚合表项,对于每个选中的聚合表项进行如下操作:接入节点构建一个名字,该名字中,源地理坐标为0,目的地理坐标为该聚合表项的名字的源地理坐标,命令值为5,跳数域值为初始值,数据类型和数据坐标为该聚合表项的名字的数据类型和数据坐标,接入节点从无线接口发送一个消息,该消息的名字为构建的名字,负载为接收到的名字为A2的消息负载;
步骤515:判断接收到名字为A2的消息的接入节点是否为接入节点AP5,如果是,则执行步骤517,否则执行步骤516;
步骤516:接收到名字为A2的消息的接入节点计算所有邻居接入节点与名字A2的目的地理坐标的距离,选择距离最近的邻居接入节点,并从与该邻居接入节点相连的有线接口转发该消息,执行步骤513;
步骤517:如果接收到名字为A2的消息的车辆节点为车辆节点V4,则执行步骤521,否则执行步骤518;
步骤518:如果接收到名字为A2的消息的车辆节点从车辆节点H2接收到该消息,且该车辆节点与名字A2的目的地理坐标的距离小于车辆节点H2与名字A2的目的地理坐标的距离,则执行步骤520,否则执行步骤519;
步骤519:接收到名字为A2的消息的车辆节点丢弃该消息,执行步骤517;
步骤520:接收到名字为A2的消息的车辆节点转发该消息,如果该车辆节点在名字A2的目的地理坐标的一跳范围内,则执行步骤522,否则执行步骤517;
步骤521:车辆节点V4接收到名字为A2的消息后保存消息负载中的数据C1,车辆节点V3构建名字A3,在名字A3中,源地理坐标为(x4,y4),目的地理坐标为(0,0),命令域值为6,跳数域值为1,数据类型为CY1,数据坐标为(x1,y1);车辆节点V4发送一个消息,该消息的名字为A3,负载为空,执行步骤526;
步骤522:接收到名字A2的消息的车辆节点如果在预定时间内接收到名字为A3的消息,则执行步骤526,否则执行步骤523;
步骤523:接收到名字A2的消息的车辆节点将名字A2的跳数域值递减1,如果跳数域值为0,则执行步骤526,否则执行步骤524;
步骤524:接收到名字A2的消息车辆节点转发该消息;
步骤525:如果车辆节点V4接收到名字为A2的消息,则执行步骤521,否则执行步骤522;
步骤526:结束。
说明书
技术领域
本发明涉及一种通信实现方法,尤其涉及的是一种基于地理位置的智能车载网数据通信实现方法。
背景技术
近年来,很多研究工作致力于智能车载网,以便使车辆驾驶人能够快速获取数据保证行使安全。随着车载网技术的发展,智能车载网会成为未来提供服务的一种模式。
目前,智能车载网中的每个车辆节点独立实现通信,因此延迟比较大,降低了数据通信性能。因此,如何降低智能车载网的数据通信延迟成为近年来研究的热点问题。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于地理位置的智能车载网数据通信实现方法。本发明通过聚合方式来实现车载网,多个车辆节点能够通过一次数据请求过程获取数据,从而降低了车载网数据通信的延迟,有效提高了数据通信服务性能。
技术方案:本发明公开了一种基于地理位置的智能车载网数据通信实现方法,所述车载网包括接入节点和车辆节点,车辆节点或者接入节点均为设备;接入节点的地理坐标具有唯一性;一个接入节点与车辆节点构成一个子网,一个子网中的车辆节点在所有的接入节点中与同一个子网中的接入节点距离最近,一个接入节点唯一标识一个子网,车辆节点启动后,获取所在车载网的接入节点的地理坐标,并加入距离自己最近的接入节点所在的子网;位于两个不同子网的车辆节点通过所在子网的接入节点进行通信;
一种与地理位置相关的数据由数据类型和数据坐标唯一标识,数据类型定义了数据的种类,例如交通事故,数据坐标定义该数据发生的位置;接入节点具有无线接口和有线接口,接入节点通过无线接口与车辆节点实现通信,通过有线接口与邻居接入节点实现通信;接入节点保存所有邻居接入节点的地理坐标;
一个消息包含名字域和负载域,名字域包含源地理坐标域、目的地理坐标域、命令域、跳数域、数据类型域和数据坐标域;源地理坐标域为发送消息的设备的地理坐标;目的地理坐标域为目标设备的地理坐标,命令域值表1所示;跳数域值定义消息的传输范围,跳数域值只有在目的地理坐标域值为0或者命令域值为5的情况下有效,跳数域值的初始值预先设置;数据类型和数据坐标定义了目标数据;如果目的地理坐标为(0,0),则跳数域定义的传输范围内的所有设备均为目标设备;
表1:
一种与地理位置相关的数据通过创建云来构建,每个云成员保存一个云表,云表项包含数据类型域、数据坐标域、数据值域和生命周期域;如果一个云表项的生命周期衰减为0,则该云表项从云表中删除;
在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,如果车辆节点V1的地理坐标为(x1,y1),则通过构建云VC1来创建数据C1,云VC1由数据类型CY1和数据坐标(x1,y1)唯一标识:
步骤101:开始;
步骤102:车辆节点V1构建名字N1,在名字N1中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY1,数据坐标为(x1,y1);车辆节点V1发送一个消息,该消息的名字为N1,负载为空;
步骤103:一个车辆节点接收到名字为N1且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C1的部分数据,则构建名字N2,在名字N2中,源地理坐标为(0,0),目的地理坐标为名字N1中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N1中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N2,负载为构建的数据C1的部分数据;该车辆节点将名字N1中的跳数域值递减1,如果跳数域值为0,则执行步骤104,否则执行步骤103;
步骤104:如果车辆节点V1接收到名字为N2且负载不为空的消息,则执行步骤109;否则执行步骤105;
步骤105:接收到名字为N2且负载不为空的消息的车辆节点将名字N2中的跳数域值递减1,如果跳数域值为0,则执行步骤109,否则执行步骤106;
步骤106:如果接收到名字为N2且负载不为空的消息的车辆节点从车辆节点E1接收到该消息且车辆节点与名字N2的目的地理坐标的距离小于车辆节点E1与名字N2的目的地理坐标的距离,则执行步骤107,否则执行步骤108;
步骤107:接收到名字为N2且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤104;
步骤108:接收到名字为N2且负载不为空的消息的车辆节点丢弃该消息,执行步骤104;
步骤109:在预定时间内(例如1s),车辆节点V1接收到名字为N2且负载不为空的消息后利用消息负载中的数据构建数据C1,然后构建名字N3,在名字N3中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N3,负载为数据C1;
步骤110:接收到名字为N3消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N2的消息,则保存该消息的负载数据C1并将自己标记为云VC1成员;车辆节点将名字N3中的跳数域值递减1,如果跳数域值为0,则执行步骤112,否则执行步骤111;
步骤111:接收到名字为N3消息的车辆节点将该消息转发到邻居车辆节点,执行步骤110;
步骤112:车辆节点V1构建名字N4,在名字N4中,源地理坐标为(x1,y1),目的地理坐标为(x2,y2),命令域值为3,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N4,负载为数据C1;
步骤113:如果接入节点AP1接收到名字为N4的消息,则执行步骤117,否则执行步骤114;
步骤114:接收到名字为N4的消息的车辆节点从车辆节点E2接收到该消息,如果该车辆节点与名字N4的目的地理坐标的距离小于车辆节点E2与名字N4的目的地理坐标的距离,则执行步骤115,否则执行步骤116;
步骤115:接收到名字为N4的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤113;
步骤116:接收到名字为N4的消息的车辆节点丢弃该消息,执行步骤113;
步骤117:接入节点AP1接收到名字为N4的消息后,在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N4的数据类型和数据坐标,数据值为该消息中的负载数据C1,生命周期值为最大值,例如20mins,并将自己标记为云VC1的成员;
步骤118:结束。
上述过程能够快速构建数据从而提供给用户。
本发明所述方法中,在数据C2由数据类型CY2和数据坐标(x2,y2)唯一定义,数据坐标(x2,y2)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,接入节点AP1通过下述过程构建云VC2来创建数据C2,云VC2由数据类型CY2和数据坐标(x2,y2)唯一标识:
步骤201:开始;
步骤202:接入节点AP1构建名字N5,在名字N5中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY2,数据坐标为(x2,y2);接入节点AP1发送一个消息,该消息的名字为N5,负载为空;
步骤203:一个车辆节点接收到名字为N5且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C2的部分数据,则构建名字N6,在名字N6中,源地理坐标为(0,0),目的地理坐标为名字N5中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N5中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N6,负载为构建的数据C1的部分数据;该车辆节点将名字N5中的跳数域值递减1,如果跳数域值为0,则执行步骤204,否则执行步骤203;
步骤204:如果接入节点AP1接收到名字为N6且负载不为空的消息,则执行步骤209;否则执行步骤205;
步骤205:接收到名字为N6且负载不为空的消息的车辆节点将名字N6中的跳数域值递减1,如果跳数域值为0,则执行步骤209,否则执行步骤206;
步骤206:如果接收到名字为N6且负载不为空的消息的车辆节点从车辆节点E3接收到该消息且车辆节点与名字N6的目的地理坐标的距离小于车辆节点E3与名字N6的目的地理坐标的距离,则执行步骤207,否则执行步骤208;
步骤207:接收到名字为N6且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤204;
步骤208:接收到名字为N6且负载不为空的消息的车辆节点丢弃该消息,执行步骤204;
步骤209:在预定时间内(例如1s),接入节点AP1接收到名字为N6且负载不为空的消息后利用消息负载中的数据构建数据C2,然后构建名字N7,在名字N7中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY2,数据坐标为(x2,y2);车辆节点发送一个消息,该消息的名字为N7,负载为数据C2;接入节点AP1在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N6的数据类型和数据坐标,数据值为数据C2,生命周期值为最大值,例如20mins,并将自己标记为云VC2的成员;
步骤210:接收到名字为N7消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N6的消息,则保存该消息的负载数据C2并将自己标记为云VC2成员;车辆节点将名字N7中的跳数域值递减1,如果跳数域值为0,则执行步骤212,否则执行步骤211;
步骤211:接收到名字为N7消息的车辆节点将该消息转发到邻居车辆节点,执行步骤210;
步骤212:结束。
上述过程能够快速构建数据从而提供给用户。
本发明所述方法中,在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2),云VC1的成员能够提供数据C1的条件下,如果车辆节点V3位于子网S1内,地理坐标为(x3,y3),那么它通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点V3构建名字N8,在名字N8中,源地理坐标为(x3,y3),目的地理坐标为(x2,y2),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点V3发送一个消息,该消息的名字为N8,负载为空;
步骤303:如果接入节点AP1接收到名字为N8的消息,则执行步骤304,否则执行步骤307;
步骤304:接入节点AP1查看云表,如果存在数据类型为CY1且数据坐标为(x1,y1)的云表项,则执行步骤305,否则执行步骤306;
步骤305:接入节点AP1构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N9,负载为数据类型为CY1且数据坐标为(x1,y1)的云表项的数据域值,执行步骤314;
步骤306:接入节点AP1构建名字N10,在名字N10中,源地理坐标为名字N8的源地理坐标,目的地理坐标为名字N8的数据坐标,命令域值为4,跳数域值为0,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N10,负载为空;
步骤307:车辆节点接收到名字为N8或者N10的消息后,判断自己是否能够提供名字N8或者N10的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤308,否则执行步骤309;
步骤308:接收到名字为N8或者N10的消息的车辆节点构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤309:如果接收到名字为N8或者N10的消息的车辆节点的地理坐标为名字N8或者N10的数据坐标,即地理坐标(x1,y1),则执行步骤310,否则执行步骤311;
步骤310:位于地理坐标(x1,y1)的车辆节点如果没有保存数据C1,则执行步骤101~步骤118创建数据C1,然后构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤311:如果接收到名字为N8或者N10的消息的车辆节点从车辆节点E4接收到该消息,且该车辆节点与名字N8或者N10的目的地理坐标的距离小于车辆节点E4与名字N8或者N10的目的地理坐标的距离,则执行步骤312,否则执行步骤313;
步骤312:接收到名字为N8或者N10的消息的车辆节点转发该消息,执行步骤303;
步骤313:接收到名字为N8或者N10的消息的车辆节点丢弃该消息,执行步骤303;
步骤314:如果车辆节点V3接收到名字为N9的消息,则执行步骤318,否则执行步骤315;
步骤315:如果接收到名字为N9的消息的车辆节点从车辆节点E5接收到该消息,且该车辆节点与名字N9的目的地理坐标的距离小于车辆节点E5与名字N9的目的地理坐标的距离,则执行步骤316,否则执行步骤317;
步骤316:接收到名字为N9的消息的车辆节点丢弃该消息,执行步骤314;
步骤317:接收到名字为N9的消息的车辆节点转发该消息,如果该车辆节点在名字N9的目的地理坐标的一跳范围内,则执行步骤319,否则执行步骤314;
步骤318:车辆节点V3接收到名字为N9的消息后保存消息负载中的数据C1,将自己标记为云VC1的成员,车辆节点V3构建名字N11,在名字N11中,源地理坐标为(x3,y3),目的地理坐标为(0,0),命令域值为6,跳数域值为1,数据类型为CY1,数据坐标为(x1,y1);车辆节点V3发送一个消息,该消息的名字为N11,负载为空,执行步骤323;
步骤319:接收到名字N9的消息的车辆节点如果在预定时间内(例如50ms)接收到名字为N11的消息,则执行步骤323,否则执行步骤320;
步骤320:接收到名字N9的消息的车辆节点将名字N9的跳数域值递减1,如果跳数域值为0,则执行步骤323,否则执行步骤321;
步骤321:接收到名字N9的消息车辆节点转发该消息;
步骤322:如果车辆节点V3接收到名字为N9的消息,则执行步骤318,否则执行步骤319;
步骤323:结束。
车辆节点通过上述过程能够快速获取所需数据。
本发明所述方法中,在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,接入节点AP1通过下述过程获取数据C1:
步骤401:开始;
步骤402:接入节点AP1构建名字P1,在名字P1中,源地理坐标为(x2,y2),目的地理坐标为(x1,y1),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);接入节点AP1从无线接口发送一个消息,该消息的名字为P1,负载为空;车辆节点接收到名字为P1的消息后,判断自己是否能够提供名字P1的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤403,否则执行步骤404;
步骤403:接收到名字为P1的消息的车辆节点构建名字P2,在名字P2中,源地理坐标为0,目的地理坐标为名字P1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字P1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为P2,负载为数据C1,执行步骤409;
步骤404:如果接收到名字为P1的消息的车辆节点的地理坐标与名字P1的数据坐标即地理坐标(x1,y1)相同,则执行步骤405,否则执行步骤406;
步骤405:位于地理坐标(x1,y1)的车辆节点如果没有保存数据C1,则执行步骤101~步骤118创建数据C1,然后构建名字P2,在名字P2中,源地理坐标为0,目的地理坐标为名字P1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字P1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为P2,负载为数据C1,执行步骤409;
步骤406:如果接收到名字为P1的消息的车辆节点从车辆节点X1接收到该消息且该车辆节点与名字P1的目的地理坐标的距离小于车辆节点X1与名字P1的目的地理坐标的距离,则执行步骤407,否则执行步骤408;
步骤407:接收到名字为P1的消息的车辆节点转发该消息,执行步骤403;
步骤408:接收到名字为P1的消息的车辆节点丢弃该消息,执行步骤403;
步骤409:如果接入节点AP1接收到名字为P2的消息,则执行步骤413,否则执行步骤410;
步骤410:如果接收到名字为P2的消息的车辆节点从车辆节点X2接收到该消息,且该车辆节点与名字P2的目的地理坐标的距离小于车辆节点X2与名字P2的目的地理坐标的距离,则执行步骤411,否则执行步骤412;
步骤411:接收到名字为P2的消息的车辆节点丢弃该消息,执行步骤409;
步骤412:接收到名字为P2的消息的车辆节点转发该消息,执行步骤409;
步骤413:接入节点AP1接收到名字为P2的消息后,创建一个云表项,该云表项的数据类型和数据坐标等于名字P2的数据类型和数据坐标,数据域值为数据C1,将自己标记为云VC1的成员;
步骤414:结束。
接入节点通过上述过程能够快速获取所需数据。
本发明所述方法中,每个接入节点保存一个聚合表,每个聚合表项包含数据类型域,数据坐标域和名字域;
在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2),云VC1的成员能够提供数据C1的条件下,如果车辆节点V4位于子网S5内,车辆节点V4的地理坐标为(x4,y4),子网S5的接入节点为AP5,地理坐标为(x5,y5),那么它通过下述过程获取数据C1:
步骤501:开始;
步骤502:车辆节点V4构建名字A1,在名字A1中,源地理坐标为(x4,y4),目的地理坐标为(x5,y5),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点V4发送一个消息,该消息的名字为A1,负载为空;
步骤503:如果接入节点接收到名字为A1的消息,则执行步骤509,否则执行步骤504;
步骤504:车辆节点接收到名字为A1的消息后,判断自己是否能够提供名字A1的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤505,否则执行步骤506;
步骤505:接收到名字为A1的消息的车辆节点构建名字A2,在名字A2中,源地理坐标为0,目的地理坐标为名字A1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字A1的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为A2,负载为数据C1,执行步骤513;
步骤506:如果接收到名字为A1的消息的车辆节点从车辆节点H1接收到该消息,且该车辆节点与名字A1的目的地理坐标的距离小于车辆节点H1与A1的目的地理坐标的距离,则执行步骤507,否则执行步骤508;
步骤507:接收到名字为A1的消息的车辆节点转发该消息,执行步骤503;
步骤508:接收到名字为A1的消息的车辆节点丢弃该消息,执行步骤503;
步骤509:如果接入节点的聚合表中不存在数据类型为CY1,数据坐标为(x1,y1)且名字域值为A1的聚合表项,接入节点则创建一个聚合表项,该聚合表项的数据类型为CY1,数据坐标为(x1,y1),名字域值为A1;如果接入节点只有一项数据名称为CY1且数据坐标为(x1,y1)的聚合表项,则执行步骤510,否则执行步骤513;
步骤510:判断接收到名字为A1的消息的接入节点是否为接入节点AP1,如果是,则执行步骤512,否则执行步骤511;
步骤511:接收到名字为A1的消息的接入节点计算所有邻居接入节点与名字A1的目的地理坐标的距离,选择距离最近的邻居接入节点,并从与该邻居接入节点相连的有线接口转发该消息,执行步骤503;
步骤512:接收到名字为A1的消息的接入节点AP1查看云表,如果不存在数据名称和数据坐标分别等于名字A1的数据名称和数据坐标的云表项,则执行步骤401~414获取数据C1,然后构建名字A2,在名字A2中,源地理坐标为0,目的地理坐标为名字A1的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字A1的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为A2,负载为数据C1;
步骤513:如果接入节点接收到名字为A2的消息,则执行步骤514,否则执行步骤517;
步骤514:接收到名字为A2的消息的接入节点查看聚合表,选择所有数据类型和数据坐标等于名字A2的数据类型和数据坐标的聚合表项,对于每个选中的聚合表项进行如下操作:接入节点构建一个名字,该名字中,源地理坐标为0,目的地理坐标为该聚合表项的名字的源地理坐标,命令值为5,跳数域值为初始值,数据类型和数据坐标为该聚合表项的名字的数据类型和数据坐标,接入节点从无线接口发送一个消息,该消息的名字为构建的名字,负载为接收到的名字为A2的消息负载;
步骤515:判断接收到名字为A2的消息的接入节点是否为接入节点AP5,如果是,则执行步骤517,否则执行步骤516;
步骤516:接收到名字为A2的消息的接入节点计算所有邻居接入节点与名字A2的目的地理坐标的距离,选择距离最近的邻居接入节点,并从与该邻居接入节点相连的有线接口转发该消息,执行步骤513;
步骤517:如果接收到名字为A2的消息的车辆节点为车辆节点V4,则执行步骤521,否则执行步骤518;
步骤518:如果接收到名字为A2的消息的车辆节点从车辆节点H2接收到该消息,且该车辆节点与名字A2的目的地理坐标的距离小于车辆节点H2与A2的目的地理坐标的距离,则执行步骤520,否则执行步骤519;
步骤519:接收到名字为A2的消息的车辆节点丢弃该消息,执行步骤517;
步骤520:接收到名字为A2的消息的车辆节点转发该消息,如果该车辆节点在名字A2的目的地理坐标的一跳范围内,则执行步骤522,否则执行步骤517;
步骤521:车辆节点V4接收到名字为A2的消息后保存消息负载中的数据C1,车辆节点V3构建名字A3,在名字A3中,源地理坐标为(x4,y4),目的地理坐标为(0,0),命令域值为6,跳数域值为1,数据类型为CY1,数据坐标为(x1,y1);车辆节点V4发送一个消息,该消息的名字为A3,负载为空,执行步骤526;
步骤522:接收到名字A2的消息的车辆节点如果在预定时间内(例如50ms)接收到名字为A3的消息,则执行步骤526,否则执行步骤523;
步骤523:接收到名字A2的消息的车辆节点将名字A2的跳数域值递减1,如果跳数域值为0,则执行步骤526,否则执行步骤524;
步骤524:接收到名字A2的消息车辆节点转发该消息;
步骤525:如果车辆节点V4接收到名字为A2的消息,则执行步骤521,否则执行步骤522;
步骤526:结束。
多个车辆节点通过上述过程能够快速获取所需数据从而降低了数据获取的延迟。
有益效果:本发明提供了一种基于地理位置的智能车载网数据通信实现方法,通过本发明所提供的智能车载网的实现方法,多个车辆节点能够通过一次数据传输过程获取所需数据,缩短了获取数据的延迟,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的车辆节点构建云流程示意图。
图2为本发明所述的接入节点构建云流程示意图。
图3为本发明所述的车辆节点本地获取数据流程示意图。
图4为本发明所述的接入节点本地获取数据流程示意图。
图5为本发明所述的车辆节点远程获取数据流程示意图。
具体实施方式:
本发明提供了一种基于地理位置的智能车载网数据通信实现方法,通过本发明所提供的智能车载网的实现方法,多个车辆节点能够通过一次数据传输过程获取所需数据,缩短了获取数据的延迟,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
图1为本发明所述的车辆节点构建云流程示意图。所述车载网包括接入节点和车辆节点,车辆节点或者接入节点均为设备;接入节点的地理坐标具有唯一性;一个接入节点与车辆节点构成一个子网,一个子网中的车辆节点在所有的接入节点中与同一个子网中的接入节点距离最近,一个接入节点唯一标识一个子网,车辆节点启动后,获取所在车载网的接入节点的地理坐标,并加入距离自己最近的接入节点所在的子网;位于两个不同子网的车辆节点通过所在子网的接入节点进行通信;
一种与地理位置相关的数据由数据类型和数据坐标唯一标识,数据类型定义了数据的种类,数据坐标定义该数据发生的位置;接入节点具有无线接口和有线接口,接入节点通过无线接口与车辆节点实现通信,通过有线接口与邻居接入节点实现通信;接入节点保存所有邻居接入节点的地理坐标;
一个消息包含名字域和负载域,名字域包含源地理坐标域、目的地理坐标域、命令域、跳数域、数据类型域和数据坐标域;源地理坐标域为发送消息的设备的地理坐标;目的地理坐标域为目标设备的地理坐标,命令域值表1所示;跳数域值定义消息的传输范围,跳数域值只有在目的地理坐标域值为0或者命令域值为5的情况下有效,跳数域值的初始值预先设置;数据类型和数据坐标定义了目标数据;如果目的地理坐标为(0,0),则跳数域定义的传输范围内的所有设备均为目标设备;
表1:
一种与地理位置相关的数据通过创建云来构建,每个云成员保存一个云表,云表项包含数据类型域、数据坐标域、数据值域和生命周期域;如果一个云表项的生命周期衰减为0,则该云表项从云表中删除;
在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,如果车辆节点V1的地理坐标为(x1,y1),则通过构建云VC1来创建数据C1,云VC1由数据类型CY1和数据坐标(x1,y1)唯一标识:
步骤101:开始;
步骤102:车辆节点V1构建名字N1,在名字N1中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY1,数据坐标为(x1,y1);车辆节点V1发送一个消息,该消息的名字为N1,负载为空;
步骤103:一个车辆节点接收到名字为N1且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C1的部分数据,则构建名字N2,在名字N2中,源地理坐标为(0,0),目的地理坐标为名字N1中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N1中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N2,负载为构建的数据C1的部分数据;该车辆节点将名字N1中的跳数域值递减1,如果跳数域值为0,则执行步骤104,否则执行步骤103;
步骤104:如果车辆节点V1接收到名字为N2且负载不为空的消息,则执行步骤109;否则执行步骤105;
步骤105:接收到名字为N2且负载不为空的消息的车辆节点将名字N2中的跳数域值递减1,如果跳数域值为0,则执行步骤109,否则执行步骤106;
步骤106:如果接收到名字为N2且负载不为空的消息的车辆节点从车辆节点E1接收到该消息且车辆节点与名字N2的目的地理坐标的距离小于车辆节点E1与名字N2的目的地理坐标的距离,则执行步骤107,否则执行步骤108;
步骤107:接收到名字为N2且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤104;
步骤108:接收到名字为N2且负载不为空的消息的车辆节点丢弃该消息,执行步骤104;
步骤109:在预定时间内,车辆节点V1接收到名字为N2且负载不为空的消息后利用消息负载中的数据构建数据C1,然后构建名字N3,在名字N3中,源地理坐标为(x1,y1),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N3,负载为数据C1;
步骤110:接收到名字为N3消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N2的消息,则保存该消息的负载数据C1并将自己标记为云VC1成员;车辆节点将名字N3中的跳数域值递减1,如果跳数域值为0,则执行步骤112,否则执行步骤111;
步骤111:接收到名字为N3消息的车辆节点将该消息转发到邻居车辆节点,执行步骤110;
步骤112:车辆节点V1构建名字N4,在名字N4中,源地理坐标为(x1,y1),目的地理坐标为(x2,y2),命令域值为3,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点发送一个消息,该消息的名字为N4,负载为数据C1;
步骤113:如果接入节点AP1接收到名字为N4的消息,则执行步骤117,否则执行步骤114;
步骤114:接收到名字为N4的消息的车辆节点从车辆节点E2接收到该消息,如果该车辆节点与名字N4的目的地理坐标的距离小于车辆节点E2与名字N4的目的地理坐标的距离,则执行步骤115,否则执行步骤116;
步骤115:接收到名字为N4的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤113;
步骤116:接收到名字为N4的消息的车辆节点丢弃该消息,执行步骤113;
步骤117:接入节点AP1接收到名字为N4的消息后,在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N4的数据类型和数据坐标,数据值为该消息中的负载数据C1,生命周期值为最大值,并将自己标记为云VC1的成员;
步骤118:结束。
图2为本发明所述的接入节点构建云流程示意图。在数据C2由数据类型CY2和数据坐标(x2,y2)唯一定义,数据坐标(x2,y2)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2)的条件下,接入节点AP1通过下述过程构建云VC2来创建数据C2,云VC2由数据类型CY2和数据坐标(x2,y2)唯一标识:
步骤201:开始;
步骤202:接入节点AP1构建名字N5,在名字N5中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为1,跳数域值为初始值,数据类型为CY2,数据坐标为(x2,y2);接入节点AP1发送一个消息,该消息的名字为N5,负载为空;
步骤203:一个车辆节点接收到名字为N5且负载为空的消息后,执行下述操作:如果该车辆节点能构建数据C2的部分数据,则构建名字N6,在名字N6中,源地理坐标为(0,0),目的地理坐标为名字N5中的源地理坐标,命令域值为1,跳数域值为初始值,数据类型和数据坐标为名字N5中的数据类型和数据坐标;车辆节点发送一个消息,该消息的名字为N6,负载为构建的数据C1的部分数据;该车辆节点将名字N5中的跳数域值递减1,如果跳数域值为0,则执行步骤204,否则执行步骤203;
步骤204:如果接入节点AP1接收到名字为N6且负载不为空的消息,则执行步骤209;否则执行步骤205;
步骤205:接收到名字为N6且负载不为空的消息的车辆节点将名字N6中的跳数域值递减1,如果跳数域值为0,则执行步骤209,否则执行步骤206;
步骤206:如果接收到名字为N6且负载不为空的消息的车辆节点从车辆节点E3接收到该消息且车辆节点与名字N6的目的地理坐标的距离小于车辆节点E3与名字N6的目的地理坐标的距离,则执行步骤207,否则执行步骤208;
步骤207:接收到名字为N6且负载不为空的消息的车辆节点将该消息转发到邻居车辆节点,执行步骤204;
步骤208:接收到名字为N6且负载不为空的消息的车辆节点丢弃该消息,执行步骤204;
步骤209:在预定时间内,接入节点AP1接收到名字为N6且负载不为空的消息后利用消息负载中的数据构建数据C2,然后构建名字N7,在名字N7中,源地理坐标为(x2,y2),目的地理坐标为0,命令域值为2,跳数域值为初始值加1,数据类型为CY2,数据坐标为(x2,y2);车辆节点发送一个消息,该消息的名字为N7,负载为数据C2;接入节点AP1在云表中创建一个云表项,该云表项的数据类型和数据坐标为名字N6的数据类型和数据坐标,数据值为数据C2,生命周期值为最大值,并将自己标记为云VC2的成员;
步骤210:接收到名字为N7消息的车辆节点执行下述操作:如果该车辆节点曾经返回名字为N6的消息,则保存该消息的负载数据C2并将自己标记为云VC2成员;车辆节点将名字N7中的跳数域值递减1,如果跳数域值为0,则执行步骤212,否则执行步骤211;
步骤211:接收到名字为N7消息的车辆节点将该消息转发到邻居车辆节点,执行步骤210;
步骤212:结束。
图3为本发明所述的车辆节点本地获取数据流程示意图。在数据C1由数据类型CY1和数据坐标(x1,y1)唯一定义,数据坐标(x1,y1)位于子网S1内,子网S1内的接入节点为AP1,接入节点AP1的地理坐标为(x2,y2),云VC1的成员能够提供数据C1的条件下,如果车辆节点V3位于子网S1内,地理坐标为(x3,y3),那么它通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点V3构建名字N8,在名字N8中,源地理坐标为(x3,y3),目的地理坐标为(x2,y2),命令域值为4,跳数域值为0,数据类型为CY1,数据坐标为(x1,y1);车辆节点V3发送一个消息,该消息的名字为N8,负载为空;
步骤303:如果接入节点AP1接收到名字为N8的消息,则执行步骤304,否则执行步骤307;
步骤304:接入节点AP1查看云表,如果存在数据类型为CY1且数据坐标为(x1,y1)的云表项,则执行步骤305,否则执行步骤306;
步骤305:接入节点AP1构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N9,负载为数据类型为CY1且数据坐标为(x1,y1)的云表项的数据域值,执行步骤314;
步骤306:接入节点AP1构建名字N10,在名字N10中,源地理坐标为名字N8的源地理坐标,目的地理坐标为名字N8的数据坐标,命令域值为4,跳数域值为0,数据类型和数据坐标均为名字N8的数据类型和数据坐标;接入节点AP1发送一个消息,该消息的名字为N10,负载为空;
步骤307:车辆节点接收到名字为N8或者N10的消息后,判断自己是否能够提供名字N8或者N10的数据类型和数据坐标定义的数据,即数据C1,如果能,则执行步骤308,否则执行步骤309;
步骤308:接收到名字为N8或者N10的消息的车辆节点构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤309:如果接收到名字为N8或者N10的消息的车辆节点的地理坐标为名字N8或者N10的数据坐标,即地理坐标(x1,y1),则执行步骤310,否则执行步骤311;
步骤310:位于地理坐标(x1,y1)的车辆节点如果没有保存数据C1,则执行步骤101~步骤118创建数据C1,然后构建名字N9,在名字N9中,源地理坐标为0,目的地理坐标为名字N8或者名字N10的源地理坐标,命令域值为5,跳数域值为初始值,数据类型和数据坐标均为名字N8或者名字N10的数据类型和数据坐标;该车辆节点发送一个消息,该消息的名字为N9,负载为数据C1,执行步骤314;
步骤311:如果接收到名字为N8或者N10的消息的车辆节点从车辆节点E4接收到该消息,且该车辆节点与名字N8或者N10的目的地理坐标的距离小于车辆节点E4与名字N8或者N10的目的地理坐标的距离,则执行步骤312,否则执行步骤313;
步骤312:接收到名字为N8或者N10的消息的车辆节点转发该消息,执行步骤303;
步骤313:接收到名字为N8或者N10的消息的车辆节点丢弃该消息,执行步骤303;
步骤314:如果车辆节点V3接收到名字为N9的消息,则执行步骤318,否则执行步骤315;
步骤315:如果接收到名字为N9的消息的车辆节点从车辆节点E5接收到该消息,且该车辆节点与名字N9的目的地理坐标的距离小于车辆节点E5与名字N9的目的地理坐标的距离,则执行步骤316,否则执行步骤317;
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0