CN115589360A - 一种数据传输系统、方法、电子设备及存储介质 - Google Patents

一种数据传输系统、方法、电子设备及存储介质 Download PDF

Info

Publication number
CN115589360A
CN115589360A CN202110762354.XA CN202110762354A CN115589360A CN 115589360 A CN115589360 A CN 115589360A CN 202110762354 A CN202110762354 A CN 202110762354A CN 115589360 A CN115589360 A CN 115589360A
Authority
CN
China
Prior art keywords
data transmission
directed graph
node
data
rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110762354.XA
Other languages
English (en)
Inventor
梁东
谭云月
魏锋
吴必造
杨亚军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile IoT Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile IoT Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile IoT Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110762354.XA priority Critical patent/CN115589360A/zh
Publication of CN115589360A publication Critical patent/CN115589360A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

为了解决现有数据传输单元DTU中软件固化、功能高度定制化的问题,本发明实施例提供一种数据传输系统、方法、电子设备及存储介质,其中,所述系统包括:配置组件和数据传输组件,其中;所述配置组件,用于配置与应用场景适应的数据传输规则;向所述数据传输组件发送所述数据传输规则;所述数据传输组件,用于接收所述数据传输规则,基于所述数据传输规则传输数据。通过本发明实施例提供的系统和方法,能够至少部分解决DTU中软件固化、功能高度定制化的问题。

Description

一种数据传输系统、方法、电子设备及存储介质
技术领域
本发明涉及数据传输技术领域,尤其涉及一种数据传输系统、方法、电子设备及存储介质。
背景技术
数据传输单元(DTU,Data Transfer Unit)是专门用于将串口数据转换成互联网协议(IP,Internet Protocol)数据,或者将IP数据转换成串口数据,然后通过无线通信网络进行传送的无线设备,广泛用于气象、水利、地质等行业。现有的DTU存在如下不足:1)大多数DTU实现单一路径的数据传输,或者在硬件上仅支持单种南向协议接口,且软件配置较为固定,仅能完成特定的转发功能;2)少部分DTU虽能适应多种应用场景,但其传输规则相对比较固定,往往只能处理特定格式的数据。也即:目前的DTU存在软件固化、功能高度定制化的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据传输系统、方法、电子设备及存储介质,能够至少部分解决DTU存在软件固化、功能高度定制化的问题。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据传输系统,所述系统包括:配置组件和数据传输组件,其中;
所述配置组件,用于配置与应用场景适应的数据传输规则;向所述数据传输组件发送所述数据传输规则;
所述数据传输组件,用于接收所述数据传输规则,基于所述数据传输规则传输数据。
在上述方案中,所述配置组件包括:配置单元、生成单元和发送单元,其中;
所述配置单元,用于获得包含所述数据传输规则的配置信息;
所述生成单元,用于基于所述配置信息生成可执行插件;
所述发送单元,用于向所述数据传输组件发送所述可执行插件;
所述数据传输组件,还用于接收所述可执行插件,调用所述可执行插件,基于所述可执行插件中的所述数据传输规则传输数据。
在上述方案中,所述配置单元为图形化界面;所述配置信息为能够反映所述数据传输规则的流程图;
所述生成单元包括:第一转换模块、检验模块、第二转换模块、映射模块和生成模块,其中,
所述第一转换模块,用于将所述流程图转换成有向图;
所述检验模块,用于检验所述有向图是否合格;
所述第二转换模块,用于在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
所述映射模块,用于获得所述有向图中节点与所述对应的目标表达之间的映射关系;
所述生成模块,用于基于所述映射关系生成所述可执行插件。
在上述方案中,所述第一转换模块,具体用于:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图。
在上述方案中,所述有向图采用邻接表存储。
在上述方案中,所述检验模块,具体用于:
确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
在上述方案中,所述检验模块,还具体用于:
确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;基于第二判断结果确定所述有向图是否合格。
在上述方案中,所述第二转换模块,具体用于:确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
所述映射模块,具体用于:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
在上述方案中,所述生成模块包括:确定子单元和生成子模块,其中;
所述确定子单元,用于确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
所述生成子模块,用于基于所述调用代码和所述处理代码生成所述可执行插件。
在上述方案中,所述可执行插件为与所述数据传输组件可分离的动态链接库。
在上述方案中,所述配置组件,还用于在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线USB向所述数据传输组件重新发送所述新的数据传输规则;
所述数据传输组件,还用于接收所述新的数据传输规则,基于所述新的数据传输规则传输数据。
在上述方案中,所述数据传输组件包括至少一个北向通讯单元、主控单元、至少一个南向通讯单元和接收单元,其中;
所述接收单元,用于接收所述数据传输规则,向所述主控单元传输所述数据传输规则;
所述主控单元,用于基于所述数据传输规则,在所述至少一个北向通讯单元和所述至少一个南向通讯单元之间确定目标通路和目标传输格式,以传输数据。
在上述方案中,所述至少一个北向通讯单元包括以下至少之一:以太网模块、4G/5G模块;所述至少一个南向通讯单元包括以下至少之一:控制器域网CAN模块、RS485模块、RS232模块、串口模块、无线通讯模块。
第二方面,本发明实施例还提供一种数据传输方法,所述方法包括:
配置与应用场景适应的数据传输规则;
发送所述数据传输规则给数据传输组件;所述数据传输组件用于基于所述数据传输规则传输数据。
在上述方案中,所述配置与应用场景适应的数据传输规则,包括:获得包含所述数据传输规则的配置信息;基于所述配置信息生成可执行插件。
在上述方案中,在所述配置信息为能够反映所述数据传输规则的流程图的情况下,所述基于所述配置信息生成可执行插件,包括:
将所述流程图转换成有向图;检验所述有向图是否合格;
在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
获得所述有向图中节点与所述对应的目标表达之间的映射关系;
基于所述映射关系生成所述可执行插件。
在上述方案中,所述将所述流程图转换成有向图,包括:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图;其中,所述有向图采用邻接表存储。
在上述方案中,所述检验所述有向图是否合格,包括:确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
在上述方案中,所述检验所述有向图是否合格,还包括:确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;基于第二判断结果确定所述有向图是否合格。
在上述方案中,所述将所述流程图中每一功能块包含的功能转换成对应的目标表达,包括:
确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
对应的,所述获得所述有向图中节点与所述对应的目标表达之间的映射关系,包括:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
在上述方案中,所述基于所述映射关系生成所述可执行插件,包括:
确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
基于所述调用代码和所述处理代码生成所述可执行插件;
其中,所述可执行插件为与所述数据传输组件可分离的动态链接库。
在上述方案中,所述方法还包括:在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线USB向所述数据传输组件重新发送所述新的数据传输规则。
第三方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一项所述方法的步骤。
第四方面,本发明实施例还提供一种电子设备,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行前述任一项所述方法的步骤。
本发明实施例提供一种数据传输系统、方法、电子设备及存储介质,其中,所述系统包括:配置组件和数据传输组件,其中;所述配置组件,用于配置与应用场景适应的数据传输规则;向所述数据传输组件发送所述数据传输规则;所述数据传输组件,用于接收所述数据传输规则,基于所述数据传输规则传输数据。本发明实施例通过配置组件配置与应用场景适应的数据传输规则,并将配置的数据传输规则发送给数据传输组件,所述数据传输组件在接收到配置的数据传输规则后,基于所述数据传输规则传输数据,以此,解决数据传输组件中数据传输规则的固化、功能高度定制化的问题。
附图说明
图1为本发明实施例提供的一种数据传输系统的结构示意图;
图2为本发明实施例提供的在配置单元中配置的流程图的结构示意图;
图3为本发明实施例提供的图2所示的流程图对应的有向图的结构示意图;
图4为本发明实施例提供的图3所示的有向图存储的一种结构示意图;
图5为本发明实施例提供的图3所示有向图中剔除所有端口功能块对应的节点之后剩余的有向图的结构示意图;
图6为本发明实施例提供的图3所示的有向图节点与图2中所示流程图中功能块对应的目标表达之间映射关系的存储结构示意图;
图7为本发明实施例提供的基于图6所示的映射关系确定的包含数据传输规则的处理代码对某一端口收发线程接收的数据处理的流程示意图;
图8为本发明实施例提供的对图6所示的映射关系的存储结构进行编号后的结构示意图;
图9为本发明实施例提供的对列的一种结构示意图;
图10为本发明实施例提供的一种可执行插件更新的硬件连接结构示意图;
图11为本发明实施例提供给的一种可执行插件更新的流程示意图;
图12为本发明实施例提供的数据传输组件的一种硬件结构示意图;
图13为本发明实施例提供的数据传输系统中软件的一种结构示意图;
图14为用户使用图13所示的数据传输系统的流程示意图;
图15为本发明实施例提供的可执行插件的工作原理流程示意图;
图16为本发明实施例提供的利用图13所示的软件生成可执行插件的流程示意图;
图17为本发明实施例提供的数据传输方法的流程示意图;
图18为本发明实施例提供的电子设备的一种硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为便于理解本发明,先介绍一下相关技术。在相关技术中,DTU只负责通讯数据转换的单一功能,将远程数据在北向网络与南向数据总线之间进行相互转换,比如,中国专利申请号为201821626801.9所描述的一种数据传输单元,在该专利中,描述了一种将数据在南向的CAN接口与北向的2G接口之间进行转换传输的系统,其仅能实现单一路径传输或从硬件上只支持单种南向协议接口,且其软件较为固定,只完成特定的转发功能,需要实现功能变更往往需要通过现场编程或者空中下载软件升级(FOTA,Firmware Over-The-Air)来实现。虽然,一些具有DTU功能的工业网关能够支持多功能多传输端口,计算能力也比较强大,比如,中国专利公开号为CN110989524A所描述的一种多功能网关,在该专利中,所说的多功能网关能够支持多种不同端口之间的协议和数据转换,功能对比前述DTU产品大大丰富,能够解决很多场景下的使用问题。根据描述,该方案通过MPU处理协议数据之间的转换,而转换规则相对比较固定,往往只能处理特定格式的数据,且配置较为固定。综上所述,目前的DTU存在软件固化、功能高度定制化,不能灵活的适应不同的应用场景,大大降低了用户的体验感。
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供一种数据传输系统10,如图1所示,可以包括:配置组件101和数据传输组件102,其中;
所述配置组件101,用于配置与应用场景适应的数据传输规则;向所述数据传输组件102发送所述数据传输规则;
所述数据传输组件102,用于接收所述数据传输规则,基于所述数据传输规则传输数据。
前述的数据传输系统中,所述数据传输组件102中的数据传输规则,由所述配置组件101进行配置,以使所述数据传输组件102能够灵活的适用多种应用场景。其中,所述应用场景可以是任何需要数据传输组件102对数据进行转发的场景,比如,5G手机的通讯数据的转发;再比如,在物联网中,网关接收来自不同终端发送的采集数据通过以太网向云平台的数据传输。应该理解的是,不同的应用场景可能需要使用的传输路径、数据传输格式、与所述数据传输组件连接的总线接口、数据并行处理的需求等等不同,因此,在不同的应用场景中,所述数据传输组件中所需的数据传输规则也不同。
可以理解,通过配置组件101的配置,数据传输组件102能够灵活的适用不同的应用场景,大大提高了数据传输组件102的普适性,能够解决很多应用场景下数据的传输。
在一个可选的实施例中,所述配置组件101可以包括:配置单元、生成单元和发送单元,其中;
所述配置单元,用于获得包含所述数据传输规则的配置信息;
所述生成单元,用于基于所述配置信息生成可执行插件;
所述发送单元,用于向所述数据传输组件发送所述可执行插件;
所述数据传输组件102,还用于接收所述可执行插件,调用所述可执行插件,基于所述可执行插件中的所述数据传输规则传输数据。
在本可选的实施例中,配置组件101包含的配置单元获得包含所述数据传输规则的配置信息,向其包含的所述生成单元传输所述配置信息,所述生成单元基于该配置信息生成包含前述的数据传输规则的可执行插件,通过所述发送单元发送给所述数据传输组件102,所述数据传输组件102收到该可执行插件后,在需要进行数据转发时,调用所述可执行插件,基于所述可执行插件中的所述数据传输规则进行数据传输。其中,所述配置信息可以理解成用于生成所述数据传输规则的参数。所述参数的格式可以为但不限于程序、图形、语音等等。
在一些可选的实施例中,所述配置单元为图形化界面;所述配置信息为能够反映所述数据传输规则的流程图;
所述生成单元包括:第一转换模块、检验模块、第二转换模块、映射模块和生成模块,其中,
所述第一转换模块,用于将所述流程图转换成有向图;
所述检验模块,用于检验所述有向图是否合格;
所述第二转换模块,用于在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
所述映射模块,用于获得所述有向图中节点与所述对应的目标表达之间的映射关系;
所述生成模块,用于基于所述映射关系生成所述可执行插件。
需要说明的是,前述所说的图形化界面,也可以称之为图形化用户界面(UI,UserInterface),用户可以在此界面上对所述数据传输组件中的数据传输规则进行图形化设计,形成能够反映所述数据传输规则的流程图。所述生成单元用于基于所述流程图生成包含有数据传输规则的可执行插件,以备后用。
可以理解的是,所述流程图可以包括功能块和单向连接线,其中,所述功能块的数量可以为多个,包含的类型也可以多种,比如,所述功能块可以包括通讯端口块、条件判断块、数据处理块等三种功能不同的块,通常,每一个所述功能块在结构上都拥有一个入口(in)和一个出口(out);其中,所述通讯端口块可以表示所述数据传输组件中的通讯端口,其出口(out)为后述所述可执行插件内部数据传输通路的起始点,也就是说,在可执行插件内部,数据处理走向是从该通讯端口块的出口开始,调用沿着所述单向连接线的方向上的所有功能块,以实现数据的传输;所述通讯端口块的入口表示所述可执行插件向外发送数据的口或者接收外部发送数据的口,也即,所述可执行插件与外部进行数据交互的口。所述条件判断块支持一条任意复杂的判断语句,对所述条件判断块中的输入数据进行判断,若判断为真,数据传输到下一功能块,若判断为假,不调用下一功能块。所述数据处理块可以支持任意多条语句,该所述多条语句对所述数据处理块的输入数据和输出数据进行操作和处理。
所述单向连接线表示数据处理的走向,其为单方向的,连接方向必须从某一个功能块的出口到另一个功能块的入口,同一功能块的出口可以有多条连接线引出,同一功能块的入口也可以有多条连接线引入。
举例来说,如图2所示,其示出本发明实施例提供的一种流程图的结构示意图。在图2中,控制器局域网络(CAN,Controller Area Network)1(也即:CAN1)、网络端口1234(也即:Port1234)、网络端口1235(也即:Port1235)为前述的通讯端口块;判断语句data_in[3]==0x35、data_in[3]==0x34为前述的条件判断块;数据处理语句buffcopy(data_out,data_in)、data_in[10]==0xff为前述的数据处理块。综上描述,该流程图所表述的是:所有从网络端口1234、1235收到的报文,判断其第4个字节是否为0x34,如果判断为真,将报文复制一遍并且将输出数据的第11个字节变成0xff,然后输出给CAN1端口发送出去。
所有从CAN1端口收到的报文,判断其第4个字节是否为0x35,如果判断为真,将数据分别输出给网络端口1234和1235,并发送出去。
在获得配置的流程图后,如何生成可执行插件,具体过程可以为:所述生成单元中的所述第一转换模块将所述流程图转换成有向图;在得到所述有向图后,所述检验模块检验所述有向图是否合格;在检验到所述有向图是合格的情况下,所述第二转换模块将所述流程图中每一功能块包含的功能转换成对应的目标表达,所述映射模块建立所述有向图中节点与所述对应的目标表达之间的映射关系,然后,所述生成模块基于所述映射关系生成所述可执行插件。
这里,所述第一转换模块,可以具体用于:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图。
其中,所述确定所述流程图中每一个功能块对应的节点可以为将所述流程图中的每一个功能块抽象成对应的节点,功能块与节点一一对应,也即,二者数量相等。对应的,所述确定每一个节点对应的位置关系可以包括基于所述流程图中的单向连接线确定每一个节点对应的位置关系,实质上,这里所说的位置关系可以理解成所述功能块之间连接关系。基于此,所述基于每一个节点和每一个对应的位置关系生成所述有向图可以包括按照每一个对应的位置关系将各所述节点连接,形成所述有向图,如图3所示。图3为本发明实施例提供的图2所示的流程图对应的有向图的结构示意图。在该图3中,节点check1、check2分别对应前述图2中判断语句为data_in[3]==0x35对应的条件判断块、判断语句为data_in[3]==0x34对应的条件判断块。proc1为图2中对应的数据处理块。
作为一种可选的实施方式,所述有向图采用邻接表存储。所述邻接表(AL,Adjacency List)为一种数组与链表相结合的存储方式,其具体存储是这样的,所述有向图中的各节点用一个一维数组存储,另外,对于节点数组中,每一个数据元素还需要存储指向第一个邻接点的指针,以便于查找该节点的边信息。每一个节点的所有邻接点构成一个线性表,由于每一个节点对应的邻接点的个数不定,所以用单链表存储。应该理解的是,在所述邻接表以所述有向图节点的连接线弧尾来存储时得到的是出边表,容易得到所述有向图中每一个节点的出度;在所述邻接表以所述有向图节点的连接线弧头来存储时得到的是入边表,容易得到所述有向图中每一个节点的入度,也可以称之为逆邻接表。
举例来说,如图4所示。图4为本发明实施例提供的图3所示的有向图存储的一种结构示意图。在图4中,该邻接表为出边表,也即以所述有向图节点的连接线弧尾来存储的,其中,所述有向图中节点组成的一维数组为:0:check1、1:check1、2:proc1、3:CAN1、4:port1234、5:port1235;按照所述有向图各节点的位置关系,0:check1指向4:port1234、5:port1235;1:check1指向2:proc1:3;2:proc1:3指向3:CAN1;3:CAN1指向0:check1;4:port1234指向1:check1;5:port1235指向1:check1,至此,完成所述有向图的出边的邻接表存储。
在一些实施例中,所述检验模块,具体用于:
确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
在实际应用过程中,所述流程图中的功能块分为端口功能块和非端口功能块两种类型,如前述图3中通讯端口块的类型为端口功能块;如前述图3中的条件判断块、数据处理块均的类型均为非端口功能块。在设计流程图时,要求除了端口功能块之外的其他功能块必须要有输入输出连接,否则会出现未定义的结果,且这种连接没有任何意义。因此,需要对非端口功能的连接进行检测,以确定设计的流程图是否合格,对于流程图的连接检测可以转化为对所述有向图节点的检测,具体的,可以是对所述有向图节点的出度(out-degree)和入度(in-degree)进行检测,要求out-degree(vertices)>0且in-degree(vertices)>0。
因此,上述检测步骤具体可以为:对所述有向图中的任一第一节点,确定其对应功能块的类型;在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件,这里,所说的第一设定条件即可以为所述第一节点的出度大于0,也即:在所述第一节点的出度大于0,判定所述第一节点的出度满足第一设定条件;反之,在所述第一节点的出度不大于0,判定所述第一节点的出度不满足第一设定条件。同理,所述第二设定条件可以为所述第一节点的入度大于0,也即:在所述第一节点的入度大于0,判定所述第一节点的出度满足第二设定条件,反之,在所述第一节点的入度不大于0,判定所述第一节点的入度不满足第一设定条件。
这里,所述第一判断结果包括判断所述第一节点的出度是否满足第一设定条件的判断结果,以及判断所述第一节点的入度是否满足第二设定条件的判断结果。
在一些实施例中,所述基于第一判断结果确定所述有向图是否合格,可以包括:
在判定所述第一节点的出度满足所述第一设定条件且判定所述第一节点的入度满足所述第二设定条件的情况下,确定所述有向图合格;
在判定所述第一节点的出度不满足所述第一设定条件或判定所述第一节点的入度不满足所述第二设定条件的情况下,确定所述有向图不合格。
在另一些实施例中,设计的所述流程图中,如果非端口功能块间出现了回环,程序运行过程中会出现死循环,导致程序卡死。在判断所述流程图中是否包含回环,可以转化为判断剔除所述有向图中对应的功能块类型为端口功能块的节点之后的有向图是否存在回环,也即:所述检验模块,还具体用于:
确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;基于第二判断结果确定所述有向图是否合格。
这里,所述子有向图即为剔除所述有向图中对应的功能块类型为端口功能块的节点之后剩余的有向图,如图5所示。图5为本发明实施例提供的图3所示有向图中剔除所有端口功能块对应的节点之后剩余的有向图的结构示意图。
在得到子有向图后,判断所述子有向图是否存在回环可以通过拓扑排序算法对该子有向图进行处理,以确定所述子有向图中是否存在回环,判断的具体过程可以为:若通过拓扑排序算法能够将所述子有向图中的所有节点进行排序,则所述子有向图中不存在回环,为无回环有向图;若无法通过拓扑排序算法将所述子有向图中的所有节点进行排序,则所述子有向图中存在回环,为有回环有向图。图5中的子有向图为无回环有向图。
在实际应用过程中,所述基于第二判断结果确定所述有向图是否合格可以包括:在判定所述子有向图中存在回环的情况下,确定所述有向图不合格;在判定所述子有向图中不存在回环的情况下,确定所述有向图合格。
在一些实施例中,所述有向图是否合格还可以依据所述第一判断结果和所述第二判断结果共同确定,也即:在判定所述第一节点的出度满足所述第一设定条件且判定所述第一节点的入度满足所述第二设定条件,且判定所述子有向图不存在回环的情况下,才确定所述有向图合格;其他情况,均为不合格。
在实际应用过程中,在确定所述有向图不合格的情况下,输出错误提示,以提醒设计人员设计的流程图存在不合格,其中所述错误提示的格式可以为语音、图片、文字等任何可以作为提示的信息。
在另一些实施例中,在确定所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达,具体为,所述第二转换模块,具体用于:确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
所述映射模块,具体用于:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
需要说明的是,这里所述目标语言格式可以是指与所述数据传输组件匹配的语言格式,也即,所述数据传输组件能够识别的语言格式。举例来说,所述目标语言格式可以为C语言。在C语言下,所述按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述,也即是,将所述流程图中的设计语句转换成C语言的描述。所述目标表达是为将所述相应描述与前述的有向图节点对应起来,而将所述相应描述进行转化后的表达,在C语言下,所述目标表达可以是将所述相应描述对应的代码函数化,也即:所述流程图中每一个功能块及其语句用一个函数表达,便于与所述有向图中的节点进行关联。由于每个函数都会对数据做读或写的处理,所以每个函数需要定义好相关的输入和输出。所述对应的目标表达为所述有向图中对应节点相关可以是指具体将所述相应描述转换成什么样的目标表达,可以依据要与所述有向图中节点建立什么样的映射关系相关。
以所述目标语言格式为C语言为例,所述流程图中设计的语句与C语言只有一个简单的对应关系,可以通过字符转换的方式直接将框图中设计语句转化为C语言的源代码格式,另外,由于某功能块对应的源代码需要和前述的有向图中的节点对应起来,所以,需要将某功能块转化后的源代码函数化,即该部分源代码单独构成一个函数,便于与所述有向图中的节点进行关联。由于每个函数都会对数据做读或写的处理,所以每个函数需要定义好相关的输入和输出。
在得到所述目标表达之后,可以通过将所述有向图中每一个节点的指针指向对应的目标表达,来建立所述有向图中节点与所述对应的目标表达之间的映射关系。具体形式如图6所示。图6为本发明实施例提供的图3所示的有向图节点与图2中所示流程图中功能块对应的目标表达之间映射关系的存储结构示意图。在如6中,每一个节点指向一个函数。
在获得所述映射关系之后,就完成了前述数据传输规则的主体数据结构及目标表达的转换,之后,就可以基于所述映射关系生成所述可执行插件,具体生成过程,在一些实施例中,所述生成模块包括:确定子单元和生成子模块,其中;
所述确定子单元,用于确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
所述生成子模块,用于基于所述调用代码和所述处理代码生成所述可执行插件。
需要说明的是,所述调用代码的设计是为了响应于所述数据传输组件的调用操作,也即,所述调用代码可以是接口代码,这些接口代码实现诸如所述可执行插件中程序运行的触发、所述可执行插件内部与所述数据传输组件之间的数据交互。所述基于所述映射关系确定包含所述数据传输规则的处理代码可以包括确定所述映射关系中的各节点对应的功能块的调用顺序以确定数据传输路径子规则的处理代码、确定数据传输格式子规则的处理代码以及所述数据传输组件中数据并行处理的子规则的处理代码等等。
在确定了调用代码及所述处理代码后,将调用代码及所述处理代码组成完整代码,交叉编译所述完整代码生成所述可执行插件。
一种可选的实施方式,所述处理代码可以按照广度优先的顺序规则执行,以获得较大的数据并行处理能力。
举例来说,如图7所示,其示出本发明实施例提供基于图6所示的映射关系确定的包含数据传输规则的处理代码对某一端口收发线程接收的数据处理的流程示意图。在图7中,m端口收发线程等待数据到来,在某一数据到来后,m端口收发线程调用所述可执行插件的数据接口,以使所述可执行插件对所述某一数据进行处理;所述可执行插件对所述某一数据进行处理后,输出给n端口收发线程,n端口收发线程接收到处理的所述某一数据后,向外部发送。
具体的,所述可执行插件对所述某一数据处理的具体过程可以如下:
第一步,在所述可执行插件接收到m端口发送的所述某一数据,基于自身存储的邻接表判断所述m端口是否在该邻接表中;
第二步,若判定所述m端口不在所述邻接表,则继续等待数据到来;若判定所述m端口在所述邻接表,则将所述m端口所在该邻接表中的索引号作为当前索引号(current_index);将所述某一数据作为当前参数(current_param);将当前述索引号指向的该邻接表中节点作为当前节点(current_node);
第三步,调用所述当前节点对应的目标表达,将作为当前参数的所述某一数据输入到所述目标表达,获得第一返回数据;
第四步,判断所述第一返回数据是否正确,若判定所述第一返回数据正确,判断当前节点对应的功能块是否为端口功能块,若判定当前节点对应的功能块是端口功能块,通知相应的端口收发线程发送所述第一返回数据,并同时将当前节点指向的下一个节点作为当前节点;若判定所述第一返回数据错误,将当前节点指向的下一个节点设置为当前节点;进行下一节点的数据处理;
第五步,若判定当前节点对应的功能块为非端口功能块,将当前节点所在邻接表中对应的索引号,以及前述第一返回数据放入到对列;将当前节点指向的下一个节点设置为当前节点;
第六步,判断所述当前节点指向的下一个节点(也即现在的当前节点)是否为空,若判定所述当前节点指向的下一个节点不空,则调用该下一节点对应的目标表达,将前述第一返回数据作为当前参数输入到该下一节点对应的目标表达,继续前述第三步以后的步骤。
第七步,若判定所述当前节点指向的下一个节点为空,则再判断前述的对列是否为空,若判定前述的对列不空,则将该对列中节点以及该节点对应目标表达的返回数据从对列的首部移出,将当前索引号指向的节点作为当前节点,继续第二步以后的步骤。
第八步,若判定前述的对列为空,则认为当前数据通路已经处理完成,返回继续等待下一次数据的到来。
以前述图6的邻接表为例说明上述的数据处理过程,为了描述方便,将图6做如图8所示的改变。将每个节点按照数字从小到大依次编号A、B、C、D、E、F、G;以CAN1接收到数据为例,所述可执行插件中的处理过程如下:
1)假设此时CAN1端口收到数据,触发数据来到步骤,进行邻接表存在性判断,因为邻接表3即为CAN1端口对应的邻接表项,所以邻接表存在该CAN1端口的index。
2)将该CAN1端口的index设为当前index,从该CAN1端口传入的数据作为当前参数。所以current_index设置为3,current_param为设置从该CAN1端口输入的原始输入数据。
3)设置当前节点为当前index指向的节点,从图6中可知,索引号为3的节点指向的是索引号为0的节点,也即:current_node设置为nodeD。
4)调用当前节点对应index在邻接表项的函数,将作为当前参数的原始输入数据输入到所函数中,获得第一返回数据,由于current_node为nodeD,nodeD记录的index为0,所以调用index为0的邻接表项对应的函数function0,将当前参数current_param也就是原始输入数据输入到函数function0中,获得第一返回数据。判断所述第一返回数据是否正确。
5)为了方便理解假设函数返回正确。这里的函数返回是指function0的返回;
6)在判定所述第一返回数据正确的情况下,判断所述当前节点对应的功能块是否为端口功能块,因为current_node(nodeD)记录的index为0,是为check1函数,所以当前节点对应的index表项不是端口功能块。
7)在所述当前节点不是端口功能块的情况下,将当前节点及前述函数function0返回的第一返回数据放入队列,也即:目前队列只有一个项目,形如图9所示。
8)在放入对列后,设置当前节点指向的下一节点作为当前节点,即设置current_node为nodeD指向的下一节点;判断指向的下一节点是否为空;
9)current_node已经被设置为空,所以当前节点为空。更进一步的理解,按照广度优先算法,当前同深度层级的节点已经被访问完毕。
10)因为队列里面有一个项目,所以队列不为空。
11)从队首出队列。因为队列中只有一个项目,即nodeD与function0的返回数据从队列中出来,队列又变成了空队列。
12)出队列的节点对应的index设置为当前index,出队列的数据作为当前参数。即current_index设置为0,current_param设置为function0的第一返回数据。
13)设置当前节点为当前index指向的节点。即current_node设置为nodeA。
14)调用当前节点对应index邻接表项的函数,传入数据为当前参数。current_node为nodeA,nodeA记录的index为4,所以调用index为4的邻接表项对应的函数function4,传入参数为current_param也就是function0返回数据。
15)为了方便理解假设函数返回正确。这里的函数返回是指function4的返回;
16)因为current_node(nodeA)记录的index为4,为port1234端口,所以当前节点对应的index表项是端口功能块,function4返回的数据作为最终数据,通知相应端口收发线程发送数据。
17)设置当前节点为当前节点指向的下一节点。即current_node设置为nodeA指向的下一节点nodeG。
18)当前节点不为空。
19)调用当前节点对应index邻接表项的函数,传入数据为当前参数。所以调用nodeG记录的index对应函数function5,输入参数current_node仍然为function0返回数据。
20)为了方便理解假设函数返回正确。这里的函数返回是指function5的返回;
21)因为current_node(nodeG)记录的index为5,为port1235端口,所以当前节点对应的index表项是端口功能块,function5返回的数据作为最终数据,通知相应端口收发线程发送数据。
22)设置当前节点为当前节点指向的下一节点。设置current_node为nodeG指向的下一节点,为空。
23)当前节点为空。
24)队列为空,当次数据通路处理完成,返回等待数据。
如上,则是CAN1一次输入数据的交互流程,从CAN1进入的数据被处理的顺序是function0、function4、function5。如上的例子中,check1作为流程图的第一子层,port1234与port1235作为流程图的第二子层。check1中返回的数据要同时作为port1234与port1235的输入数据。所以需要进行层的控制。上述算法能够保证执行过程按照一层一层的顺序执行,归根结底是使用了流程图的广度优先遍历算法,对于网络输出的时间来说,也是相对一致的。
在一些实施例中,所述可执行插件为与所述数据传输组件可分离的动态链接库。
需要说明的是,所述可执行插件要实现的目标很明确,一个是接收所述数据传输组件中的各通讯端口的读写线程的调用,接收某一通讯端口的数据输入、用插件内部封装好的转换逻辑生成目标数据,将所述目标数据呈递给另一通讯端口的读写线程;另一是与所述数据传输组件中的主体软件程序可分离,在其主体软件程序不改变的情况下,所述可执行插件可以随时地进行替换,以满足数据传输规则变更的需求。因此,所述交叉编译生成的二进制文件是可以与所述数据传输组件中的主体软件程序相分离的动态链接库,这样,所述数据传输组件中的主体软件程序可以依赖于相对比较固定的头文件生成,而所述数据传输规则可以基于应用场景随时替换,以满足不同应用场景中所述数据传输组件的普适性。
在一些实施例中,所述配置组件,还用于在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线(USB,Universal Serial Bus)向所述数据传输组件重新发送所述新的数据传输规则;
所述数据传输组件,还用于接收所述新的数据传输规则,基于所述新的数据传输规则传输数据。
这里所描述的是,当应用场景发明变化后,所述数据传输组件中的数据传输规则可能就不适用了,所述配置组件可以重新配置与新的应用场景适应的新的数据传输规则,通过USB传输给所述数据传输组件,以使所述数据传输组件能够基于所述新的数据传输规则传输数据。
具体过程可以如图10和图11所示,图10为本发明实施例提供的一种可执行插件更新的硬件连接结构示意图;图11为本发明实施例提供给的一种可执行插件更新的流程示意图。其中,在图10中,上位机也即前述配置组件的一种具体形式;DTU终端为前述数据传输组件的一种具体实施例,二者通过USB进行相互通信;插件文件也即可执行插件的传输形式。
上位机将包含新的数据传输规则的可执行插件对应的完成代码程序进行编译,在上位机将新的可执行插件编译好以后,启动对所述数据传输组件的传输过程。该传输过程具体为:上位机中的发送单元将前述插件文件进行封装,并启动USB主端驱动程序,通过USB端口传输给DTU终端的USB端口,DTU终端中USB端口接收到该插件文件后,启动其USB从端驱动程序,DTU终端中的接收单元接收所述插件文件,并检验所述插件文件的内容是否完成、正确,在检验成功后,将所述插件文件放置在DTU终端的指定目录,之后重启DTU终端软件,可执行插件更新过程完成,获得包含新的数据传输规则的可执行插件。
在一些实施例中,所述数据传输组件,包括至少一个北向通讯单元、主控单元、至少一个南向通讯单元和接收单元,其中;
所述接收单元,用于接收所述数据传输规则,向所述主控单元传输所述数据传输规则;
所述主控单元,用于基于所述数据传输规则,在所述至少一个北向通讯单元和所述至少一个南向通讯单元之间确定目标通路和目标传输格式,以传输数据。
在一些实施例中,所述至少一个北向通讯单元包括以下至少之一:以太网模块、4G/5G模块;所述至少一个南向通讯单元包括以下至少之一:CAN模块、RS485模块、RS232模块、串口模块、无线通讯模块。
以图12为例说明数据传输组件的一种结构,在图12中,主控芯片也即前述的主控单元,用于实现逻辑的控制、报文的转换。北向通讯接口部分也即前述的至少一个北向通讯单元包括但不仅限于以太网模块和4G/5G模块,北向通讯部分的作用是为整个DTU系统提供Internet服务。南向通讯接口部分也即前述的至少一个南向通讯单元,包括但不仅限于CAN模块、RS485模块、RS232模块、串口模块、无线通讯模块。其中各个模块的接口数量均可以大于1,及各种通讯接口可能存在多个。配置接口部分也即前述的接收单元,比如,可以为USB模块,用于提供从配置组件通过软件对DTU进行配置的入口。
为了理解本发明,本发明实施例采用图12、图13、图14、图15及图16进一步说明本发明构思。其中,图12中的数据传输组件可以为DTU,具体结构前述已经说明;图13为本发明实施例提供的数据传输系统中软件的一种结构示意图;图14为用户使用图13所示的数据传输系统的流程示意图;图15为本发明实施例提供的可执行插件的工作原理流程示意图;图16为本发明实施例提供的利用图13所示的软件生成可执行插件的流程示意图。
具体地,图13示出的是前述数据传输系统的软件系统,该软件系统由DTU终端的软件和配置DTU中可执行插件的上位机软件构成,其中,DTU终端的软件可以是指运行在DTU终端之上的软件,负责处理DTU终端中各端口之间数据的转发业务,应该说明的是,所有端口的数据都会从可执行插件中经过。配置DTU中可执行插件的上位机软件主要负责对DTU终端中的数据传输规则进行图形化的配置,用户可以在此上位机软件中进行流程图的编辑,并由此上位机软件编译出新的包含数据传输规则的可执行插件。
这里,图14示出了用户使用图13所示的数据传输系统的过程,具体过程包括:用户通过上位机软件中的图形化UI配置包含DTU终端中各端口之间的数据传输规则的流程图;上位机软件对所述流程图进行处理后,获得可执行插件,上位机通过USB将所述可执行插件传输给所述DTU终端;所述DTU终端基于所述可执行插件中的数据传输规则传输数据。
在实际应用过程中,图15示出的可执行插件的工作原理:某一通讯端口接收到数据、其所对应的收发线程获取数据后,将数据呈递给可执行插件,可执行插件内部存在关于该通讯端口对应数据的通路,传入的数据在此通路上进行一系列的判断和处理,最终将目标数据呈递给某个通讯端口对应的收发线程,由该收发线程将目标数据转发出去。
上图15所示,通讯端口m与通讯端口x接收到数据之后,将数据呈递给可执行插件,可执行插件内包含两条关于端口m和端口x的数据通路,传进来的数据分别在各自的数据通路上进行处理,完成之后分别将数据呈递给通讯端口n和通讯端口y的收发线程。此处的端口不仅仅限于指代物理的通讯端口,TCP和UDP的各个端口亦属于此类。
由此可知,可执行插件主要负责两个工作:1)决定数据的转发路径。2)对数据进行适当的转换。
因此,适当的定义可执行插件的内容,即可实现通过DTU终端任意单个或多个通讯端口到任意单个或多个通讯端口的数据转发。定义的可执行插件具有如下特性:与DTU终端软件的其他部分相对比较独立,只对数据进行处理;可以被灵活的配置,可以很方便的被替换。
这里,所述可执行插件的生成具体过程如图16所示。在图16中,用户在图形化UI上设计好了流程图后,点击生成按钮,上位机软件自动执行将所述流程图转换成有向图,检验有向图是否合格,若合格,则进行将所述流程图中的每一个功能块转换成目标表达,建立该目标表达与有向图中各节点之间的映射关系,添加所述可执行插件所需的调用代码和处理代码,然后,将调用代码和处理代码进行交叉编译生成可执行插件;若不合格或者交叉编译失败,输出错误提示,以提醒可执行插件没有生成。
本发明实施例提供的数据传输系统是一种可图形化二次开发的多功能DTU系统,旨在描述一种具有二次开发能力、配置亲和、操作简单、灵活性高的多功能多接口DTU软硬件方案。本发明在提供丰富的总线资源基础上,更是提供了一套图形化的二次开发工具,能够让DTU用户在没有编程基础的情况下,动态而灵活的根据实际应用场景的需要,对DTU系统进行有效的配置,达到适用的效果。
本发明相比以往DTU方案具有如下优势:1.本身提供十分丰富的总线接口资源,使得应用场景中所需DTU设备数量少。2.一般有较小区别的应用场景中,最终用户可以直接对通过图形化界面对DTU进行配置,无需开发人员参与。3.通过对二次开发模型进行约束,能够快速的进行深度功能的开发及定制,极大减少开发人员的工作量。也即:本发明提供的实施例具有以下有益效果:1.实现多种协议的通讯端口,能够满足复杂环境下的使用需求。2.具有高度的配置灵活性;支持灵活的对通讯端口间的数据通路进行定义,并且支持在不同端口之间进行自定义的数据协议转换。3.进行灵活配置的过程,不需要对软件进行升级,端口转发功能上浮到配置中,只需要更新插件配置即可。4.用户仅需简单的培训即可对插件功能进行配置,无需太多学习成本,更不需要开发人员介入。5.根据使用场景的实际需求,插件可以做到任意复杂的转发配置。
基于同样的发明构思,本发明实施例还提供了一种数据传输方法,如图17所示,其示出本发明实施例提供的一种数据传输方法的流示意图。在图17中,所述方法包括:
S1701:配置与应用场景适应的数据传输规则;
S1702:发送所述数据传输规则给数据传输组件;所述数据传输组件用于基于所述数据传输规则传输数据。
在一些实施例中,所述配置与应用场景适应的数据传输规则,包括:获得包含所述数据传输规则的配置信息;基于所述配置信息生成可执行插件。
在一些实施例中,在所述配置信息为能够反映所述数据传输规则的流程图的情况下,所述基于所述配置信息生成可执行插件,包括:
将所述流程图转换成有向图;检验所述有向图是否合格;
在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
获得所述有向图中节点与所述对应的目标表达之间的映射关系;
基于所述映射关系生成所述可执行插件。
在一些实施例中,所述将所述流程图转换成有向图,包括:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图;其中,所述有向图采用邻接表存储。
在一些实施例中,所述检验所述有向图是否合格,包括:确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
在一些实施例中,所述检验所述有向图是否合格,还包括:确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;基于第二判断结果确定所述有向图是否合格。
在一些实施例中,所述将所述流程图中每一功能块包含的功能转换成对应的目标表达,包括:
确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
对应的,所述获得所述有向图中节点与所述对应的目标表达之间的映射关系,包括:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
在一些实施例中,所述基于所述映射关系生成所述可执行插件,包括:
确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
基于所述调用代码和所述处理代码生成所述可执行插件;
其中,所述可执行插件为与所述数据传输组件可分离的动态链接库。
在一些实施例中,所述方法还包括:在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线USB向所述数据传输组件重新发送所述新的数据传输规则。
本发明实施例提供的数据传输方法与前述数据传输系统基于同样的发明构思,二者具有相同或者相应的技术特征,该方法中出现的名词在前述数据传输系统中已经详细说明,在此不再一一赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序处理器被处理器执行时实现上述方法实施例的步骤,而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种电子设备,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行存储在存储器中的上述方法实施例的步骤。
图18为本发明实施例提供的电子设备的一种硬件结构示意图,该电子设备180包括:至少一个处理器1801、存储器1802,可选的,电子设备180还可进一步包括至少一个通信接口1803,电子设备180中的各个组件通过总线系统1804耦合在一起,可理解,总线系统1804用于实现这些组件之间的连接通信。总线系统1804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统1804。
可以理解,存储器1802可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,Ferromagnetic Random Access Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,Sync Link Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器1802旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器1802用于存储各种类型的数据以支持电子设备180的操作。这些数据的示例包括:用于在电子设备180上操作的任何计算机程序,如配置与应用场景适应的数据传输规则的实现等,实现本发明实施例方法的程序可以包含在存储器1802中。
上述本发明实施例揭示的方法可以应用于处理器1801中,或者由处理器1801实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备180可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行上述方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (24)

1.一种数据传输系统,其特征在于,所述系统包括:配置组件和数据传输组件,其中;
所述配置组件,用于配置与应用场景适应的数据传输规则;向所述数据传输组件发送所述数据传输规则;
所述数据传输组件,用于接收所述数据传输规则,基于所述数据传输规则传输数据。
2.根据权利要求1所述的系统,其特征在于,所述配置组件包括:配置单元、生成单元和发送单元,其中;
所述配置单元,用于获得包含所述数据传输规则的配置信息;
所述生成单元,用于基于所述配置信息生成可执行插件;
所述发送单元,用于向所述数据传输组件发送所述可执行插件;
所述数据传输组件,还用于接收所述可执行插件,调用所述可执行插件,基于所述可执行插件中的所述数据传输规则传输数据。
3.根据权利要求2所述的系统,其特征在于,所述配置单元为图形化界面;所述配置信息为能够反映所述数据传输规则的流程图;
所述生成单元包括:第一转换模块、检验模块、第二转换模块、映射模块和生成模块,其中,
所述第一转换模块,用于将所述流程图转换成有向图;
所述检验模块,用于检验所述有向图是否合格;
所述第二转换模块,用于在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
所述映射模块,用于获得所述有向图中节点与所述对应的目标表达之间的映射关系;
所述生成模块,用于基于所述映射关系生成所述可执行插件。
4.根据权利要求3所述的系统,其特征在于,所述第一转换模块,具体用于:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图。
5.根据权利要求4所述的系统,其特征在于,所述有向图采用邻接表存储。
6.根据权利要求4所述的系统,其特征在于,所述检验模块,具体用于:
确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
7.根据权利要求6所述的系统,其特征在于,所述检验模块,还具体用于:
确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;
基于第二判断结果确定所述有向图是否合格。
8.根据权利要求5所述的系统,其特征在于,所述第二转换模块,具体用于:确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
所述映射模块,具体用于:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
9.根据权利要求3所述的系统,其特征在于,所述生成模块包括:确定子单元和生成子模块,其中;
所述确定子单元,用于确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
所述生成子模块,用于基于所述调用代码和所述处理代码生成所述可执行插件。
10.根据权利要求9所述的系统,其特征在于,所述可执行插件为与所述数据传输组件可分离的动态链接库。
11.根据权利要求1-10任一项所述的系统,其特征在于,所述配置组件,还用于在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线USB向所述数据传输组件重新发送所述新的数据传输规则;
所述数据传输组件,还用于接收所述新的数据传输规则,基于所述新的数据传输规则传输数据。
12.根据权利要求1所述的系统,所述数据传输组件包括至少一个北向通讯单元、主控单元、至少一个南向通讯单元和接收单元,其中;
所述接收单元,用于接收所述数据传输规则,向所述主控单元传输所述数据传输规则;
所述主控单元,用于基于所述数据传输规则,在所述至少一个北向通讯单元和所述至少一个南向通讯单元之间确定目标通路和目标传输格式,以传输数据。
13.根据权利要求12所述的系统,所述至少一个北向通讯单元包括以下至少之一:以太网模块、4G/5G模块;所述至少一个南向通讯单元包括以下至少之一:控制器域网CAN模块、RS485模块、RS232模块、串口模块、无线通讯模块。
14.一种数据传输方法,其特征在于,所述方法包括:
配置与应用场景适应的数据传输规则;
发送所述数据传输规则给数据传输组件;所述数据传输组件用于基于所述数据传输规则传输数据。
15.根据权利要求14所述的方法,其特征在于,所述配置与应用场景适应的数据传输规则,包括:获得包含所述数据传输规则的配置信息;基于所述配置信息生成可执行插件。
16.根据权利要求15所述的方法,其特征在于,在所述配置信息为能够反映所述数据传输规则的流程图的情况下,所述基于所述配置信息生成可执行插件,包括:
将所述流程图转换成有向图;检验所述有向图是否合格;
在所述检验模块检验到所述有向图合格的情况下,将所述流程图中每一功能块包含的功能转换成对应的目标表达;
获得所述有向图中节点与所述对应的目标表达之间的映射关系;
基于所述映射关系生成所述可执行插件。
17.根据权利要求16所述的方法,其特征在于,所述将所述流程图转换成有向图,包括:确定所述流程图中每一个功能块对应的节点;确定每一个节点对应的位置关系;基于每一个节点和每一个对应的位置关系生成所述有向图;其中,所述有向图采用邻接表存储。
18.根据权利要求17所述的方法,其特征在于,所述检验所述有向图是否合格,包括:确定所述有向图中的第一节点;所述第一节点为所述有向图中节点的任一个;
确定所述第一节点对应功能块的类型;
在所述第一节点对应功能块的类型为非端口功能块的情况下,判断所述第一节点的出度是否满足第一设定条件,以及判断所述第一节点的入度是否满足第二设定条件;
基于第一判断结果确定所述有向图是否合格。
19.根据权利要求18所述的方法,其特征在于,所述检验所述有向图是否合格,还包括:确定子有向图;所述子有向图为剔除所述有向图中功能块类型为端口功能块对应的节点后剩余的图形;
判断所述子有向图是否存在回环;基于第二判断结果确定所述有向图是否合格。
20.根据权利要求18所述的方法,其特征在于,所述将所述流程图中每一功能块包含的功能转换成对应的目标表达,包括:
确定目标语言格式;按照所述目标语言格式将所述流程图中每一个功能块包含的功能转换成相应描述;将与每一个功能块对应的所述相应描述转化成对应的目标表达;所述对应的目标表达与所述有向图中对应节点相关;
对应的,所述获得所述有向图中节点与所述对应的目标表达之间的映射关系,包括:将所述有向图中每一个节点的指针指向对应的目标表达,获得所述有向图中节点与所述对应的目标表达之间的映射关系。
21.根据权利要求16所述的方法,其特征在于,所述基于所述映射关系生成所述可执行插件,包括:
确定调用代码,以及基于所述映射关系确定包含所述数据传输规则的处理代码;所述调用代码用于响应于所述数据传输组件的调用操作;所述数据传输规则包括数据传输路径子规则、数据传输格式子规则及数据并行处理子规则;
基于所述调用代码和所述处理代码生成所述可执行插件;
其中,所述可执行插件为与所述数据传输组件可分离的动态链接库。
22.根据权利要求14-21任一项所述的方法,其特征在于,所述方法还包括:在所述应用场景变化时,重新配置与新的应用场景适应的新的数据传输规则,通过通用串行总线USB向所述数据传输组件重新发送所述新的数据传输规则。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求14至22任一项所述方法的步骤。
24.一种电子设备,其特征在于,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行权利要求14至22任一项所述方法的步骤。
CN202110762354.XA 2021-07-06 2021-07-06 一种数据传输系统、方法、电子设备及存储介质 Pending CN115589360A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110762354.XA CN115589360A (zh) 2021-07-06 2021-07-06 一种数据传输系统、方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110762354.XA CN115589360A (zh) 2021-07-06 2021-07-06 一种数据传输系统、方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115589360A true CN115589360A (zh) 2023-01-10

Family

ID=84771187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110762354.XA Pending CN115589360A (zh) 2021-07-06 2021-07-06 一种数据传输系统、方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115589360A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240070380A1 (en) * 2022-08-31 2024-02-29 Docusign, Inc. Dynamic implementation of document management system capabilities in third party integrations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240070380A1 (en) * 2022-08-31 2024-02-29 Docusign, Inc. Dynamic implementation of document management system capabilities in third party integrations

Similar Documents

Publication Publication Date Title
EP2370937B1 (en) Biologically inspired hardware cell architecture
US8495593B2 (en) Method and system for state machine translation
US20210365253A1 (en) Heterogeneity-agnostic and topology-agnostic data plane programming
CN109739656A (zh) 接口数据模拟方法、装置、存储介质和电子设备
CN110838954A (zh) 一种轻量级大规模自主网络协议功能测试方法
CN113596017B (zh) 一种协议解析方法、装置、软网关和存储介质
CN115150454A (zh) 一种跨操作系统的中心化发布订阅通信中间件
CN111541662B (zh) 一种基于二进制通信协议的通信方法、电子设备及存储介质
CN115589360A (zh) 一种数据传输系统、方法、电子设备及存储介质
CN102760114B (zh) 多处理器系统的通信仿真方法、引擎及系统
CN106293757A (zh) 机器人系统软件架构及其实现方法和装置
CN114513404B (zh) 时间敏感网络的配置方法、装置及计算机可读存储介质
CN110855459A (zh) 网络配置方法、装置及系统
CN107196860B (zh) Sdn网络中网络编码进行组播传输的方法
CN106842915B (zh) 一种用于机器人分布式控制系统的形式建模方法及装置
CN112039691B (zh) 一种网络仿真平台中虚拟路由器自动配置方法和装置
Vizovitin et al. Verifying UCM specifications of distributed systems using colored Petri nets
KR101125365B1 (ko) Sdl?opnet 코-시뮬레이션 기법을 이용한 통신 프로토콜의 단일 모델 기반 통합 설계 방법
Sgroi Platform-based design methodologies for communication networks
CN113259233B (zh) 基于dds的异种通信协议的自动化网关
CN114003232B (zh) 一种基于航电数据模型的传输服务实现方法
CN117591104B (zh) 模型的生成方法、装置、电子设备及存储介质
CN115509146B (zh) 一种飞行维护模拟机分布式通讯资源整合方法
CN111988113B (zh) 一种EtherCAT协议和ASI协议通讯系统及方法
CN108415276A (zh) 一种基于语言交互的计算、判断和控制系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination