CN114125073A - 数据交互方法、存储介质以及电子设备 - Google Patents
数据交互方法、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN114125073A CN114125073A CN202010609656.9A CN202010609656A CN114125073A CN 114125073 A CN114125073 A CN 114125073A CN 202010609656 A CN202010609656 A CN 202010609656A CN 114125073 A CN114125073 A CN 114125073A
- Authority
- CN
- China
- Prior art keywords
- channel
- data
- identifier
- channel object
- upper computer
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据交互方法、存储介质以及电子设备,涉及通信技术领域,包括:接收上位机发送的控制数据;从控制数据中获取通道标识;通道标识包括唯一标识符以及操作标识符,唯一标识符用于标识上位机将要操作的下位机的通道对象,通道对象能够响应上位机请求而实现该请求所指定的功能,操作标识符用于标识上位机对被唯一标识符指示的通道对象的操作动作;根据唯一标识符以及操作标识符,对与唯一标识符匹配的通道对象执行如操作标识符所指示的操作动作,以向上位机反馈该通道对象的响应数据。本发明的有益效果是:能够降低上位机与下位机的耦合关系以及降低下位机不同功能模块间的耦合,使得下位机具有更高的可维护性以及较低的维护成本。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种数据交互方法、存储介质以及电子设备。
背景技术
常见的嵌入式设备对外进行数据交互的方法主要分为WEB、自定义应用交互协议等方式。嵌入式系统因其软硬件资源受限,往往被作为一个数据交互中的终端载体,需要与通用个人电脑或其他终端进行数据交互,以实现用户与嵌入式装置的人机交互或后端的数据处理。但实际应用中,嵌入式系统的功能各异、数据多样,通过WEB的方式存在效率较低、实时性较差、对嵌入式装置的资源要求相对较高等问题。而且采用其他各种各样的自定义应用交互协议的方式,往往就需要在数据交互功能方面开发高度定制的上位机及下位机软件,不同的装置需要重复开发;这些技术难题给技术人员带来很大麻烦,研发技术人员难以通过一个统一、高效、开发及维护成本较低的方法实现数据交互。
发明内容
本发明正是基于上述技术问题,提出了一种数据交互方法、存储介质以及电子设备。
第一方面,本发明实施例提供了一种数据交互方法,应用于下位机,所述方法包括:
接收上位机发送的控制数据;
从所述控制数据中获取通道标识;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作;
根据所述唯一标识符以及所述操作标识符,对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作,以向所述上位机反馈该通道对象的响应数据。
可选地,预先通过以下步骤构建所述通道对象:
确定下位机实现各个功能所需的控制信息;
分别将每个功能所需的控制信息进行封装,得到每个功能对应的通道,并给每个功能对应的通道分配对应的通道标识,从而构建所述通道对象。
可选地,所述操作标识符包括读操作和/或写操作,
根据所述唯一标识符以及所述操作标识符,对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作,以向所述上位机反馈该通道对象的响应数据,包括:
当所述操作标识符指示为所述读操作时,读取与所述唯一标识符匹配的通道对象的状态信息,并将所述状态信息发送至所述上位机;
当所述操作标识符指示为所述写操作时,将所述控制数据中要写入的数据写入至与所述唯一标识符匹配的通道对象中,以使该通道对象执行该要写入的数据所要实现的功能,并向上位机反馈执行结果。
可选地,在接收上位机发送的控制数据之前,还包括:
接收上位机向预设通道对象发送的请求命令;
根据所述请求信息,向所述上位机发送各个通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的各个通道对象的属性信息。
可选地,所述属性信息包括通道标识、时间信息、通道名称以及数据维度中的至少一种。
第二方面,本发明实施例还提供了一种数据交互方法,应用于上位机,所述方法包括:
向下位机发送包括通道标识的控制数据;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作;
接收所述下位机发送的响应数据;其中,所述响应数据为所述下位机对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作而反馈的数据。
可选地,所述操作标识符包括读操作和/或写操作,
当所述操作标识符为所述读操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述读操作而发送的该通道对象的状态信息;
当所述操作标识符为所述写操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述写操作而发送的执行结果。
可选地,在向下位机发送包括通道标识的控制数据之前,还包括:
向下位机的预设通道对象发送请求命令;
接收所述下位机响应于所述请求命令而发送的通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的通道对象的属性信息。
可选地,所述属性信息包括通道标识、时间信息、通道名称以及数据维度中的至少一种。
可选地,在获取接收所述下位机响应于所述请求命令而发送的各个通道对象的通道描述信息之后,所述方法还包括:
获取与所述通道描述信息相匹配的功能配置文件;
根据所述功能配置文件,将与所述通道描述信息匹配的通道对象的数据信息转换为显示在人机界面上的功能控件,以及给该功能控件链接对应的功能函数,以使该功能控件能够控制与所述通道描述信息匹配的通道对象执行该功能函数所指示的功能。
可选地,在接收所述下位机发送的响应数据之后,还包括:
根据所述唯一标识符,获取与所述唯一标识符匹配的转义配置文件;
根据所述转义配置文件,对所述响应数据进行转义。
第三方面,本发明实施例还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例中任一项所述的数据交互方法。
第四方面,本发明实施例还提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例中任一项所述的数据交互方法。
在本发明实施例提供的一种数据交互方法,上位机与下位机进行数据交互,上位机只需要向下位机发送包括上位机要操作的通道对象的包数据的即可。例如,上位机要写下位机中某通道对象的数据,下位机只需接收到上位机发送的包括该通道对象的唯一标识符以及操作标识符的包数据即可,其中,该操作标识符标记为写操作。从而降低上位机与下位机的耦合关系以及降低下位机不同功能模块间的耦合,使得下位机具有更高的可维护性以及较低的维护成本。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:
图1示出了本发明提出的上位机与下位机进行数据交互的结构示意图;
图2示出了本发明实施例一提出的一种数据交互方法的流程示意图;
图3示出了本发明实施例一提出的数据包的结构示意图;
图4示出了本发明实施例一提出的AD通道对象的结构示意图;
图5示出了本发明实施例二提出的一种数据交互方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本发明的实施方法,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明提出的上位机与下位机进行数据交互的结构示意图,如图1所示,下位机与上位机均包括通信层和转换层,上位机与下位机通过通信层实现数据交互。其中,通信层可以是TCP/UCP等网络通信技术,也可以是如CAN、UART等为基础的其他通信方式,通信层只需将数据以包的形式完成有效传输即可,对全双工、半双工都无特别要求,而且本发明对通信层的实现无特殊要求,即任何通信层都适用。
上位机转换层实现的功能则是将对各通道对象的操作转换为数据包,以将该数据包用于通信层去传输,或者从通信层获取数据包,并将数据包转换下位机反馈的数据信息。而下位机的转换层实现的功能是接收上位机发送的数据包,将数据宝转换为对各通道对象的操作,从而控制对应的通道对象执行对应的操作。并将下位机向上位机反馈的数据信息转换为数据包,以传输给上位机。
其中,下位机的通道对象包括数据通道和/或功能通道。该数据通道以及功能通道的详细概念将在下面进行详细描述。
例如,上位机需要获取下位机某通道对象内的数据,则通过上位机的转换层将需要操作的通道对象的数据转换为数据包,并通过上位机的通信层将该数据包发送至下位机的通信层,下位机的转换层从下位机的通信层获取到该数据包,对该数据包进行解析,从而获得上位机需要操作的通道对象,下位机在确定上位机要操作的通道对象后,将该通道对象的数据信息经下位机的转换层转换为数据包,进而通过下位机的通信层将该数据包发送至上位机的通信层,上位机的通信层在获取到下位机反馈的数据包后,通过上位机的通信层对该数据包进行解析,从而获得要读取的数据信息。
另外,上位机还设置有拓展模块,该拓展模块用于进行功能扩展,关于拓展模块的具体阐述将在后续实施方式中进行详细描述。
实施例一
根据本发明的实施例,提供了一种数据交互方法,图2示出了本发明实施例一提出的一种数据交互方法的流程示意图,如图2所示,该数据交互方法可以包括:步骤110至步骤130。
在步骤110中,接收上位机发送的控制数据。
这里,下位机通过其通信层接收上位机通信层发送的控制数据。其中,下位机通过数据包的通信方式接收上位机发送的控制数据,即上位机与下位机的通信层通过数据包的通信方式进行连接,从而实现上位机与下位机的解耦。下位机与上位机的所有数据通信均以数据包的形式进行传输或存储,而数据包中包括至少一个通道对象以及对该通道对象的操作。即一包数据可以实现对一个或多个通道对象的操作,包的结构有足够的信息用于解析为对各通道的独立操作。例如,下位机的某功能需要对多个数据操作来完成,可解耦为分别对某单独通道对象的读取和/或写操作。
图3示出了本发明实施例一提出的数据包的结构示意图,如图3所示,数据包的结构包括包描述头、包标签以及包数据,该包描述头中包括包中数据的大小端、时间戳、格式等信息。为简化下位机的计算量,下位机发送的数据包约定的大小端,上位机必须遵守,统一由上位机进行转化。如下位机使用小端,之后的上位机软件应采用小端格式,否则,下位机不响应。另外,在初始握手时刻下位机应该支持大小端任意类别数据。该包标签包括包类型以及包大小,用于对数据包进行描述。该包数据中则包括通道对象,该通道对象是指上位机要操作的通道对象。
值得说明的是,该包结构实际上是将要传输的数据进行序列化,即利用约定的序列化规则将要传输的数据全部表示清楚,进而在上位机或下位机的通信层接收到数据包后,通过转换层利用约定的反序列化规则对传输的数据包进行反序列化,从而得到所需的数据。
在步骤120中,从所述控制数据中获取通道标识;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作。
这里,当下位机与上位机是利用数据包进行通信时,从所述控制数据中获取通道标识是对上位机发送的数据包进行解析,由于数据包是序列化表示的数据结构,因此,利用上位机与下位机约定的序列化方法以及反序列化方法对数据包进行解析,从而得到控制数据,从控制数据中获取通道标识。
其中,该通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作。
这里,不同的通道对象具有不同的唯一标识符,如通道对象A的唯一标识符可以“0”,通道对象B的唯一标识符则可以是“1”,该唯一标识符主要用于识别不同的通道对象,也可以是将通道对象在下位机中的索引值作为通道对象的唯一标识符。对通道对象的操作,都可以抽象为读写操作。该操作标识符则是用来标识上位机对下位机的通道对象的操作,具体包括读操作和/或写操作。其中,读操作是要读取通道对象内的数据,写操作则是将数据写入通道对象中。可以理解的是,该通道标识可以是一串字段,其包括表示唯一标识符的字段以及表示操作标识符的字段。如表1,操作标识符“00”表示可以读写,操作标识符“01”表示只读,操作标识符“10”表示只写。
表1:
另外,通道对象是对下位机的功能的抽象描述,通过将下位机复杂的数据关系、功能关系,分解为一个个单独的通道对象,每个通道对象代表下位机的一个基础功能。
在一个实施方式中,可以预先通过以下步骤构建所述通道对象:
确定下位机实现各个功能所需的控制信息;
分别将每个功能所需的控制信息进行封装,得到每个功能对应的通道,并给每个功能对应的通道分配对应的通道标识,从而构建所述通道对象。
这里,下位机实现各个功能所需的控制信应该包括描述该各个功能的属性信息以及实现该功能所需的全部数据。例如,下位机常用的参数、状态、数据、功能控制数据都可转换为一个虚拟的通道对象,通过对通道对象的操作来实现上位机对下位机的数据的更新与访问。预先将下位机的各个数据信息表达为对应的通道对象是指将下位机的控制信息全部抽象为一个个的通道对象。数据是指下位机采集到的数据信息,控制信息则是下位机执行某一功能时所需的数据信息。在本发明中,下位机的数据和/或控制信息全部抽象为通道对象。其中,通道对象是对下位机的数据和/或功能的高度抽象,将下位机复杂的数据关系和/或功能关系,分解为一个个单独的通道对象,每个通道对象包含基础的属性信息以及该通道支持的数据。如下位机常用的参数、状态、数据、功能控制信息都转换为一个个抽象的通道对象,
下面,通过一个具体的通道对象来对通道对象的概念进行描述:
下位机的AD模块采集到的电压数据,可结构化为一种数据类型的通道对象。该通道对象的通道名称为“XX模块的输入电压&XXXmoduleU”,其他数据包括:采样率2k、AD模块同时对3个通道对象的数据进行采集,数据类型全部已转换为单浮点类型,在2020-04-15-17:10:08秒完成采集,其中第一个采样点时刻为当前秒的第50ms。且约定该AD通道对象,在下位机中的唯一标识符为0x001a;100ms进行一次数据序列化,如通信。
图4示出了本发明实施例一提出的AD通道对象的结构示意图,该AD通道对象的结构如图4所示,该通道对象包括对象标签、通道标识、时间信息、通道名称、数据维度以及数据内容。其中,通道标识包括该通道对象的唯一标识符“0x001a”以及表示该通道对象可以被操作的属性的操作标识符“0”,说明该通道对象是只能被读取,而不能写入数据。时间信息中的1586941808表示时间戳:2020-04-15-17:10:08,起始采样点100表示在当前秒偏移100采样点,即在50ms采集得到第一采样点,因为定采样,其后的每点数据具有明确的时间。
该通道对象实际上是将对象标签、通道标识、时间信息、通道名称、数据维度以及数据内容进行序列化表达为一个通道对象,通过序列化表达能够把一个实时系统常见的数据信息全部表示清楚。
在步骤130中,根据所述唯一标识符以及所述操作标识符,对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作,以向所述上位机反馈该通道对象的响应数据。
这里,下位机在对通道对象进行操作时,其只需要根据对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作。
在一个实施方式中,所述操作标识符包括读操作和/或写操作,步骤130包括:
当所述操作标识符指示为所述读操作时,读取与所述唯一标识符匹配的通道对象的状态信息,并将所述状态信息发送至所述上位机;
当所述操作标识符指示为所述写操作时,将所述控制数据中要写入的数据写入至与所述唯一标识符匹配的通道对象中,以使该通道对象执行该要写入的数据所要实现的功能,并向上位机反馈执行结果。
这里,当所述操作标识符指示为所述读操作时,说明上位机是要读取下位机某一通道对象内的状态信息,该状态信息是该通道对象采集的数据。当所述操作标识符指示为所述写操作时,说明上位机是要向下位机的某一通道对象写入数据,从而控制该通道对象执行相应的功能。
例如,当上位机需要获取AD通道对象的数据内容时,其只需要向下位机发送包含该通道的唯一标识符以及操作标识符的数据包,如向下位机发送包含“0x001a”的唯一标识符以及表达“读操作”的操作标识符的数据包。进而,下位机接收到该数据包后,对数据包进行解析获得唯一标识符“0x001a”以及表示“读操作”的操作标识符,下位机则读取该AD通道对象的数据内容,并通过转换层将数据内容序列化,进而通过数据包的通信方式传输给上位机。上位机接收到数据包后,对数据包进行反序列化即可获得该AD通道的数据内容。
下面通过几个通道对象示例来说明对通道对象的操作。
表2:
下位机约定有如表2所示的通道对象,当上位机需要获取下位机信息时,其需要对通道对象“default”进行操作,该通道对象“default”作为功能类型的通道对象,其可以读写。
约定上位机向预设通道对象(default)发送请求数据(无论读写)。
当第一个uint8数据为0x10,表示什么验证,其后为SHA-256的密码信息。具体数据长度取决于双方约定的密码加密算法。default功能通道对象将进行密码比较,验证成功则应答成功,即返回的数据中第一个uint8为0,否则返回的数据中第一个uint8为非零,表示失败。同时身份验证会记录错误次数,当超过一定错误次数,会指数增长等待时间。
当第一个uint8数据为0x80,表示查询下位机的通道描述信息。default通道对象应该返回下位机各个通道对象的通道描述信息。其中,所述通道描述信息用于描述下位机的各个通道对象的属性信息,以使上位机知道下位机各个通道对象的功能,从而让用户选择合适的通道对象进行操作。通道属性信息中包括通道名称,优选为中文与英文或其他语种可通过空格分割,在名称获取时自动分隔获取各种语言名称。英文在前,以英文名作为分区不同通道的依据,约定各通道对象的英文名称互不相同,会用来最为可拓展功能的识别依据。
当第一个uint8数据为0x20,用于下位机在位查询。当default通道对象接收到该数据,将接收到的数据再重新转发,回复给上位机。用以上位机判断当前通信网络或连接是否符合。
当第一个uint8数据为0x30,用于下位机的实时监视功能。实时监视可实现对采样率不为0的通道的实时监视,即通道数据更新自动组包发送给上位机。对于采样率为0的通道,当数据发生变化时可组包发送数据给上位机。default通道负责设置需要实时监视的通道,以及接受上位机的触发信号,在规定时间内没有接收到触发信号自动退出实时监视状态。0x30后跟随的需要实时监视的唯一标识符的个数及唯一标识符。
对通道对象“equipment_name”的操作则可以是上位机向该通道对象发送读操作。“equipment_name”是数据类型的通道对象,用于获取下位机的名称信息,上位机向该通道对象发送读取操作,该通道对象会返回该数据通道全部数据,获取的数据一般会作为上位机的标题显示。这就意味着,不同下位机只需修改自己的名称即可实现控制上位机软件运行后的标题显示。
例如,如果上位机需要获取下位机的名称,则上位机向存储有下位机的名称的通道“equipment_name”发送读操作,下位机的通道“equipment_name”在接收到读操作后,向上位机返回通道“equipment_name”的全部数据内容。上位机接收到该数据内容后,会作为上位机的标题显示。这就意味着,不同的下位机只需修改自己的名称即可实现控制上位机软件运行后的标题显示。对该通道的读操作,转换为包中通道对象,如下,其数据元素仅有标签而无数据。装置解析完包数据并将数据传递给equipment_name通道时,会判断通道属性中的标签字段是何种操作,是读操作,将根据通道维度获取当前通道缓存数据全部应答给上位机。
在一个可选的实施方式中,在步骤110之前,还可以包括:
接收上位机向预设通道对象发送的请求命令;
根据所述请求信息,向所述上位机发送各个通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的各个通道对象的属性信息。
这里,当上位机需要获取其控制的下位机设置有的通道对象时,只需向下位机预设的通道对象发送请求命令,该下位机接收到请求命令后,读取预设的通道对象内的通道描述信息,并将该通道描述信息发送至上位机。其中,所述通道描述信息用于描述下位机的通道对象的属性信息,该通道描述信息是让上位机知道下位机所拥有的通道对象,因此,通道描述信息存储是是包括通道标识、时间信息、通道名称以及数据维度等反应通道对象的静态信息。其他如控制信息、控制数据等则存储在数据文件中。该通道描述信息用于在上位机首次获取下位机的各通道对象的属性信息时,或数据存储时集中在数据文件或空间的起始部分,用于提供足够的信息。
当上位机需要获取下位机信息时,其需要对通道对象“default”进行操作,该通道对象“default”作为功能类型的通道对象,其可以读写。
在本实施例中,上位机与下位机进行数据交互,上位机只需要向下位机发送包括上位机要操作的通道对象的包数据的即可。例如,上位机要写下位机中某通道对象的数据,下位机只需接收到上位机发送的包括该通道对象的唯一标识符以及操作标识符的包数据即可,其中,该操作标识符标记为写操作。从而降低上位机与下位机的耦合关系以及降低下位机不同功能模块间的耦合,使得下位机具有更高的可维护性以及较低的维护成本。
实施例二
在上述实施例的基础上,本发明的实施例二还可以提供一种数据交互方法,应用于上位机。如图5所示,该数据交互方法可以包括:步骤210至步骤220。
在步骤210中,向下位机发送包括通道标识的控制数据;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作。
这里,上位机与下位机是利用数据包的通信方式进行数据交互,该通信方式在上述实施例中已详细说明,在此不再赘述。
上位机需要对下位机进行控制,其只需要向下位机发送包括通道标识的控制数据的数据包。下位机在接收到该数据包后,对该数据包进行反序列化,得到控制数据。其中,控制数据中包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作。
例如,当上位机需要获取AD通道对象的数据内容时,其只需要向下位机发送包含该通道的唯一标识符以及操作标识符的数据包,如向下位机发送包含“0x001a”的唯一标识符以及表达“读操作”的操作标识符的数据包。进而,下位机接收到该数据包后,对数据包进行解析获得唯一标识符“0x001a”以及表示“读操作”的操作标识符,下位机则读取该AD通道对象的数据内容,并通过转换层将数据内容序列化,进而通过数据包的通信方式传输给上位机。上位机接收到数据包后,对数据包进行反序列化即可获得该AD通道的数据内容。
值得说明的是,通道对象已在上述实施例中进行了详细说明,在此不再赘述,该通道对象能够响应上位机请求而实现该请求所指定的功能。其中,通道对象包括数据类型的通道对象以及功能类型的通道对象。数据类型的通道对象实现的功能主要是采集下位机设备的参数,并将参数反馈给上位机。功能类型的通道对象实现的功能主要是接受上位机发送的数据,从而实现上位机需要执行的功能。
在步骤220中,接收所述下位机发送的响应数据;其中,所述响应数据为所述下位机对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作而反馈的数据。
这里,该响应数据也是通过数据包的通信方式进行交互,上位机在接收到数据包后,对该数据包进行反序列化,得到通道对象反馈的响应数据。所述响应数据为所述下位机对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作而反馈的数据。
在一个实施方式中,所述操作标识符包括读操作和/或写操作,
当所述操作标识符为所述读操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述读操作而发送的该通道对象的状态信息;
当所述操作标识符为所述写操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述写操作而发送的执行结果。
这里,对通道对象不同的操作,通道对象反馈的数据不同。例如,当上位机需要获取AD通道对象的数据内容时,其只需要向下位机发送包含该通道的唯一标识符以及操作标识符的数据包,如向下位机发送包含“0x001a”的唯一标识符以及表达“读操作”的操作标识符的数据包。下位机则将AD通道对象获取的电压数据发送给上位机,该电压数据则是AD通道对象的状态信息。
表3:
表3示出了多个通道对象,下面利用表3示出的通道对象说明上位机对下位机通道对象的操作。
实现实时监视的功能步骤如下:
1.向default通道对象写数据,设置需要实时监视的数据通道。
2.向设置工作模式为实时监视模式;
3.向default端口发送触发命令,当需要监视的通道数据更新时或积累到一定程度,装置自动发送数据包;
4.10s内default端口没有接收到新的触发命令,工作模式自动恢复到运行模式,上步骤中所有设置全部清空。
实现在线更新的功能的步骤如下:
1.向“update_common”功能通道对象发送查询命令。“update_common”功能通道返回装置支持更新的文件选项;
2.用户选择文件选项发送需要更新文件,不断交互最终完成传输。
3.上位机最后发送文件整体校验信息,装置接收到校验信息完成校验,并返回状态。
实现故障模拟的功能的步骤如下:
1.设置“status_mode”通道对象写入数据2,工作模式设置为故障模拟模式;
2.对如“stat_runtime”通道对象故障状态通道写操作,强制模拟某故障;
实现数据倒灌的功能的步骤如下:
1.设置status_mode工作模式为倒灌模式
2.写需要数据倒灌的通道数据;
3.写default通道触发一次数据倒灌更新。倒灌的数据通道会把修改过的数据更新到装置完成一次数据模拟更新。
实现文件下载、上传的功能的步骤如下
1.查询“file_common”通道获取支持下载或上传的文件列表。
2.根据列表用户选择或程序自动选择某一个或多个文件进行下载或上传。
3.发送需要下载或上传的文件,直至完成。
在一个可选的实施方式中,在步骤210之前,还包括:
向下位机的预设通道对象发送请求命令;
接收所述下位机响应于所述请求命令而发送的通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的通道对象的属性信息。
这里,上位机需要获取其控制的下位机设置有的通道对象时,只需向预设的通道对象发送请求命令,该下位机接收到请求命令后,读取预设的通道对象内的通道描述信息,并将该通道描述信息发送至上位机。其中,所述通道描述信息用于描述下位机的通道对象的属性信息,该通道描述信息是让上位机知道下位机所拥有的通道对象,因此,通道描述信息存储是是包括通道标识、时间信息、通道名称以及数据维度等反应通道对象的静态信息。其他如控制信息、控制数据等则存储在数据文件中。该通道描述信息用于在上位机首次获取下位机的各通道对象的属性信息时,或数据存储时集中在数据文件或空间的起始部分,用于提供足够的信息。
其中,所述属性信息包括通道标识、时间信息、通道名称以及数据维度中的至少一种。
在一个可选的实施方式中,在获取接收所述下位机响应于所述请求命令而发送的各个通道对象的通道描述信息之后,所述方法还包括:
获取与所述通道描述信息相匹配的功能配置文件;
根据所述功能配置文件,将与所述通道描述信息匹配的通道对象的数据信息转换为显示在人机界面上的功能控件,以及给该功能控件链接对应的功能函数,以使该功能控件能够控制与所述通道描述信息匹配的通道对象执行该功能函数所指示的功能。
这里,功能配置文件属于如图1所示的上位机的拓展模块。数据类型的通道对象操作相对统一,需要实现的功能可归纳为读、写。无论不同下位机的数据种类、大小、内容差异多大,其操作都可通过读、写请求及其数据应答覆盖。而功能类型的通道对象则不同,不同下位机的不同功能交互流程也各异,这部分功能与应用场景、业务密切相关。在本实施方式中,将功能类型的通道对象与应用场景密切相关的部分独立出来,在配置文件中实现,即提供一个可拓展接口。
转换层对数据包进行解析,其中对功能通道将接收的数据转发给具体的功能通道,功能通道中实现对数据的协议解析及返回应答数据或结束。配置的文件的匹配是通过通道的英文名实现的,本实施例中,在搜索配置目录下的同名json文件,json文件中指定对应的用于转义显示的dll文件以及协议功能实现的dll文件。转义显示的dll可选。以按钮为例,点击按钮执行指定dll中的fun_start函数,等给功能通道接收到应答数据上位机自动转发数据并调用fun_loop函数。
示例性的功能配置文件如下:
功能配置文件应用解析在PTU的通道文件,该功能配置文件可以通过通道名称进行查找,不同的通道名称与不同的功能配置文件一一对应,所以通道对象的英文名应具有唯一性。如自检命令action_selftest中有4个自检项,经过该功能配置文件的转换,在上位机中显示为4个按钮的功能控件,用户单击按钮时触发该按钮链接的dll中的xxx_start函数,函数可以是带参数的。
简单的功能类型的通道对象,本质上可看作数据类型的通道对象的一种,写该通道对象时会触发下位机的功能,如action_selftest=0x1000,就代表触发某自检命令,执行完该命令,自动清除,即使读取也为0x0000。综上,功能支持任意拓展。不同下位机可遵循该方法,实现上位机软件通用。
在一个可选的实施方式中,在步骤220之后,还可以包括:
根据所述唯一标识符,获取与所述唯一标识符匹配的转义配置文件;
根据所述转义配置文件,对所述响应数据进行转义。
这里,同样的数据在不同的应用场景中含义会不同,例如,同样是UINT8数据“0”,其可以代表故障状态,也可以代表灯显状态,甚至可以是一个下位机设置参数。所以对于不同通道对象反馈的响应数据需要匹配对应的翻译方法,从而将响应数据转换为应用需求角度的描述,实现对不同应用场景的人性化交互。
其中,对响应数据的转义通过转义配置文件实现,每个通道对象可以映射有一个转义配置文件,该转义配置文件专用于对被其映射的通道对象的响应数据进行转义。可以通过动态链接及json文件实现,其他如脚本语言等配置方案本质相同,该部分在于将数据的转义功能剥离由转义配置文件(动态链接库及一个描述文件)实现。值得说明的是,对于无法获取到转义配置文件的通道对象反馈的响应数据,默认使用数据格式显示。可以通过唯一标识符在搜索配置目录下的同名json文件,json文件中指定对应的用于转义显示的dll文件以及协议功能实现的dll文件。从可视化角度看,dll可以是简单的将数据转换为字符串及字符串转数据的数据转换,也可以提供专门的绘图功能以更人性化的设置数值。
实施例三
根据本发明的实施例,还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例任一项所述的数据交互方法。
实施例四
根据本发明的实施例,还提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例任一项所述的数据交互方法。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,上位机与下位机进行数据交互往往就需要在数据交互功能方面开发高度定制的上位机及下位机软件,不同的装置需要重复开发。本发明提供一种数据交互方法、存储介质以及电子设备,上位机与下位机进行数据交互,上位机只需要向下位机发送包括上位机要操作的通道对象的包数据的即可。例如,上位机要写下位机中某通道对象的数据,下位机只需接收到上位机发送的包括该通道对象的唯一标识符以及操作标识符的包数据即可,其中,该操作标识符标记为写操作。从而降低上位机与下位机的耦合关系以及降低下位机不同功能模块间的耦合,使得下位机具有更高的可维护性以及较低的维护成本。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (13)
1.一种数据交互方法,其特征在于,应用于下位机,所述方法包括:
接收上位机发送的控制数据;
从所述控制数据中获取通道标识;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作;
根据所述唯一标识符以及所述操作标识符,对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作,以向所述上位机反馈该通道对象的响应数据。
2.根据权利要求1所述的数据交互方法,其特征在于,预先通过以下步骤构建所述通道对象:
确定下位机实现各个功能所需的控制信息;
分别将每个功能所需的控制信息进行封装,得到每个功能对应的通道,并给每个功能对应的通道分配对应的通道标识,从而构建所述通道对象。
3.根据权利要求1所述的数据交互方法,其特征在于,所述操作标识符包括读操作和/或写操作,
根据所述唯一标识符以及所述操作标识符,对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作,以向所述上位机反馈该通道对象的响应数据,包括:
当所述操作标识符指示为所述读操作时,读取与所述唯一标识符匹配的通道对象的状态信息,并将所述状态信息发送至所述上位机;
当所述操作标识符指示为所述写操作时,将所述控制数据中要写入的数据写入至与所述唯一标识符匹配的通道对象中,以使该通道对象执行该要写入的数据所要实现的功能,并向上位机反馈执行结果。
4.根据权利要求1所述的数据交互方法,其特征在于,在接收上位机发送的控制数据之前,还包括:
接收上位机向预设通道对象发送的请求命令;
根据所述请求信息,向所述上位机发送各个通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的各个通道对象的属性信息。
5.根据权利要求4所述的数据交互方法,其特征在于,所述属性信息包括通道标识、时间信息、通道名称以及数据维度中的至少一种。
6.一种数据交互方法,其特征在于,应用于上位机,所述方法包括:
向下位机发送包括通道标识的控制数据;其中,所述通道标识包括唯一标识符以及操作标识符,所述唯一标识符用于标识所述上位机将要操作的下位机的通道对象,所述通道对象能够响应上位机请求而实现该请求所指定的功能,所述操作标识符用于标识所述上位机对被所述唯一标识符指示的通道对象的操作动作;
接收所述下位机发送的响应数据;其中,所述响应数据为所述下位机对与所述唯一标识符匹配的通道对象执行如所述操作标识符所指示的操作动作而反馈的数据。
7.根据权利要求6所述的数据交互方法,其特征在于,所述操作标识符包括读操作和/或写操作,
当所述操作标识符为所述读操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述读操作而发送的该通道对象的状态信息;
当所述操作标识符为所述写操作时,所述响应数据为下位机中与所述唯一标识符匹配的通道对象响应于所述写操作而发送的执行结果。
8.根据权利要求6所述的数据交互方法,其特征在于,在向下位机发送包括通道标识的控制数据之前,还包括:
向下位机的预设通道对象发送请求命令;
接收所述下位机响应于所述请求命令而发送的通道对象的通道描述信息;其中,所述通道描述信息用于描述下位机的通道对象的属性信息。
9.根据权利要求8所述的数据交互方法,其特征在于,所述属性信息包括通道标识、时间信息、通道名称以及数据维度中的至少一种。
10.根据权利要求8所述的数据交互方法,其特征在于,在获取接收所述下位机响应于所述请求命令而发送的各个通道对象的通道描述信息之后,所述方法还包括:
获取与所述通道描述信息相匹配的功能配置文件;
根据所述功能配置文件,将与所述通道描述信息匹配的通道对象的数据信息转换为显示在人机界面上的功能控件,以及给该功能控件链接对应的功能函数,以使该功能控件能够控制与所述通道描述信息匹配的通道对象执行该功能函数所指示的功能。
11.根据权利要求6所述的数据交互方法,其特征在于,在接收所述下位机发送的响应数据之后,还包括:
根据所述唯一标识符,获取与所述唯一标识符匹配的转义配置文件;
根据所述转义配置文件,对所述响应数据进行转义。
12.一种存储介质,所述存储介质上存储有程序代码,其特征在于,所述程序代码被处理器执行时,实现如权利要求1至5中任一项所述的数据交互方法,或实现如权利要求6至11中任一项所述的数据交互方法。
13.一种电子设备,其特征在于,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如权利要求1至5中任一项所述的数据交互方法,或实现如权利要求6至11中任一项所述的数据交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010609656.9A CN114125073B (zh) | 2020-06-29 | 2020-06-29 | 数据交互方法、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010609656.9A CN114125073B (zh) | 2020-06-29 | 2020-06-29 | 数据交互方法、存储介质以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114125073A true CN114125073A (zh) | 2022-03-01 |
CN114125073B CN114125073B (zh) | 2023-06-13 |
Family
ID=80373510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010609656.9A Active CN114125073B (zh) | 2020-06-29 | 2020-06-29 | 数据交互方法、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114125073B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929277A (zh) * | 2012-11-22 | 2013-02-13 | 山东省科学院自动化研究所 | 汽车车身电子单元的通用测试工装及其工作方法 |
CN103034561A (zh) * | 2011-09-29 | 2013-04-10 | 重庆重邮信科通信技术有限公司 | 通用串行总线的命令传输方法及相关装置 |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104268112A (zh) * | 2014-09-19 | 2015-01-07 | 福州瑞芯微电子有限公司 | 一种连接adb设备的方法和装置 |
CN104361644A (zh) * | 2014-11-14 | 2015-02-18 | 河南省安视博系统工程有限公司 | 基于智能tf卡的etc车载单元多场景应用方法及装置 |
CN105763612A (zh) * | 2015-10-14 | 2016-07-13 | 山东农业大学 | 一种盐碱地水盐动态物联网同步自动检测系统 |
-
2020
- 2020-06-29 CN CN202010609656.9A patent/CN114125073B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034561A (zh) * | 2011-09-29 | 2013-04-10 | 重庆重邮信科通信技术有限公司 | 通用串行总线的命令传输方法及相关装置 |
CN102929277A (zh) * | 2012-11-22 | 2013-02-13 | 山东省科学院自动化研究所 | 汽车车身电子单元的通用测试工装及其工作方法 |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104268112A (zh) * | 2014-09-19 | 2015-01-07 | 福州瑞芯微电子有限公司 | 一种连接adb设备的方法和装置 |
CN104361644A (zh) * | 2014-11-14 | 2015-02-18 | 河南省安视博系统工程有限公司 | 基于智能tf卡的etc车载单元多场景应用方法及装置 |
CN105763612A (zh) * | 2015-10-14 | 2016-07-13 | 山东农业大学 | 一种盐碱地水盐动态物联网同步自动检测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114125073B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7317952B2 (en) | Managing field devices having different device description specifications in a process control system | |
US20100058118A1 (en) | Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus | |
RU2431185C2 (ru) | Поток графики высокого уровня | |
CN111651405A (zh) | 配置文件管理方法、装置、设备及存储介质 | |
US20210099538A1 (en) | Systems and methods for data exchange among network devices | |
CN107577820A (zh) | 数据处理的方法、设备及系统 | |
CN111930496A (zh) | 集成控制方法、装置、楼宇控制系统、存储介质及处理器 | |
CN109492181A (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN116755844B (zh) | 一种仿真引擎的数据处理方法、装置、设备及存储介质 | |
US10585678B2 (en) | Insertion of custom activities in an orchestrated application suite | |
CN109697020A (zh) | 一种数据存储方法、服务器及系统 | |
CN113658591A (zh) | 一种面向智能家居的语音交互适配系统 | |
CN116016702A (zh) | 一种应用可观测数据采集处理方法、装置及介质 | |
CN113485702B (zh) | 配置化生成前端页面的方法、装置、设备及存储介质 | |
CN115134236A (zh) | 一种智能网卡管理的方法、装置、设备及可读介质 | |
US8230002B2 (en) | Method and system for automatic setup in web-based applications | |
KR20070036990A (ko) | UPnP를 따르지 않는 개체를 UPnP 디바이스 또는컨텐트로 표현하는 방법 및 장치 | |
CN112732663A (zh) | 一种日志信息处理方法及装置 | |
CN114125073B (zh) | 数据交互方法、存储介质以及电子设备 | |
CN116647490A (zh) | 一种航空afdx网络数据检测系统 | |
US9537736B2 (en) | Methods and systems to generate reports including report references for navigation | |
CN115065945A (zh) | 短信链接生成方法、装置、电子设备及存储介质 | |
CN115061785A (zh) | 信息下发方法、装置、存储介质及服务器 | |
CN103838586A (zh) | 文件开启的系统及方法 | |
CN114745368B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |