欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2019107666336
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于GIS系统的有连接的优先级可变的数据传输方法,包含以下步骤:

1)参数初始化:

1.1)设置超时计数count=0,最大允许超时次数sum,超时时间time=2*count;

1.2)设置数据块编号datanumber=1,数据块总数dataSum=0;

1.3)设置每一类数据的阈值;

2)封装传输数据包,过程如下:

2.1)封装数据请求包,数据请求包的包格式如下:

1 2 1

RDI type 校验

其中,RDI表示数据请求包包标识,占用一个字节,值为0x01;type表示请求包请求的数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;校验占用一个字节,是从RDI开始到校验前所有字节的异或运算和;

2.2)封装请求开始发送数据包,请求开始发送数据包的包格式如下:

1 2 4 4 4 1 1

RST type size datasum datalength datastatus 校验其中,RST表示请求开始发送数据包包标识,占用一个字节,值为0x02;type表示数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;size表示传输数据的大小,占用4个字节;datasum表示传输的数据块总数,占用4个字节;

datalength表示每个数据包的长度,占用4个字节;datastatus表示数据状态,占用1个字节,若数据超出阈值,则值为0x02,反之则为0x01;校验占用一个字节,是从RST开始到校验前所有字节的异或运算和;

2.3)封装开始发送数据包,开始发送数据包的包格式如下:

1 2 1

STA type 校验

其中,STA表示开始发送数据包标识,占用一个字节,值为0x03;type表示请求包请求的数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;

校验占用一个字节,是从STA开始到校验前所有字节的异或运算和;

2.4)封装数据包,数据包的包格式如下:

1 2 1 4 — 1

DPI type priority datanum data 校验其中,DPI表示数据包包标识,占用两个字节,值为0x04;type表示数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;priority用于标识当前数据包在整个传输过程中的优先级,占用一个字节,值取决于datastatus,如果datastatus为0x01,则priority为1,否则priority为2;datanum表示数据块的编号;data表示传输的数据,占用长度由数据长度决定;校验占用一个字节,是从DPI开始到校验前所有字节的异或运算和;

2.5)封装请求下一个数据包,请求下一个数据包的包格式如下:

1 2 4 1

RTN type datanum 校验

其中,RTN表示请求下一个数据包包标识,占用一个字节,值为0x05;type表示数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;datanum表示数据包的编号;校验占用一个字节,是从RTN开始到校验前所有字节的异或运算和;

2.6)封装数据结束包,数据结束包的包格式如下:

1 2 1 4 1

STO type priority datacount 校验其中,STO表示数据结束包包标识,占用一个字节,值为0x06;type表示数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;priority用于标识当前数据包在整个传输过程中的优先级;datacount表示实际传输的数据包数;校验占用一个字节,是从STO开始到校验前所有字节的异或运算和;

2.7)封装取消发送数据包,取消发送数据包的包格式如下:

1 2 1

CAN type 校验

其中,CAN表示取消发送数据包标识,占用一个字节,值为0x07;type表示取消发送的数据包类型,占用两个字节,取值为0x00到0xFF区间的十六进制数,表示不同类型的数据;校验占用一个字节,是从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,解析请求包,根据请求包封装数据,向客户端发送请求数据开始发送响应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的数据包,转至步骤3.3);

3.12)发送data中优先级priority=2的数据包,转至步骤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,解析请求开始发送数据包,数据块总数dataSum=datasum,向客户端发送可以开始包,转至步骤4.3);

4.6)判断数据包是否正确,如果正确,转至步骤4.8),否则转至步骤4.9);

4.7)停止接收数据;

4.8)发送RTN;

4.9)数据包标号datanumber=datanumber+1,发送RTN;

4.10)判断等待是否超时,如果没超时,转至步骤4.4),否则继续步骤4.11);

4.11)判断超时计数器count是否小于最大允许超时次数sum,如果小于,超时计数器count=count+1,超时时间time=2*count,向服务器发送重新发送请求,否则传输出错,关闭数据通道。