掌桥专利:专业的专利平台
掌桥专利
首页

一种IO-Link主站数据报文传输处理方法和系统

文献发布时间:2024-04-18 19:54:45


一种IO-Link主站数据报文传输处理方法和系统

技术领域

本发明涉及数据处理技术领域,尤其是涉及一种IO-Link主站数据报文传输处理方法和系统。

背景技术

现有的对报文数据进行压缩,主要首先通过BWT编码增强数据之间的相关性,然后通过LZ77进行压缩,但是由于报文数据中的字符类别种类较多,现有的BWT往往是固定的字符顺序,比如字典中的字符顺序进行编码,导致编码后结果往往不能充分利用数据特性。

发明内容

本发明的目的在于提供一种IO-Link主站数据报文传输处理方法和系统,以缓解了现有技术中存在的技术问题。

第一方面,本发明实施例提供一种IO-Link主站数据报文传输处理方法,所述方法包括:

采集报文数据;

根据数据属性对所述报文数据进行分段,获得多个段数据;

对每个段数据根据频率处理得到对应的字符组;

计算每个字符组中每个字符的中心性,得到组边缘字符;

通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符;

根据所述衔接字符和所述字符组中的字符得到字符顺序,以及根据所述字符顺序对段数据进行BWT编码;

对每个段数据的编码数据通过LZ77压缩,得到并传输段压缩数据。

在可选的实施方式中,所述根据数据属性对所述报文数据进行分段,获得多个段数据的步骤包括:

搜索所述报文数据中的关键词;

根据所述关键词将相同含义的数据放到一起,获得一个段数据。

在可选的实施方式中,所述根据所述关键词将相同含义的数据放到一起,获得一个段数据的步骤包括:

根据数据前缀对所述报文数据进行分类,将前缀相同的报文数据作为一个类别的数据,标记为一个所述段数据。

在可选的实施方式中,对每个段数据根据频率处理得到对应的字符组的步骤包括:

统计每个段数据中每个字符的频率值;

按照每个字符的频率值进行升序排序得到升序频率序列;

通过otsu多阈值分割对所述升序频率序列进行分割,得到分割点;

将相邻分割点之间的频率值作为一个类别的频率值;

根据每个类别中的每个频率值对应的一个字符,得到每个类别对应的所有字符;

每个类别对应的所有频率相近的字符组成所述字符组。

在可选的实施方式中,所述计算每个字符组中每个字符的中心性,得到组边缘字符的步骤包括:

对每个字符组,应用KM最大匹配原则,从KM匹配中的左侧节点中找到最大边值对应的字符,作为初始节点;

根据匹配关系得到所述初始节点在右侧的匹配字符;

找到所述右侧的匹配字符在左侧的同名节点,以及根据匹配关系获得所述左侧的同名节点在右侧的匹配字符;

多次迭代直至遍历字符组中的所有字符,以得到一条匹配链;

将所述匹配链中中心性最大的两个字符作为所述组边缘字符。

在可选的实施方式中,计算字符中心性的步骤包括:

获得字符对应边的边值,标记为

获得字符节点的两侧节点数量的比值,标记为

根据第一预设公式获得字符的中心性,所述第一预设公式为:

其中,

在可选的实施方式中,所述通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符的步骤包括:

按照原始字符串的顺序,逆时针方向将所有的字符排序连接,以构建环形字符;

计算所述环形字符中每个字符组中每个边缘字符作为字符组首字母时,对应的末尾边缘字符的中心性,以末尾边缘字符的中心性表征衔接性;

将中心性最大的末尾边缘字符对应的字符组首字母作为实际字符组首边缘字符,以所述实际字符组首边缘字符和所述实际字符组首边缘字符对应的末尾边缘字符作为衔接字符。

在可选的实施方式中,计算环形字符中末尾边缘字符中心性的步骤包括:

在环形字符中得到所述边缘字符对应的所有邻域字符;

将每个邻域字符的中心性作为基本值,将每个邻域字符的出现频率作为权重值,以加权求和获得所述边缘字符对应的末尾边缘字符的中心性。

在可选的实施方式中,所述方法还包括:

解压数据时,通过LZ77解压所述段压缩数据,获得解压数据;

对所述解压数据的每个段数据通过BWT反编码,得到原始的段数据;

从所述原始的段数据中提取预设数据,得到原始报文数据。

第二方面,本发明实施例还提供了一种IO-Link主站数据报文传输处理系统。所述系统包括:

数据采集模块,用于采集报文数据;

顺序计算模块,用于根据数据属性对所述报文数据进行分段,获得多个段数据;以及

对每个段数据根据频率处理得到对应的字符组;以及

计算每个字符组中每个字符的中心性,得到组边缘字符;以及

通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符;以及

根据所述衔接字符和所述字符组中的字符得到字符顺序,以及根据所述字符顺序对段数据进行BWT编码;

压缩传输模块,用于对每个段数据的编码数据通过LZ77压缩,得到并传输段压缩数据。

本发明通过字符频率处理形成字符组,提高了这些字符形成组合字符的概率,进而有助于后续的压缩性能的提升;通过计算得到每个字符组中字符的中心性,得到边缘字符,进而通过环形字符计算得到每个边缘字符的位置,使得边缘字符作为不同频率组的衔接字符不会对相近频率之间的字符压缩造成较大影响,最大限度提高压缩效果;通过计算得到的字符顺序作为BWT中的字符顺序进行数据压缩,充分利用了数据特性,可以大大提高压缩效果,实现数据的高效传输。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;

图1为本发明实施例提供的一种IO-Link主站数据报文传输处理方法流程示意图;

图2为本发明实施例提供的一种HTTP请求报文示意图;

图3本发明实施例提供的一种根据匹配关系得到匹配链的示意图;

图4本发明实施例提供的一种环形字符的示意图;

图5本发明实施例提供的一种IO-Link主站数据报文传输处理的原理示意图;

图6为本发明实施例提供的一种IO-Link主站数据报文传输处理系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

BWT编码是一种基于置换的数据重排方法,它能够把相近字符放到一起,相似的字符是指“重叠匹配”的字符序列,也就是有大量重复出现的字符或字符串。这些字符或字符串在排序后通常会出现在相邻位置,从而使得后续压缩算法能够更好地利用数据的局部性和冗余性,实现更高效的压缩。但BWT编码的压缩效果是不可控的。

基于此,本发明提出了一种IO-Link主站数据报文传输处理方法和系统。

如图1所示,本申请实施例提供了一种IO-Link主站数据报文传输处理方法,包括以下步骤:

步骤102,采集报文数据;

步骤104,根据数据属性对报文数据进行分段,获得多个段数据;

步骤106,对每个段数据根据频率处理得到对应的字符组;

步骤108,计算每个字符组中每个字符的中心性,得到组边缘字符;

步骤110,通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符;

步骤112,根据衔接字符和字符组中的字符得到字符顺序,以及根据字符顺序对段数据进行BWT编码;

步骤114,对每个段数据的编码数据通过LZ77压缩,得到并传输段压缩数据。

本发明的实施例中,通过字符频率处理形成字符组,提高了这些字符形成组合字符的概率,进而有助于后续的压缩性能的提升;通过计算得到每个字符组中字符的中心性,得到边缘字符,进而通过环形字符计算得到每个边缘字符的位置,使得边缘字符作为不同频率组的衔接字符不会对相近频率之间的字符压缩造成较大影响,最大限度提高压缩效果;通过计算得到的字符顺序作为BWT中的字符顺序进行数据压缩,充分利用了数据特性,可以大大提高压缩效果,实现数据的高效传输。

在本申请一个可选的实施例中,根据数据属性对报文数据进行分段,获得多个段数据的步骤包括:搜索报文数据中的关键词;根据关键词将相同含义的数据放到一起,获得一个段数据。

在本实施例中,根据报文数据的数据属性进行分段,方便了数据的压缩。

在本申请一个可选的实施例中,根据关键词将相同含义的数据放到一起,获得一个段数据的步骤包括:根据数据前缀对报文数据进行分类,将前缀相同的报文数据作为一个类别的数据,标记为一个段数据。

如图2所示,一种HTTP请求报文的例子,报文数据中有多种属性的数据,包括:特殊字符、大小写英文字母、数字等。本实施例中,通过请求头将相近的数据放到一起,例如:将多个报文数据中的GET参数后面的字符放到一起,将Host参数后面的字符放到一起。具体为:首先根据报文数据中的关键词,将相同含义的数据放到一起,即根据前缀对数据进行分类,将前缀相同的数据作为一个类别。例如:将报文数据1中的GET后面的数据和报文数据2中的GET后面的数据放到一起,作为一个类别的数据,称之为段数据。相同参数后面的字符相近,进而便于压缩。

在本申请一个可选的实施例中,对每个段数据根据频率处理得到对应的字符组的步骤包括:统计每个段数据中每个字符的频率值;按照每个字符的频率值进行升序排序得到升序频率序列;通过otsu多阈值分割对升序频率序列进行分割,得到分割点;将相邻分割点之间的频率值作为一个类别的频率值;根据每个类别中的每个频率值对应的一个字符,得到每个类别对应的所有字符;每个类别对应的所有频率相近的字符组成字符组。

在本实施例中,对每个段数据,首先对其中的每个字符的频率进行统计,得到每个字符的频率值。通过otsu多阈值分割对升序频率序列(升序频率序列是指对频率值进行升序排序得到的序列)进行分割,得到分割点,将相邻分割点之间的频率值作为一个类别的频率值,同一个类别内的频率值相近,不同类别之间的频率值相差较大。每个类别中的每个频率值对应一个字符,进而可以得到每个类别对应的所有字符,这些字符的频率相近,称之为字符组。例如:计算得到两个字符组,其中第一个字符组为:[A B C D],第二个字符组为:[EF G]。

由于BWT是将相近字符放到一起,即本来出现频率较大的放到相邻位置,因此每个字符与左右相邻字符在原始字符串中的出现频率越小,该字符作为边缘字符对相同频率字符之间的压缩的影响越小。因此,该实施例使得频率相近的字符的字符顺序相近,实质形成字符组合游程,提高压缩效果。

在本申请一个可选的实施例中,计算每个字符组中每个字符的中心性,得到组边缘字符的步骤包括:对每个字符组,应用KM最大匹配原则,从KM匹配中的左侧节点中找到最大边值对应的字符,作为初始节点;根据匹配关系得到初始节点在右侧的匹配字符;找到右侧的匹配字符在左侧的同名节点,以及根据匹配关系获得左侧的同名节点在右侧的匹配字符;多次迭代直至遍历字符组中的所有字符,以得到一条匹配链;将匹配链中中心性最大的两个字符作为组边缘字符。

在本实施例中,对每个字符组,通过KM匹配得到边缘字符,左侧节点为字符组中的所有字符,右侧节点也为字符组中的所有字符,左侧任一节点与右侧任一节点都有边,边值为对应字符对在原始字符串中的出现次数,通过KM最大匹配原则得到一对一的匹配关系。首先从左侧节点中找到最大边值对应的字符,根据匹配关系得到该字符的匹配字符,进而得到左侧该匹配字符在右侧的匹配字符,通过相同方法可以得到一条匹配链,将匹配链中中心性最大的字符作为边缘字符。如图3所示,所有边中,边AB的值最大,首先从左侧节点中首先找到A点,A对应B,进而从左侧B点找到D点,从左侧D点找到C点,从左侧C点找到A点,形成的匹配链为:A-B-D-C-A,中心性为:该点左右侧的节点数量的比值,比值越接近1,中心性越大;对应边值越小,中心性越大,对应节点作为边缘字符,对字符组内的压缩效果的影响越小。通过本实施例定义的边缘字符对压缩效果影响小,提高了压缩的效果。

在本申请一个可选的实施例中,计算字符中心性的步骤包括:获得字符对应边的边值,标记为

根据第一预设公式获得字符的中心性,第一预设公式为:

其中,

在本实施例中,字符节点的两侧节点数量的比值为小值与大值的比值;边值越小,对应节点作为边缘字符,对字符组内的压缩效果的影响越小;比值越大,对应节点与频率较大节点的联系越小,该节点作为边缘字符,对字符组内的压缩效果的影响越小。将中心性最大的两个字符作为每个字符组内的边缘字符,降低了对压缩效果的影响。

在本申请一个可选的实施例中,通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符的步骤包括:按照原始字符串的顺序,逆时针方向将所有的字符串排序连接,以构建环形字符;计算环形字符中每个字符组中每个边缘字符作为字符组首字母时,对应的末尾边缘字符的中心性,以末尾边缘字符的中心性表征衔接性;将中心性最大的末尾边缘字符对应的字符组首字母作为实际字符组首边缘字符,以实际字符组首边缘字符和实际字符组首边缘字符对应的末尾边缘字符作为衔接字符。

在本实施例中,按照原始字符串的顺序,将所有的字符排序连接在一个圆上,如图4所示,为字符串babcaeaed的环形字符,灰色圆表示对应节点b为字符串起点,按照逆时针方向转动,可以得到所有的循环移位字符串,构建好环形字符后,对环形字符上的字符进行分类,如图4所示,其中e、a、b频率相近,为一类,c、d频率相近,为另一类。由于取的是最后一个字符,而对于每个开始字符而言,结束字符为环形字符中的相邻字符,因此通过计算每个字符组内的每个边缘字符对应的相邻字符的中心性,相邻字符的中心性越大,该字符作为边缘字符时,对两侧边缘对应的字符组内的压缩效果的影响均较小,进一步减小了对压缩效果的影响。

在本申请一个可选的实施例中,计算环形字符中末尾边缘字符中心性的步骤包括:在环形字符中得到边缘字符对应的所有邻域字符;将每个邻域字符的中心性作为基本值,将每个邻域字符的出现频率作为权重值,以加权求和获得边缘字符对应的末尾边缘字符的中心性。

在本实施例中,从平均概率值最大的字符组的边缘字符开始计算,计算该字符组的每个边缘字符作为其实字符时对应的末尾字符的中心性,具体为:首先在环形字符中得到该边缘字符的邻域字符,由于该字符不一定在环形字符中只出现一次,因此计算得到每个该边缘字符的邻域字符,进而加权求和的方法,将邻域字符的中心性作为基本值,将邻域字符的出现频率作为权重值,计算得到该边缘字符对应的中心性,将最小中心性对应的边缘字符作为该组字符串的首字符,例如:通过计算得到了字符组[e、a、b]的首边缘字符为e,则该字符组中的字符顺序为:e-a-b。通过相同方法可以计算得到每个字符组中的边缘字符,进而得到了所有的字符顺序。例如:字符组[d e]的字符顺序为:e-d,则得到所有的字符顺序为:e-a-b-d-e,进一步提高了压缩效果。

通过上述步骤说明,本发明实施例的原理图如图5所示,本发明根据数据特性,自定义的设置字符顺序,而不是根据字典中的字符顺序,计算得到的每个段的字符顺序,根据所述字符顺序对该段的字符进行BWT编码,得到每个段的编码数据。获得的不同频率之间的衔接字符未破坏相近频率字符之间相关性,不会对每个组中的字符压缩效果形成较大影响,避免了导致压缩效率降低。

在本申请一个可选的实施例中,方法还包括:解压数据时,通过LZ77解压段压缩数据,获得解压数据;对解压数据的每个段数据通过BWT反编码,得到原始的段数据;从原始的段数据中提取预设数据,得到原始报文数据。

在本实施例中,对每个段的数据通过LZ77压缩,得到每个段的压缩数据。解压时,首先通过LZ77解压,然后对每个段通过BWT反编码,得到原始的段数据,从每个段数据中提取相关数据,得到原始数据。如此,实现IO-Link主站数据报文的压缩与解压缩,达到数据高速传输的效果。

图6为本申请实施例提供的一种IO-Link主站数据报文传输处理系统60的结构示意图。如图6所示,IO-Link主站数据报文高速传输处理系统60:

数据采集模块602,用于采集报文数据;

顺序计算模块604,用于根据数据属性对报文数据进行分段,获得多个段数据;以及对每个段数据根据频率处理得到对应的字符组;以及计算每个字符组中每个字符的中心性,得到组边缘字符;以及通过环形字符计算得到每个组边缘字符的衔接性,以得到衔接字符;以及根据衔接字符和字符组中的字符得到字符顺序,以及根据字符顺序对段数据进行BWT编码;

压缩传输模块606,用于对每个段数据的编码数据通过LZ77压缩,得到并传输段压缩数据。

本申请实施例提供的IO-Link主站数据报文高速传输处理系统60,通过字符频率处理形成字符组,提高了这些字符形成组合字符的概率,进而有助于后续的压缩性能的提升;通过计算得到每个字符组中字符的中心性,得到边缘字符,进而通过环形字符计算得到每个边缘字符的位置,使得边缘字符作为不同频率组的衔接字符不会对相近频率之间的字符压缩造成较大影响,最大限度提高压缩效果;通过计算得到的字符顺序作为BWT中的字符顺序进行数据压缩,充分利用了数据特性,可以大大提高压缩效果,实现数据的高效传输。

对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种专用于消防部队灭火救援现场的有毒有害气体监测系统及数据传输处理方法
  • 一种基于Ucos-II操作系统和Lwip协议栈的IEEE-1588主站以及基于该主站的报文处理方法
  • 一种用于IO-Link主站的多功能测试系统及方法
技术分类

06120116381308