一种数据通信方法及装置与流程

文档序号:12822249阅读:213来源:国知局
一种数据通信方法及装置与流程

本发明涉及通信技术领域,具体涉及一种数据通信方法及装置。



背景技术:

网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。

网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:microsoft的netbeui、novell的ipx/spx和tcp/ip协议。在现有技术中,基于网络通信协议进行通信时,往往需要人工重新编码,才能完成根据指定通信协议对数据进行组装或解析的过程,需要浪费大量的人力物力。



技术实现要素:

针对现有技术中的上述缺陷,本发明提供了一种数据通信方法及装置,可以避免重新编码,能够节省人力物力。

第一方面,本发明提供的一种数据通信方法,包括:

接收根据指定通信协议组装的待解析数据;

获取用于解析所述待解析数据的第一文件;

根据所述第一文件解析所述待解析数据,获得解析后的原始数据;

输出所述原始数据。

可选的,所述获取用于解析所述待解析数据的第一文件,包括:

从预设的协议库中调取用于解析所述待解析数据的第一文件。

可选的,所述获取用于解析所述待解析数据的第一文件,包括:

配置所述指定通信协议的基本信息;

根据所述基本信息,生成所述指定通信协议可编译的第二文件;

根据所述第二文件生成可执行的第一文件。

可选的,所述根据所述基本信息,生成所述指定通信协议可编译的第二文件,包括:

根据所述基本信息,生成所述指定通信协议可编译的模板文件;

修改所述模板文件;

根据修改后的所述模板文件,生成可编译的第二文件。

可选的,在所述根据所述第二文件生成可执行的第一文件的步骤之后,还包括:

将所述第一文件和所述第二文件保存到预设的协议库中。

可选的,所述获取用于解析所述待解析数据的第一文件,包括:

从预设的协议库中调取所述指定通信协议可编译的模板文件;

判断所述模板文件格式是否正确;若格式不正确,则显示错误信息;

若格式正确,则修改所述模板文件,生成可编译的第二文件;

根据所述第二文件生成可执行的第一文件。

可选的,所述根据所述第一文件解析所述待解析数据,获得解析后的原始数据,包括:

根据所述第一文件,解析所述待解析数据中的结构信息;

校验所述结构信息是否正确;若不正确,则显示错误信息;

若正确,则验证计算的所述待解析数据的校验数据是否正确;若不正确,则显示错误信息;

若正确,则验证所述待解析数据中的字段值是否正确,若不正确,则显示错误信息;

若正确,则解析出所述待解析数据的原始数据。

第二方面,本发明提供的一种数据通信装置,包括:

待解析数据接收模块,用于接收根据指定通信协议组装的待解析数据;

第一文件获取模块,用于获取用于解析所述待解析数据的第一文件;

原始数据获得模块,用于根据所述第一文件解析所述待解析数据,获得解析后的原始数据;

输出模块,用于输出所述原始数据。

第三方面,本发明提供的一种数据通信方法,包括:

获取用户需要传输的原始数据;

获取用于将所述原始数据组装成符合指定通信协议的第一文件;

根据所述第一文件,将所述原始数据组装成符合所述指定通信协议的待解析数据;

发送所述待解析数据。

第四方面,本发明提供的一种数据通信装置,包括:

数据获取模块,用于获取用户需要传输的原始数据;

协议文件获取模块,用于获取用于将所述原始数据组装成符合指定通信协议的第一文件;

待解析数据获取模块,用于根据所述第一文件,将所述原始数据组装成符合所述指定通信协议的待解析数据;

发送模块,用于发送所述待解析数据。

由以上技术方案可知,本发明提供一种数据通信方法,首先,获取根据指定通信协议组装的待解析数据;然后,获取用于解析所述待解析数据的第一文件;再者,根据所述第一文件解析所述待解析数据,获得解析后的原始数据;最后,输出所述原始数据。相较于现有技术,本发明通过直接根据所述第一文件就可以解析所述待解析数据,进而能够获得解析后的原始数据,最后,输出所述原始数据,使用户可以直观获得所述原始数据。这样,可以避免对指定通信协议的重新编码,能够节省人力物力,不需要在代码上付出过多的劳动,能够节省大量的成本。

本发明提供的一种数据通信装置,与上述数据通信方法出于相同的发明构思,具有相同的有益效果。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1示出了本发明第一实施例提供一种数据通信方法的流程图;

图2示出了本发明第二实施例提供一种数据通信装置的示意图;

图3示出了本发明第三实施例提供一种数据通信方法的流程图;

图4示出了本发明第四实施例提供一种数据通信装置的示意图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

本发明提供了一种数据通信方法及装置。下面结合附图对本发明的实施例进行说明。

图1示出了本发明第一实施例所提供的一种数据通信方法的流程图。如图1所示,本发明第一实施例提供的一种数据通信方法包括以下步骤:

步骤s101:接收根据指定通信协议组装的待解析数据。

所述待解析数据可以是一个公司发送给另一个公司的通信信息、公司内部之间的通信信息、多台设备之间的通信信息。所述指定通信协议是指一个公司或者一台设备在通信过程中使用的特有的协议。

在通信过程中,需要对所述待解析数据进行解析,这样,才能获得通信过程中的具体信息。

所述接收根据指定通信协议组装的待解析数据可以通过串行接口(基于rs232协议、rs485协议、rs422协议、usb协议)、can总线、spi总线、i2c总线、并行接口、网络接口(基于tcp/ip协议、udp协议)等来接收所述待解析数据,这都在本发明的保护范围内。

步骤s102:获取用于解析所述待解析数据的第一文件。

其中,所述第一文件是指可以用于解析所述待解析数据的可执行的文件,所述第一文件可以是一种bin格式的二进制文件。所述第一文件是指符合所述指定通信协议格式的模板文件。所述第一文件规定了符合所述指定通信协议的帧格式。

在本步骤中,获取所述第一文件有以下几种方法:

第一种:在本步骤中,可以从预设的协议库中调取用于解析所述待解析数据的第一文件。

其中,所述预设的协议库中存储有多种不同通信协议的第一文件。若所述协议库中存储有指定通信协议的第一文件,则可以从所述协议库中直接调取使用。

第二种:本步骤可以包括:配置所述指定通信协议的基本信息;根据所述基本信息,生成所述指定通信协议可编译的第二文件;根据所述第二文件生成可执行的第一文件。

在生成所述指定通信协议可编译的第二文件过程中,包括:根据所述基本信息,生成所述指定通信协议的可编译的模板文件;修改所述模板文件;根据修改后的所述模板文件,生成可编译的第二文件。

若所述协议库中没有存储所述第一文件,就需要生成第一文件。可以先配置基本信息,然后生成一个所述指定通信协议的模板文件,再对所述模板文件进行修改,达到想要得到可编译的第二文件,再根据第二文件直接生成可执行的第一文件。

其中,修改可以是增加、删除等。所述基本信息可以包括:帧头、协议字、帧编号、数据长度、数据、crc(cyclicredundancycheck)、帧尾等。所述配置所述指定通信协议的基本信息,包括:编译所述基本信息的名称、占用字节数、取值等信息。

其中,所述第二文件是指,根据配置的所述基本信息生成可编译的一种xml格式的二进制文件。在生成所述第二文件的同时,还可以生成doc格式的文件,便于保存。所述第一文件、所述第二文件和所述doc文件都可以保存到预设的协议库中。

在本方法中,可以通过配置所述基本信息生成第二文件。所述第二文件是可编辑的文件,格式示例如下:

第三种:本步骤可以包括:从预设的协议库中调取所述指定通信协议可编译的模板文件;判断所述模板文件格式是否正确;若格式不正确,则显示错误信息;若格式正确,则修改所述模板文件,生成可编译的第二文件;根据所述第二文件生成可执行的第一文件。

若所述协议库中存储有所述指定通信协议可编译的模板文件,则可以直接调用所述模板文件,在调用模板文件后,需要验证调用的模板文件是否就是所述指定通信协议可编译的模板文件,可以通过对模板文件格式的检测来判断正确与否,若格式不正确,则会显示错误信息;若格式正确,则修改所述模板文件,进而生成可编译的第二文件,最后,再根据所述第二文件生成可执行的第一文件。

在生成第二文件的过程中,还可以生成doc文件,都可以保存在所述协议库中。这都在本发明的保护范围内。

其中,所述模板文件、修改、第二文件都与第二种方法相同。所述协议库可以存储不同通信协议的可编译的模板文件和第二文件以及可执行的第一文件,还可以存储不同通信协议的doc文件。

步骤s103:根据所述第一文件解析所述待解析数据,获得解析后的原始数据。

其中,所述原始数据是指没有经过指定通信协议组装的原始数据。

在本步骤中,可以包括:根据所述第一文件,解析所述待解析数据中的结构信息;校验所述结构信息是否正确;若不正确,则显示错误信息;若正确,则验证计算的所述待解析数据的校验数据是否正确;若不正确,则显示错误信息;若正确,则验证所述待解析数据中的字段值是否正确,若不正确,则显示错误信息;若正确,则解析出所述待解析数据的原始数据。

在利用所述第一文件解析所述待解析数据时,首先,先解析出所述待解析数据中的结构信息,所述结构信息是指解析所述待解析数据中的域结构信息。所述域结构信息是指组成所述待解析数据的每一个组成部分的位置信息。所述待解析数据是格式帧的形式。所述域包括:帧头、协议字、数据长度、数据、帧尾等。解析出所述结构信息后,需要对所述结构信息进行校验,即校验所述域结构信息是否正确。若不正确,则显示错误信息,若正确,则继续后面的验证。

然后,解析出所述待解析数据的校验数据,再校验所述校验数据是否正确。若不正确,则显示错误信息,若正确,则继续后面的验证。其中,所述校验数据crc(cyclicredundancycheck)是指根据循环冗余校验方法计算的校验值。

在校验完所述校验数据后,所述校验正确,则验证所述待解析数据中的字段值是否正确,若不正确,则显示错误信息,若正确,则解析出所述待解析数据的原始数据。其中,所述字段值包括:协议字字段值、帧头字段值等。其中,验证所述待解析数据中的字段值是否正确,包括:验证所述待解析数据中字段值的长度是否超出了预定范围、验证所述待解析数据中是否有字段值等。例如,验证所述帧头字段值的长度是否超出了预定范围,验证所述待解析数据中是否有所述协议字字段值。在验证过程中,若一个字段值有一项不正确,则显示错误信息。若所述待解析数据的结构信息、校验数据和字段值中有一个不正确,则显示错误信息,若都正确,则解析出所述待解析数据的原始数据。

步骤s104:输出所述原始数据。

在本步骤中,可以在界面输出所述原始数据,使用户能够获得所述原始数据。

本方法在windows或linux系统下都可以使用,可以适用于多种不同通信协议间的通信,应用范围广泛。

通过本实施例,将接收到的待编译信息解析为原始数据,通过利用本方法,可以避免在协议通信过程中多次开发协议程序,可以直接利用本方法中的第一文件进行解析,可以提高工作效率,节省人力物力。

在上述的第一实施例中,提供了一种数据通信方法,与之相对应的,本申请还提供一种数据通信装置。请参考图2,其为本发明第二实施例提供的一种数据通信装置的示意图。由于系统实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本发明第二实施例提供的一种数据通信装置,包括:

待解析数据接收模块101,用于接收根据指定通信协议组装的待解析数据;

第一文件获取模块102,用于获取用于解析所述待解析数据的第一文件;

原始数据获取模块103,用于根据所述第一文件解析所述待解析数据,获得解析后的原始数据;

输出模块103,用于输出所述原始数据。

在本发明提供的一个具体实施例中,所述第一文件获取模块102,包括:

第一文件调取单元,用于从预设的协议库中调取用于解析所述待解析数据的第一文件。

在本发明提供的一个具体实施例中,所述第一文件获取模块,包括:

配置单元,用于配置所述指定通信协议的基本信息;

第二文件生成单元,用于根据所述基本信息,生成所述指定通信协议可编译的第二文件;

第一文件生成单元,用于根据所述第二文件生成可执行的第一文件。

在本发明提供的一个具体实施例中,所述第二文件生成单元,包括:

模板文件生成子单元,用于根据所述基本信息,生成所述指定通信协议可编译的模板文件;

修改子单元,用于修改所述模板文件;

第二文件生成子单元,用于根据修改后的所述模板文件,生成可编译的第二文件。

在本发明提供的一个具体实施例中,所述装置,还包括:

存储模块,用于将所述第一文件和所述第二文件保存到预设的协议库中。

在本发明提供的一个具体实施例中,所述第一文件获取模块102,包括:

模板文件调取单元,用于从预设的协议库中调取所述指定通信协议可编译的模板文件;

格式判断单元,用于判断所述模板文件格式是否正确;若格式不正确,则显示错误信息;

修改模板单元,用于若模板文件格式正确,则修改所述模板文件;

第二文件获得单元,用于根据修改后的所述模板文件,生成可编译的第二文件;

第一文件获得单元,用于根据所述第二文件生成可执行的第一文件。

在本发明提供的一个具体实施例中,所述原始数据获取模块103,包括:

结构解析单元,用于根据所述第一文件,解析所述待解析数据中的结构信息;

结构校验单元,用于校验所述结构信息是否正确;若不正确,则显示错误信息;

校验数据单元,若结构校验单元校验正确,则验证计算的所述待解析数据的校验数据是否正确;若不正确,则显示错误信息;

字段值验证单元,若校验数据单元校验正确,则验证所述待解析数据中的字段值是否正确;若不正确,则显示错误信息;

原始数据获取单元,用于若字段值验证单元验证正确,则获得解析后的原始数据。

以上,为本发明第二实施例提供的一种数据通信装置说明。

请参考图3,其为本发明第三实施例提供的一种数据通信方法的流程图,本第三实施例是上述第一实施例的反向过程实施方法,因此部分内容不再赘述,请参考上述第一实施例的说明进行理解,本发明第三实施例提供的一种数据通信方法,包括以下步骤:

步骤s201:获取用户需要传输的原始数据。

所述原始数据是指用户需要发送给接收端的数据。在不同端相互通信时,会根据特定的协议组装所述数据,使所述数据可以以计算机二进制或十六进制文件传输给接收端。

步骤s202:获取用于将所述原始数据组装成符合指定通信协议的第一文件。

在本步骤中,获取第一文件的方法与第一实施例中的步骤s102步骤相同,请参考第一实施例中的步骤s102。其中,所述第一文件与第一实施例中第一文件意义相同。

步骤s203:根据所述第一文件,将所述原始数据组装成符合所述指定通信协议的待解析数据。

在本步骤中,可以包括:验证所述原始数据中的协议字是否正确,若不正确,则显示错误信息,并结束;若正确,则验证所述原始数据的长度是否超出预定范围,若超出,则显示错误信息,并结束;若正确,则根据所述第一文件,将所述原始数据根据对应的帧格式进行组帧,形成帧格式文件;计算所述帧格式文件的校验数据crc(cyclicredundancycheck);将所述校验数据封装到所述帧格式文件中,形成待解析数据。

其中,所述对应的帧格式是指与所述第一文件对应的符合所述指定通信协议的帧格式。

步骤s204:发送所述待解析数据。

在本步骤中,向接收端发送组装好的待解析数据,以进行正常通行。

所述发送所述待解析数据,可以通过串行接口(基于rs232协议、rs485协议、rs422协议、usb协议)、can总线、spi总线、i2c总线、并行接口、网络接口(基于tcp/ip协议、udp协议)等来发送,这都在本发明的保护范围内。

在上述的第三实施例中,提供了一种数据通信方法,与之相对应的,本申请还提供一种数据通信装置。请参考图4,其为本发明第四实施例提供的一种数据通信装置的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本发明第四实施例提供的一种数据通信装置,包括:

数据获取模块201,用于获取用户需要传输的原始数据;

协议文件获取模块202,用于获取用于将所述原始数据组装成符合指定通信协议的第一文件;

待解析数据获取模块203,用于根据所述第一文件,将所述原始数据组装成符合所述指定通信协议的待解析数据;

发送模块204,用于发送所述待解析数据。

以上,为本发明第四实施例提供的一种数据通信装置的实施例说明。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。需要说明的是,本发明附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和获得机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与获得机指令的组合来实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个获得机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该获得机软件产品存储在一个存储介质中,包括若干指令用以使得一台获得机机器(可以是个人获得机,服务器,或者网络机器等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1