发明内容
本发明针对现有技术中的缺点,提供了一种边缘协议数据处理方法和***,具有重用性高、可移植性好的优点,突破了不同终端产品的不同端口转发采集不同协议数据书写复杂性的瓶颈。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种边缘协议数据处理方法和***,包括以下步骤:
将通讯接口的协议接口和配置文件进行初始化,得到采集通道和转发通道,并获取通讯接口的接收数据;
将所述接收数据存入接收缓存区,并进行数据特征拼接,得到预处理数据一;
判断所述预处理数据一的完整性,将完整的所述预处理数据一进行数据标记,得到接收队列数据;
将所述接收队列数据进行解析,根据解析结果判断数据封装的封装协议并进行封装,得到封装数据;
将所述封装数据***采集通道或转发通道,得到通道数据,并对通道数据进行发送预处理,得到预处理数据二,通过通讯接口将预处理数据二发送。
可选的,将通讯接口的协议接口和配置文件进行初始化,得到采集通道和转发通道,包括以下步骤:
获取通讯接口的协议接口和配置文件,并将所述协议接口和配置文件进行初始化,得到初始化协议接口和初始化配置文件;
根据所述初始化协议接口和初始化配置文件,定义采集通道和转发通道。
可选的,将所述接收数据存入接收缓存区,并进行数据特征拼接,得到预处理数据一,包括以下步骤:
读取接收数据的终端通讯端口配置协议,并获取所述终端通讯端口配置协议的特征头字段、命令字段、数据长度字段和特征尾字段;
将所述特征头字段、命令字段、数据长度字段和特征尾字段依次拼接,得到预处理数据一。
可选的,判断所述预处理数据一的完整性,包括以下步骤:
校验预处理数据一内是否包含特征头字段、命令字段、数据长度字段和特征尾字段;
若是,则预处理数据一完整;若否,则与数理数据一不完整。
可选的,判断所述预处理数据一的完整性,还包括以下步骤:
若预处理数据一完整,则将预处理数据一进行数据标记;
若预处理数据一不完整,则重新获取通讯接口的接收数据。
可选的,将完整的所述预处理数据一进行数据标记,得到接收队列数据,包括以下步骤:
根据预处理数据一的接收通道,标记预处理数据一,形成接收队列数据。
可选的,将所述接收队列数据进行解析,包括以下步骤:
获取所述接收队列数据中的一帧数据,并采用调用分析法,分析一帧数据内涵盖的命令、状态、动作和数据属性。
可选的,根据解析结果判断数据封装的封装协议并进行封装,得到封装数据,包括以下步骤:
根据所述一帧数据的命令、状态、动作和数据属性,判断需要发送数据,并将所述发送数据根据发送协议进行数据段封装,得到封装数据。
可选的,对通道数据进行发送预处理,得到预处理数据二,包括以下步骤:
获取采集通道或转发通道的通道协议特征头及校验字段,并将所述通道协议特征头及校验字段添加在通道数据内,得到预处理数据二。
一种边缘协议数据处理***,包括初始化模组、数据收发模组、预处理模组、校验模组、解析模组和封装模组;
所述初始化模组用于将通讯接口的协议接口和配置文件进行初始化,得到采集通道和转发通道;
所述数据收发模组用于获取通讯接口的接收数据以及发送预处理数据二;
所述预处理模组用于将存入接收缓存区的接收数据进行数据特征拼接,得到预处理数据一,还用于对通道数据进行发送预处理,得到预处理数据二;
所述校验模组用于判断所述预处理数据一的完整性,将完整的所述预处理数据一进行数据标记,得到接收队列数据;
所述解析模组用于将所述接收队列数据进行解析;
所述封装模组用于根据解析结果判断数据封装的封装协议并进行封装,得到封装数据。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
通过将常用的数据采集协议对接升级为模组化方式进行处理,并按照解析规则设定每个模组的处理内容及方式,解决了边缘计算终端产品数据交互***重用性差、可移植性差、生命周期短的难题,在开发边缘智能多协议解析终端产品或与新产品终端产品交互数据时,由原来的数据交互不精确、不完整变为更准确、更完整,提高了协议对接的效率,缩短了软件的编写周期及调试周期,从而使产品的交付周期变短,同时解决不同终端产品不同端口转发采集不同协议数据书写复杂性的问题,另一方面,还能够兼容不同通讯端口、不同的终端协议、不同终端对象数据采集,使得复杂数据对接简单化、透明化以及高效化。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
如图1所示,一种边缘协议数据处理方法和***,包括以下步骤:将通讯接口的协议接口和配置文件进行初始化,得到采集通道和转发通道,并获取通讯接口的接收数据,具体的,获取通讯接口的协议接口和配置文件,并将协议接口和配置文件进行初始化,得到初始化协议接口和初始化配置文件;根据初始化协议接口和初始化配置文件,定义采集通道和转发通道,接收数据为初始化完成后,通过调用操作***的线程任务进行读取不同通讯硬件的通道的数据。
将接收数据存入接收缓存区,并进行数据特征拼接,得到预处理数据一,包括以下步骤:读取接收数据的终端通讯端口配置协议,并获取终端通讯端口配置协议的特征头字段、命令字段、数据长度字段和特征尾字段;将特征头字段、命令字段、数据长度字段和特征尾字段依次拼接,得到预处理数据一
由于操作***在不同的硬件接口上,不同的通讯参数的操作过程会产生不同的读取或发送结果,因此需要读取接收数据的终端通讯端口配置协议,同时通过特征头字段、命令字段、数据长度字段和特征尾字段按照顺序依次拼接得到唯一且完整的一帧数据,即为预处理数据一,从而进行区分。
判断预处理数据一的完整性,将完整的预处理数据一进行数据标记,得到接收队列数据,其中,判断预处理数据一的完整性,包括以下步骤:校验预处理数据一内是否包含特征头字段、命令字段、数据长度字段和特征尾字段;若是,则预处理数据一完整,将预处理数据一进行数据标记;若否,则预处理数据一不完整,重新获取通讯接口的接收数据。
判断预处理数据一的完整性,通过判断预处理数据一内是否均含有特征头字段、命令字段、数据长度字段和特征尾字段,若其中缺少任意一个参数,则代表预处理数据一不完整,需要进行重新获取接收数据,直到与数理数据一完整为止。
将完整的预处理数据一进行数据标记,得到接收队列数据,包括以下步骤:根据预处理数据一的接收通道,标记预处理数据一,形成接收队列数据,具体的,可以根据是否为需要重复发送的预处理数据一、接收的预处理数据一来自哪个通道以及需要发送至哪个通道对预处理数据一进行标记,从而得到接收队列数据。
将接收队列数据进行解析,包括以下步骤:获取接收队列数据中的一帧数据,并采用调用分析法,分析一帧数据内涵盖的命令、状态、动作和数据属性,根据命令、状态、动作和数据属性进行判定是否确认转发接收队列数据,并判定转发的通道。
根据解析结果判断数据封装的封装协议并进行封装,得到封装数据,包括以下步骤:根据一帧数据的命令、状态、动作和数据属性,判断需要发送数据,并将发送数据根据发送协议进行数据段封装,得到封装数据。
将封装数据***采集通道或转发通道,得到通道数据,并对通道数据进行发送预处理,得到预处理数据二,通过通讯接口将预处理数据二发送,其中,对通道数据进行发送预处理,得到预处理数据二,包括以下步骤:获取采集通道或转发通道的通道协议特征头及校验字段,并将通道协议特征头及校验字段添加在通道数据内,得到预处理数据二。
得到预处理数据二后,通过通讯接口进行发送,若需要重复发送或判定帧的发送正确与否,则启用帧是否确认判定,而此处常用于重发的情况,最后调用操作***封装完成的统一的通讯发送接口,完成发送。
一种边缘协议数据处理***,包括初始化模组、数据收发模组、预处理模组、校验模组、解析模组和封装模组;初始化模组用于将通讯接口的协议接口和配置文件进行初始化,得到采集通道和转发通道;数据收发模组用于获取通讯接口的接收数据以及发送预处理数据二;预处理模组用于将存入接收缓存区的接收数据进行数据特征拼接,得到预处理数据一,还用于对通道数据进行发送预处理,得到预处理数据二;校验模组用于判断预处理数据一的完整性,将完整的预处理数据一进行数据标记,得到接收队列数据;解析模组用于将接收队列数据进行解析;封装模组用于根据解析结果判断数据封装的封装协议并进行封装,得到封装数据。
在本实施例中,通讯接口是由不同给的硬件接口组成,例如串行接口、网络接口、CAN接口等,可以有不同操作***维护的硬件驱动接口的统一封装,数据收发模组是对采集口接收从终端上发送来的数据,发送执行终端的命令的数据,对于转发口接收从上级设备发来的数据,发送从终端转换的数据,实现数据接收或发送,通过调用不同的操作***的统一的借口,实现数据的按字节安块的发送处理。
预处理模组是由于操作***在对不同硬件接口,不同线路上,不同的通讯参数的操作过程中会产生不同的读取或发送结果,常见的比如分帧读取所有数据,分帧发送所有数据,这里对读到的数据进行拼接,按照终端通讯端口配置的协议,通过协议中的特征头字段、命令字段、数据长度字段、特征尾字段等拼接成配置的协议的完整的一帧数据。
校验模组工作于不同的协议层,对于从终端上接收的数据根据配置的不同协议做出校验判断,比如Modbus协议的CRC16校验,IEC101的校验等,对于发送到终端的数据根据配置的不同协议,按不同协议对数据进行校验,添加到数据帧的校验字段。
封装模组分为接收队列和发送队列,提供对所有正确接收的数据的排队及打上特殊的数据描述标记,比如是否需要重复发送的数据帧,接收的这帧数据来自哪个通道,去确认哪个通道发送数据已经完成,按照数据的紧急程度,使用设计完成的队列方法,把数据放入队列头或队列中的某个位置,使其能够较快的被处理。
解析模组是对队列数据的数据帧进行分析,提取数据的特征,比如状态、命令、显示、动作等任务,对于通过初始化配置哪个通道作为采集通道,哪个通道作为转发通道,然后通过提取的数据描述进行数据的是否确认、是否转发、转发的通道等判定做出进一步处理。
在本实施例中,还包括状态监测模组,用于监测终端的通讯链路是否正常,心跳的指示,终端的运行故障等状态信息,这些信息是通讯接口间的相互反馈,比如硬件产生的某些信息的体现,及解析单元之间的相互反馈,比如协议交互间的信息状态传递。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。