[发明专利]基于GIS系统的有连接的优先级可变的数据传输方法有效
申请号: | 201910766633.6 | 申请日: | 2019-08-20 |
公开(公告)号: | CN110545266B | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 张贵军;熊章宗;张晨;卢升荣;郑小梦;陈芳;李亭 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | H04L69/00 | 分类号: | H04L69/00;H04L69/06 |
代理公司: | 杭州斯可睿专利事务所有限公司 33241 | 代理人: | 王利强 |
地址: | 310014 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gis 系统 连接 优先级 可变 数据传输 方法 | ||
1.基于GIS系统的有连接的优先级可变的数据传输方法,包含以下步骤:
1)参数初始化:
1.1)设置超时计数count=0,最大允许超时次数sum,超时时间time=2*count;
1.2)设置数据块编号datanumber=1,数据块总数dataSum=0;
1.3)设置每一类数据的阈值;
2)封装传输数据包,过程如下:
2.1)封装数据请求包,数据请求包的包格式为:
RDI表示数据请求包包标识,占用一个字节,值为0x01;type表示请求包请求的数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;校验占用一个字节,是从RDI开始到校验前所有字节的异或运算和;
2.2)封装请求开始发送数据包,请求开始发送数据包的包格式为:
RST表示请求开始发送数据包包标识,占用一个字节,值为0x02;type表示数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;size表示传输数据的大小,占用4个字节;dataSum表示传输的数据块总数,占用4个字节;datalength表示每个数据包的长度,占用4个字节;datastatus表示数据状态,占用1个字节,若数据超出阈值,则值为0x02,反之则为0x01;校验占用一个字节,是从RST开始到校验前所有字节的异或运算和;
2.3)封装开始发送数据包,开始发送数据包的包格式为:
STA表示开始发送数据包标识,占用一个字节,值为0x03;type表示请求包请求的数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;校验占用一个字节,是从STA开始到校验前所有字节的异或运算和;
2.4)封装数据包,数据包的包格式为:
DPI表示数据包包标识,占用一个字节,值为0x04;type表示数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;priority用于标识当前数据包在整个传输过程中的优先级,占用一个字节,值取决于datastatus,如果datastatus为0x01,则priority为1,否则priority为2;datanumber表示数据块的编号;data表示传输的数据,占用长度由数据长度决定;校验占用一个字节,是从DPI开始到校验前所有字节的异或运算和;
2.5)封装请求下一个数据包,请求下一个数据包的包格式为:
RTN表示请求下一个数据包包标识,占用一个字节,值为0x05;type表示数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;datanumber表示数据包的编号;校验占用一个字节,是从RTN开始到校验前所有字节的异或运算和;
2.6)封装数据结束包,数据结束包的包格式为:
STO表示数据结束包包标识,占用一个字节,值为0x06;type表示数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;priority用于标识当前数据包在整个传输过程中的优先级;datacount表示实际传输的数据包数;校验占用一个字节,是从STO开始到校验前所有字节的异或运算和;
2.7)封装取消发送数据包,取消发送数据包的包格式为:
CAN表示取消发送数据包标识,占用一个字节,值为0x07;type表示取消发送的数据包类型,占用两个字节,取值为0x0000到0x00FF区间的十六进制数,表示不同类型的数据;校验占用一个字节,是从CAN开始到校验前所有字节的异或运算和;
3)数据发送过程,过程如下:
3.1)阻塞等待客户端连入,如果有客户端连入,与客户端创建数据交互通道,进入步骤3.2);
3.2)开启监听事件;
3.3)监视客户端是否接收到新字符,如果有新字符,进入步骤3.4),否则转至步骤3.14);
3.4)解析收到字符的包标识,如果是RDI,进入步骤3.5);如果是STA开始包,转至步骤3.6);如果是请求下一个数据包RTN,转至步骤3.7);如果是CAN,转至步骤3.8);
3.5)收到RDI,解析请求包,根据请求包封装数据,将dataSum设置为需要发送的数据包个数,置datanumber=1,向客户端发送请求数据开始发送响应RST;
3.6)收到STA,将数据放入数据缓冲区data,转至步骤3.9);
3.7)收到请求下一个数据包,解析请求包,转至步骤3.9);
3.8)收到取消发送数据包,取消发送;
3.9)判断数据块标号datanumber是否小于数据块总数dataSum,如果小于,则进入步骤3.10),否则转至步骤3.13);
3.10)判断数据缓冲区data中优先级priority=2的数据包是否为空,如果为空,转至步骤3.11),否则转至步骤3.12);
3.11)发送数据块标号为datanumber的数据包,datanumber=datanumber+1,转至步骤3.3);
3.12)发送data中优先级priority=2的数据包,datanumber=datanumber+1,转至步骤3.10);
3.13)发送数据块结束包,发送数据结束包,转至步骤3.3);
3.14)判断等待是否超时,如果没超时,转至步骤3.4),否则转入步骤3.15);
3.15)判断超时计数器count是否小于最大允许超时次数sum,如果小于,超时计数器count=count+1,超时时间time=2*count,向服务器发送重新发送请求,否则传输出错,关闭数据通道;
4)数据接收过程,过程如下:
4.1)阻塞等待客户端连入,如果有客户端连入,与客户端创建数据交互通道,进入步骤4.2);
4.2)向客户端发送请求数据响应RDI,并开启监听事件,进入步骤4.3);
4.3)监视客户端是否接收到新字符,如果有新字符,进入步骤4.4),否则转至步骤4.10);
4.4)解析收到字符的包标识,如果是RST,进入步骤4.5);如果是DPI,转至步骤4.6);如果STO,转至步骤4.7);
4.5)收到RST,解析请求开始发送数据包,向客户端发送可以开始包,转至步骤4.3);
4.6)接收数据包,发送RTN,跳转至4.10);
4.7)停止接收数据,跳转到4.12);
4.10)判断等待是否超时,如果没超时,转至步骤4.4),否则继续步骤4.11);
4.11)判断超时计数器count是否小于最大允许超时次数sum,如果小于,超时计数器count=count+1,超时时间time=2*count,向服务器发送重新发送请求,否则跳转到4.12);
4.12)关闭数据通道。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910766633.6/1.html,转载请声明来源钻瓜专利网。