CN107659380A - 消息发送、消息读取方法、设备及系统 - Google Patents

消息发送、消息读取方法、设备及系统 Download PDF

Info

Publication number
CN107659380A
CN107659380A CN201710791551.8A CN201710791551A CN107659380A CN 107659380 A CN107659380 A CN 107659380A CN 201710791551 A CN201710791551 A CN 201710791551A CN 107659380 A CN107659380 A CN 107659380A
Authority
CN
China
Prior art keywords
message
mounting structure
parameter value
packets
presetting
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
CN201710791551.8A
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.)
Goertek Robotics Co Ltd
Original Assignee
Goertek Robotics 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 Goertek Robotics Co Ltd filed Critical Goertek Robotics Co Ltd
Priority to CN201710791551.8A priority Critical patent/CN107659380A/zh
Publication of CN107659380A publication Critical patent/CN107659380A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例提供一种消息发送、消息读取方法、设备及系统,该方法包括:获取待发送消息的消息标识以及该待发送消息中包括的至少一个参数值。内存中存储有与每个消息标识存在对应关系的一个消息封装结构体,可以根据待发送消息的消息标识在多个消息封装结构体中查询到与此待发送消息对应的消息封装结构体。根据查询到的消息封装结构体中的内容对待发送消息中的至少一个参数值进行封装,以形成消息数据包。最后,将此消息数据包发送至相应的消息接收设备。由上述内容可以看出,在获取到待发送消息后,需要访问预先存储于内存中的消息封装结构体,而无需进行其他的任何操作即可生成消息数据包,提高了消息数据包生成以及消息数据包解析的效率。

Description

消息发送、消息读取方法、设备及系统
技术领域
本发明涉及数据通信传输领域,尤其涉及一种消息发送、消息读取方法、设备及系统。
背景技术
为了使发送设备和接收设备可以实现消息的收发,往往都需要预先约定好消息中包含数据的数据信息,例如数据类型以及数据长度等等,通常可以将此预先约定好的内容存储于一份协议文件中。
在实际的消息收发场景中,消息的发送设备和接收设备可能会具有不同的语言开发环境。因此,每当进行消息的发送或接收时,都需要根据发送设备或者接收设备的语言环境将协议文件编码为相应语言的代码,相当于编写发送或接收代码,其中定义需要发送或接收消息所对应的变量,进而将需要发送或接收的消息进行变量赋值,以完成消息的发送和接收。
如果在实际应用中,发送设备和接收设备对协议文件的编码发生错误,将导致消息发送或接收失败。而且,每次发送或接收消息都需要对协议文件进行编码,也会影响消息发送、接收的效率。
发明内容
有鉴于此,本发明实施例提供一种消息发送、消息读取方法、设备及系统,免去了消息收发中的编码过程,提高消息收发的效率。
本发明实施例提供一种消息发送方法,包括:
获取待发送消息的消息标识以及所述待发送消息中包括的至少一个参数值;
从预先存储于内存中的消息封装结构体中查询与所述消息标识对应的消息封装结构体;
按照查询到的消息封装结构体将所述至少一个参数值封装为消息数据包;
发送所述消息数据包。
可选地,所述方法还包括:
获取预设协议文件,所述预设协议文件中包括多种预设消息各自对应的描述信息,所述描述信息中描述了预设消息的消息标识以及所述预设消息中包含的参数以及参数的数据类型和数据长度;
生成与所述预设协议文件中包括的各种数据类型分别对应的类型标号;
依次读取所述多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,所述消息封装结构体中包括与所述读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度;
将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入所述消息容器中。
可选地,所述按照查询到的消息封装结构体将所述至少一个参数值封装为消息数据包,包括:
根据查询到的消息封装结构体中包含的参数顺序、类型标号和数据长度,依次对所述至少一个参数值进行格式转换;
将格式转换后的所述至少一个参数值封装为消息数据包。
本发明实施例提供一种消息读取方法,包括:
获取待解析消息数据包对应的消息标识;
从预先存储于内存中的消息封装结构体中查询与所述消息标识对应的消息封装结构体;
根据查询到的消息封装结构体,识别所述待解析消息数据包中的至少一个参数值。
可选地,所述方法还包括:
获取预设协议文件,所述预设协议文件中包括多种预设消息各自对应的描述信息,所述描述信息中描述了预设消息的消息标识以及所述预设消息中包含的参数以及参数的数据类型和数据长度;
生成与所述预设协议文件中包括的各种数据类型分别对应的类型标号;
依次读取所述多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,所述消息封装结构体中包括与所述读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度;
将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入所述消息容器中。
可选地,在所述根据查询到的消息封装结构体,识别所述待解析消息数据包中的至少一个参数值,包括:
根据查询到的消息封装结构体中包含的参数顺序和各参数的数据长度,从所述待解析消息包中确定所述至少一个参数值各自对应的字符串;
对所述至少一个参数值各自对应的字符串进行数据类型转换。
本发明实施例提供一种消息发送设备,包括:
处理器、以及分别与所述处理器连接的存储器以及通信组件;
所述存储器,用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器,用于执行所述一条或多条计算机指令以实现上述所述消息发送方法中的任意一种;
所述通信组件,用于发送待发送消息对应的消息数据包。
本发明实施例提供一种消息读取设备,包括:
处理器、以及分别与所述处理器连接的存储器以及通信组件;
所述存储器,用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器,用于执行所述一条或多条计算机指令以实现上述所述消息读取方法中的任意一种;
所述通信组件,用于接收待解析消息数据包。
本发明实施例提供一种消息发送与读取系统,包括:
上述消息发送设备以及上述消息读取设备。
本发明实施例提供的消息发送、消息读取方法、设备及系统,首先,获取待发送消息的消息标识以及该待发送消息中包括的至少一个参数值。在内存中预先存储有多个消息封装结构体,每个消息标识对应于一个消息封装结构体,因此,可以根据待发送消息的消息标识在多个消息封装结构体中查询到与此待发送消息对应的消息封装结构体。接着,根据查询到的消息封装结构体中的内容对待发送消息中的至少一个参数值进行封装,形成消息数据包。最后,将此消息数据包发送至相应的消息接收设备。由上述过程可以看出,在获取到待发送消息后,需要访问预先存储于内存中的消息封装结构体,而无需进行编码等任何其他操作即可生成消息数据包,提高了消息数据包生成的效率,也相应的提高了消息发送的效率。相类似的,在接收到待解析消息数据包后,同样需要访问内存中的消息封装结构体,而无需进行编码等任何其他的操作,根据消息封装结构体中的内容即可解析出消息数据包中的至少一个参数值,使得消息读取的效率大大提高。另外,由于本发明提供的消息发送以及消息读取方法中并不存在任何编码过程,因此,本发明提供的消息发送方法以及消息读取方法所具有的高效性在协议频繁修改或调试的应用场景中可以体现地更加明显。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息发送方法实施例一的流程图;
图2为本发明实施例提供的消息发送方法实施例二的流程图
图3为本发明实施例提供的消息读取方法实施例一的流程图;
图4为本发明实施例提供的消息发送设备实施例一的结构示意图;
图5为本发明实施例提供的消息读取设备实施例一的结构示意图;
图6为本发明实施例提供的消息发送与读取系统实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述XXX,但这些XXX不应限于这些术语。这些术语仅用来将XXX彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一XXX也可以被称为第二XXX,类似地,第二XXX也可以被称为第一XXX。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
以无人机控制场景为例,地面指挥中心的指挥人员可以通过配置有指挥系统的指挥设备向无人机发送控制消息,从而控制无人机的飞行状态。控制消息的具体发送过程可以参考以下实施例。
图1为本发明实施例提供的消息发送方法实施例一的流程图,如图1所示,该方法包括如下步骤:
S101,获取待发送消息的消息标识以及待发送消息中包括的至少一个参数值。
S102,从预先存储于内存中的消息封装结构体中查询与消息标识对应的消息封装结构体。
S103,按照查询到的消息封装结构体将至少一个参数值封装为消息数据包。
S104,发送消息数据包。
控制设备中预先设置有多种指挥消息,例如,起飞消息,降落消息,转向消息等等。地面指挥中心的指挥人员可以在指挥设备的操作界面中选择想要发送的指挥消息的种类,再根据选中的消息种类输入相应地至少一个参数值。通常可以将指挥人员在指挥设备上触发的控制消息称为待发送消息,并且待发送消息可以包括多种种类,每种待发送消息中包括的参数值类型也不尽相同。例如,起飞消息或者降落消息中包括的参数值可以为飞行高度、飞行角度、起飞或降落加速度等等;转向消息中包括的参数值可以为转向角度、飞行速度等等。
同时,指挥设备中也预先设置有每种待发送消息对应的消息标识。举例来说,起飞消息的消息标识可以为01,转向消息的消息标识可以为02等等。在指挥人员通过操作界面触发了某种待发送消息后,指挥设备便可以根据待发送消息的种类获取此待发送消息的消息标识,同时还可以获取待发送消息中包括的至少一个参数值。
可选地,在生成消息封装结构体的过程实质上是一个“读取—保存—生成”的过程。具体地,每种消息对应的种类以及此种消息中所包括的参数值类型可以统称为此种消息的消息特征,并且消息特征可以预先保存于一个配置文件中,此配置文件可以预先存储于服务器中。指挥设备通过向服务器发送请求,从而读取到配置文件中保存的消息特征,再将消息特征保存至指挥设备的内存中。指挥设备便可以根据读取到的消息特征生成相应的消息封装结构体,并将消息封装结构体存入内存中。
由于在指挥设备的内存中已经预先存储有多个消息封装结构体,并且每种消息都有一个对应的消息封装结构体,消息封装结构体中可以包括封装格式。可选地,封装格式可以为参数对应的数据类型、数据长度以及参数的顺序等等。因此,指挥设备可以根据步骤S101中获取的待发送消息的消息标识从内存中查询到与此待发送消息对应的一个数据封装结构体,并按照此消息封装结构体中包括的封装格式对待发送消息中的至少一个参数值进行封装,从而得到消息数据包。可选地,此消息数据包中除了封装有至少一个参数值外,还会包括消息标识,并且此消息标识是作为消息头封装于消息数据包中。
最后,可以将此消息数据包发送至无人机,以实现控制无人机的飞行状态。
为了保证消息数据包中参数的准确性,可选地,封装的过程具体可以包括:先按照消息封装结构体中包括的封装格式对待发送消息中的至少一个参数值进行格式转换,使转换后的至少一个参数值满足相应的封装格式,再对转换后的至少一个参数值进行封装。
由于格式转换前的参数值都是指挥人员可以识别的参数值格式,而指挥设备可能并不能对此格式的参数值进行准确的识别,这就导致消息数据包中包含的参数有可能会存在错误。而经过格式转换后的至少一个参数值都是指挥设备可以准确识别的格式,指挥设备也就可以对准确的参数值进行封装,从而能够保证消息数据包中参数的准确性。
通过上述描述可知,在生成并发送消息数据包的过程中,消息结构封装体起着重要的作用。可选地,消息结构封装体可以是在获取待发送消息之前预先获得的。消息结构封装体具体的获得过程可以参见下述实施例。
需要说明的是,上述内容只是以无人机控制场景为例进行的说明,本发明并不限定使用场景,此消息发送方法可以应用于任何存在消息发送的场景中。
本实施例中,获取待发送消息的消息标识以及该待发送消息中包括的至少一个参数值。在内存中预先存储有多个消息封装结构体,每个消息标识对应于一个消息封装结构体,因此,可以根据待发送消息的消息标识在多个消息封装结构体中查询到与此待发送消息对应的消息封装结构体。接着,根据查询到的消息封装结构体中的内容对待发送消息中的至少一个参数值进行封装,形成消息数据包。最后,将此消息数据包发送至相应的消息接收设备。由上述过程可以看出,在获取到待发送消息后,需要访问预先存储于内存中的消息封装结构体,而无需进行其他如编码等任何操作即可生成消息数据包,提高了消息数据包生成的效率,也相应的提高了消息发送的效率。另外,由于本发明提供的消息发送方法中并不存在任何编码过程,因此,本发明提供消息发送方法具有的高效性在协议频繁修改或调试的应用场景中体现地更加明显。
图2为本发明实施例提供的消息发送方法实施例二的流程图,如图2所示,该方法可以包括如下步骤:
S201,获取预设协议文件,此预设协议文件中包括多种预设消息以及多种消息各自对应的描述信息,描述信息中包括每种预设消息对应的消息标识以及每种预设消息中包含的参数以及参数的数据类型和数据长度。
可选地,预设协议文件可以是预先存储于指挥设备中的。可选地,预设协议文件可以存储于远端服务器中,指挥人员可以通过发送获取指令的形式来使指挥设备获取到此预设协议文件。
预设协议文件中包含的内容通常是开发人员根据实际的无人机控制操作来设置的。在实际的无人机飞行控制过程中,每种控制操作都可以是一种预设消息,正如步骤S101中描述所涉及到的,多种无人机控制操作可以包括无人机的起飞、降落、转向等等,因此与前述控制操作相对应地,预设消息则可以为起飞消息、降落消息、转向消息。同时,开发人员还可以为每种预设消息设置一个相应的消息标识。
另外,由于每种预设消息中包含的参数值的参数类型也是不同的,因此指挥人员还可以对预设消息中包含的参数设置相应的数据类型以及数据长度。以无人机的起飞为例,要想控制无人机正常起飞通常需要控制无人机的起飞加速度、飞行角度以及无人机所要达到的飞行高度。通常情况下,可以将起飞加速度的数据类型设置为4字节的浮点型,将飞行角度以及飞行高度的数据类型设置为2字节的整型。
通过上述过程,即可对多种预设消息的消息标识以及预先消息中包括的参数的数据类型以及数据长度进行设置,并记录设置的内容以生成预设协议文件。可选地,预设协议文件可以是xml格式的文件,也可以是excel格式的文件。假设某一帧预设消息为起飞消息时,针对此种消息,在预设协议文件中记录的内容是:消息标识01,起飞加速度为4字节的浮点型参数,飞行角度以及飞行高度为2字节的整型参数。
S202,生成与预设协议文件中包括的各种数据类型分别对应的类型标号。
根据预设协议文件中包含的内容可以获得所有种类的预设消息中包含的全部参数的数据类型,并可以对每种数据类型生成一个相应的类型标号。例如,整型的数据类型对应的类型标号为I,浮点型的数据类型对应的类型标号为F,等等。
S203,依次读取多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,消息封装结构体中包括与读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度。
指挥设备通过解析软件对预设协议文件进行解析,即可得到其中的内容。由于已经为预设消息设置了消息标识,同时也为每种预设消息中包括的至少一个参数值的数据类型设置了类型标号,因此,在依次读取每种预设消息对应的描述信息的过程中,利用描述信息中的消息标识、生成的数据类型的类型标号以及数据长度即可为每个预设消息生成对应的消息封装结构体。消息标识、数据类型的类型标号、数据长度可以理解为是消息封装结构体中的必要信息。可选地,消息封装结构体中还可以包括非必要信息,例如用于说明参数名称的说明信息等等。
S204,将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入消息容器中。
指挥设备已经预先在内存中定义了一个消息容器,在针对每种预设消息生成对应的消息封装结构体后,可以将这些消息封装结构体存储于消息容器中,每个消息结构体都可以看作是消息容器中的一个元素。
此消息容器是以预设消息的消息标识为存储索引的,因此,在指挥设备获取到待发送消息的消息标识后,即可利用此消息标识中在消息容器中查询到对应的元素,也即是查询到消息标识对应的消息封装结构体。
S205,获取待发送消息的消息标识以及待发送消息中包括的至少一个参数值。
S206,从预先存储于内存中的消息封装结构体中查询与消息标识对应的消息封装结构体。
上述步骤S205-S206的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。
S207,根据查询到的消息封装结构体中包含的参数顺序、类型标号和数据长度,依次对至少一个参数值进行格式转换。
S208,将格式转换后的至少一个参数值封装为消息数据包。
在根据消息标识查询到对应的消息封装结构体后,还需要根据查询到的消息封装结构体中包含的封装格式依次对至少一个参数值进行格式转换,其中封装格式可以为参数顺序、类型标号和数据长度。格式转换后的至少一个参数值都是满足消息封装结构体中包含的封装格式的,并且也都是指挥设备可以准确识别出的参数值。指挥设备再对格式转换后的至少一个参数进行封装处理,进而形成一个消息数据包。
S209,发送消息数据包。
上述步骤S209的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。
本实施例中,根据指挥人员预设设置的预设协议文件中包含的预设消息对应的描述信息,分别对各种数据类型设置相应的类型标识,再基于类型标识以及预设协议文件中包含的描述信息,针对每种预设消息生成对应的消息封装结构体,并按照预设消息的消息标识,把各个消息封装结构体存储到预先设置的消息容器中。指挥设备根据获取消息标识在消息容器中查询出对应的消息封装结构体,并将待发送消息中的至少一个参数值按照消息封装结构体中包含的参数顺序、类型标号和数据长度对参数值进行格式转换,并对格式转换后的参数值进行封装,从而得到消息数据包。由于经过格式转换后的至少一个参数值都是指挥设备可以准确识别的格式,指挥设备也就可以对准确的参数值进行封装,使得消息数据包中都是准确的参数值,也就相应提高了消息发送的准确性。
以无人机控制场景为例,无人机可以定时向地面指挥中心发送当前无人机的飞行消息数据包,该消息数据包中可以包括无人机当前飞行状态的各项数据指挥设备需要读取出消息数据包中的内容,从而实时了解无人机的飞行状况。飞行消息数据包的具体读取过程可以参考以下实施例。
图3为本发明实施例提供的消息读取方法实施例一的流程图,如图3所示,该方法包括如下步骤:
S301,获取待解析消息数据包对应的消息标识。
S302,从预先存储于内存中的消息封装结构体中查询与消息标识对应的消息封装结构体。
S303,根据查询到的消息封装结构体,识别待解析消息数据包中的至少一个参数值。
指挥设备可以定时收到无人机发送的飞行消息数据包,此飞行消息数据包即为指挥设备获取到的待解析消息数据包。根据消息数据包中的消息头部分即可获取此带解析消息数据包对应的消息标识。
接着,根据获取的待解析消息数据包的消息标识向预先存储于内存中的多个消息封装结构体中查询,以得到与此消息标识对应的一个消息封装结构体。此消息封装结构体与前述消息发送方法中涉及到的消息封装结构体是相同的。可选地,其中也包括了参数对应的数据类型、数据长度以及参数的顺序等封装格式。
在查询到的待解析消息数据包对应的消息封装结构体之后,可选地,指挥设备可以根据消息封装结构体中包括的数据类型以及数据长度从待解析数据包中依次读取相应数据长度的内容。通过此依次读取的过程也即是将待解析消息数据包中的内容划分为若干部分,并且每个部分对应于一个参数值,从而可以进一步识别出每个部分对应的参数值,从而完成待解析消息数据包的读取。
由于待解析消息数据包中存储的内容实质上是指挥设备可以识别的一串二进制字符串,但是指挥人员并不能识别此字符串。为了使指挥人员也能够了解待解析消息数据包中包含的信息,以便指挥人员可以根据待解析消息数据包中的信息,对无人机发出进一步的控制操作。可选地,根据查询到的消息封装结构体,识别待解析消息数据包中的至少一个参数值具体可包括:
首先,根据查询到的消息封装结构体中包含的参数顺序和各参数的数据长度,从待解析消息包中确定至少一个参数值各自对应的字符串。也即是根据消息封装结构体中包含的参数顺序和各参数的数据长度,将待解析消息数据包中的一串字符串划分为至少一个字符串,每一个字符串对应于一个参数值。
再将划分出的至少一个字符串进行数据类型的转换,将字符串转换为指挥人员可以识别的数据类型,可选地,指挥人员可识别的数据类型为十进制数字。对至少一个字符串进行数据类型转换操作得到的结果即为每个字符串对应的参数值,指挥人员可以识别此参数值,并最终完成消息数据包的读取。
与前述消息发送方法相类似的,消息数据包的读取过程中,消息封装结构体同样起到的重要的作用。因此,可选地,在步骤S301之前,方法还可以通过以下过程来生成消息封装结构体,并将其存入预设的消息容器中。
首先,获取预设协议文件,预设协议文件中包括多种预设消息各自对应的描述信息,描述信息中描述了预设消息的消息标识以及预设消息中包含的参数以及参数的数据类型和数据长度。
进而,生成与预设协议文件中包括的各种数据类型分别对应的类型标号。
然后,依次读取多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,消息封装结构体中包括与读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度。
最后,将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入消息容器中。
上述过程与前述实施例的相应步骤相似,可以参见如图2所示实施例中的相关描述,在此不再赘述。
需要说明的是,上述内容只是以无人机控制场景为例进行的说明,本发明并不限定使用场景,此消息发送方法可以应用于任何存在消息发送的场景中。
本实施例中,指挥设备获取待解析消息数据包对应的消息标识,并根据此消息标识从多个消息封装结构体中查询到对应的一个消息封装结构体。再利用查询到的消息封装结构体中包含的内容,识别出待解析消息数据包中包含的至少一个参数值。根据上述过程可知,待解析消息数据包的读取过程需要访问预先存储于内存中的消息封装结构体,而无需进行编码等任何其他操作即可读取出待解析消息数据包中的内容,提高了消息读取的效率。另外,由于本发明提供的消息读取方法中并不存在任何编码过程,因此,本发明提供消息读取方法具有的高效性在协议频繁修改或调试的应用场景中体现地更加明显。
图4为本发明实施例提供的消息发送设备实施例一的结构示意图,如图4所示,该消息发送设备包括:存储器11、处理器12、通信组件13。
存储器11,用于存储一条或多条计算机指令,其中,一条或多条计算机指令供处理器12调用执行。
处理器12,用于执行一条或多条计算机指令以实现前述消息发送方法中的任意一种方法。
通信组件13,用于发送待发送消息对应的消息数据包。
图4所示设备可以执行图1和图2所示实施例的方法,本实施例未详细描述的部分,可参考对图1和图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1和图2所示实施例中的描述,在此不再赘述。
图5为本发明实施例提供的消息读取设备实施例一的结构示意图,如图5所示,该消息读取设备包括:存储器21、处理器22、通信组件23。
存储器21,用于存储一条或多条计算机指令,其中,一条或多条计算机指令供处理器22调用执行。
处理器22,用于执行一条或多条计算机指令以实现前述消息读取方法中的任意一种方法。
通信组件23,用于接收待解析消息数据包。
图5所示设备可以执行图3所示实施例的方法,本实施例未详细描述的部分,可参考对图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图3所示实施例中的描述,在此不再赘述。
图6为本发明实施例提供的消息发送和读取系统实施例一的结构示意图,如图6所示,该消息发送和读取系统包括:如图4所示的消息发送设备31以及如图5所示的消息读取设备32。
本实施例未详细描述的部分,可参考对图1-3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-3所示实施例中的描述,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以产品的形式体现出来,该计算机产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种消息发送方法,其特征在于,包括:
获取待发送消息的消息标识以及所述待发送消息中包括的至少一个参数值;
从预先存储于内存中的消息封装结构体中查询与所述消息标识对应的消息封装结构体;
按照查询到的消息封装结构体将所述至少一个参数值封装为消息数据包;
发送所述消息数据包。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预设协议文件,所述预设协议文件中包括多种预设消息各自对应的描述信息,所述描述信息中描述了预设消息的消息标识以及所述预设消息中包含的参数以及参数的数据类型和数据长度;
生成与所述预设协议文件中包括的各种数据类型分别对应的类型标号;
依次读取所述多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,所述消息封装结构体中包括与所述读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度;
将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入所述消息容器中。
3.根据权利要求2所述的方法,其特征在于,所述按照查询到的消息封装结构体将所述至少一个参数值封装为消息数据包,包括:
根据查询到的消息封装结构体中包含的参数顺序、类型标号和数据长度,依次对所述至少一个参数值进行格式转换;
将格式转换后的所述至少一个参数值封装为消息数据包。
4.一种消息读取方法,其特征在于,包括:
获取待解析消息数据包对应的消息标识;
从预先存储于内存中的消息封装结构体中查询与所述消息标识对应的消息封装结构体;
根据查询到的消息封装结构体,识别所述待解析消息数据包中的至少一个参数值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取预设协议文件,所述预设协议文件中包括多种预设消息各自对应的描述信息,所述描述信息中描述了预设消息的消息标识以及所述预设消息中包含的参数以及参数的数据类型和数据长度;
生成与所述预设协议文件中包括的各种数据类型分别对应的类型标号;
依次读取所述多种预设消息的描述信息,生成与读取到的描述信息对应的消息封装结构体,所述消息封装结构体中包括与所述读取到的描述信息对应的参数个数、参数顺序以及各参数对应的类型标号和数据长度;
将生成的消息封装结构体以对应的预设消息的消息标识为存储索引,作为预先在内存中定义的消息容器中的元素,存入所述消息容器中。
6.根据权利要求5所述的方法,其特征在于,在所述根据查询到的消息封装结构体,识别所述待解析消息数据包中的至少一个参数值,包括:
根据查询到的消息封装结构体中包含的参数顺序和各参数的数据长度,从所述待解析消息包中确定所述至少一个参数值各自对应的字符串;
对所述至少一个参数值各自对应的字符串进行数据类型转换。
7.一种消息发送设备,其特征在于,包括:处理器、以及分别与所述处理器连接的存储器以及通信组件;
所述存储器,用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器,用于执行所述一条或多条计算机指令以实现权利要求1-3中任一项所述的方法;
所述通信组件,用于发送待发送消息对应的消息数据包。
8.一种消息读取设备,其特征在于,包括:处理器、以及分别与所述处理器连接的存储器以及通信组件;
所述存储器,用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器,用于执行所述一条或多条计算机指令以实现权利要求4-6中任一项所述的方法;
所述通信组件,用于接收待解析消息数据包。
9.一种消息发送与读取系统,其特征在于,包括:如权利要求7所述的消息发送设备以及如权利要求8所述的消息读取设备。
CN201710791551.8A 2017-09-05 2017-09-05 消息发送、消息读取方法、设备及系统 Pending CN107659380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710791551.8A CN107659380A (zh) 2017-09-05 2017-09-05 消息发送、消息读取方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710791551.8A CN107659380A (zh) 2017-09-05 2017-09-05 消息发送、消息读取方法、设备及系统

Publications (1)

Publication Number Publication Date
CN107659380A true CN107659380A (zh) 2018-02-02

Family

ID=61129177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710791551.8A Pending CN107659380A (zh) 2017-09-05 2017-09-05 消息发送、消息读取方法、设备及系统

Country Status (1)

Country Link
CN (1) CN107659380A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450989A (zh) * 2018-10-19 2019-03-08 武汉斗鱼网络科技有限公司 一种数据传输的方法、装置、设备及介质
CN111083145A (zh) * 2019-12-18 2020-04-28 北京华宇信息技术有限公司 消息发送方法、装置及电子设备
CN111163100A (zh) * 2019-12-31 2020-05-15 广州市百果园信息技术有限公司 数据结构、通信方法、装置、存储介质及设备
CN112134938A (zh) * 2020-09-09 2020-12-25 重庆易宠科技有限公司 一种消息处理方法、装置、终端及计算机可读存储介质
CN112818654A (zh) * 2021-02-18 2021-05-18 北京奇艺世纪科技有限公司 消息存储方法、消息生成方法、装置、电子设备及计算机可读介质
CN113810268A (zh) * 2021-05-31 2021-12-17 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质
CN114759965A (zh) * 2020-12-29 2022-07-15 中国科学院空天信息创新研究院 数据包传输方法、装置、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087269A (zh) * 2006-06-09 2007-12-12 华为技术有限公司 传送消息业务数据的方法及系统
CN101483611A (zh) * 2008-01-09 2009-07-15 华为技术有限公司 一种实现消息业务互通的系统、方法和装置
CN100527704C (zh) * 2006-01-05 2009-08-12 华为软件技术有限公司 一种流媒体服务器以及流媒体传送和存储方法
CN102316366A (zh) * 2010-07-09 2012-01-11 中兴通讯股份有限公司 一种媒体服务器及音视频传输的方法
CN104778258A (zh) * 2015-04-21 2015-07-15 华中科技大学 一种面向协议数据流的数据抽取方法
CN106411652A (zh) * 2016-11-02 2017-02-15 中国运载火箭技术研究院 一种面向空天通信的网关协议转换测试系统及方法
CN106533671A (zh) * 2016-11-29 2017-03-22 美的智慧家居科技有限公司 信息交互方法、系统及其设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100527704C (zh) * 2006-01-05 2009-08-12 华为软件技术有限公司 一种流媒体服务器以及流媒体传送和存储方法
CN101087269A (zh) * 2006-06-09 2007-12-12 华为技术有限公司 传送消息业务数据的方法及系统
CN101483611A (zh) * 2008-01-09 2009-07-15 华为技术有限公司 一种实现消息业务互通的系统、方法和装置
CN102316366A (zh) * 2010-07-09 2012-01-11 中兴通讯股份有限公司 一种媒体服务器及音视频传输的方法
CN104778258A (zh) * 2015-04-21 2015-07-15 华中科技大学 一种面向协议数据流的数据抽取方法
CN106411652A (zh) * 2016-11-02 2017-02-15 中国运载火箭技术研究院 一种面向空天通信的网关协议转换测试系统及方法
CN106533671A (zh) * 2016-11-29 2017-03-22 美的智慧家居科技有限公司 信息交互方法、系统及其设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450989A (zh) * 2018-10-19 2019-03-08 武汉斗鱼网络科技有限公司 一种数据传输的方法、装置、设备及介质
CN109450989B (zh) * 2018-10-19 2021-09-07 武汉斗鱼网络科技有限公司 一种数据传输的方法、装置、设备及介质
CN111083145A (zh) * 2019-12-18 2020-04-28 北京华宇信息技术有限公司 消息发送方法、装置及电子设备
CN111163100A (zh) * 2019-12-31 2020-05-15 广州市百果园信息技术有限公司 数据结构、通信方法、装置、存储介质及设备
CN111163100B (zh) * 2019-12-31 2022-10-11 广州市百果园信息技术有限公司 数据结构、通信方法、装置、存储介质及设备
CN112134938A (zh) * 2020-09-09 2020-12-25 重庆易宠科技有限公司 一种消息处理方法、装置、终端及计算机可读存储介质
CN114759965A (zh) * 2020-12-29 2022-07-15 中国科学院空天信息创新研究院 数据包传输方法、装置、存储介质
CN112818654A (zh) * 2021-02-18 2021-05-18 北京奇艺世纪科技有限公司 消息存储方法、消息生成方法、装置、电子设备及计算机可读介质
CN112818654B (zh) * 2021-02-18 2024-02-02 北京奇艺世纪科技有限公司 消息存储方法、消息生成方法、装置、电子设备及计算机可读介质
CN113810268A (zh) * 2021-05-31 2021-12-17 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质
CN113810268B (zh) * 2021-05-31 2024-02-20 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN107659380A (zh) 消息发送、消息读取方法、设备及系统
US7570661B2 (en) Script-based parser
US8356332B2 (en) Extensible protocol validation
CN112039824B (zh) 通信方法、系统、设备及计算机可读存储介质
CN103346980B (zh) 一种业务调度方法、装置及网络设备
CN109800258A (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN107038354A (zh) 代码混淆方法、代码运行方法及装置
CN109842629A (zh) 基于协议解析框架的自定义协议的实现方法
CN103383681B (zh) 一种文件类型识别方法及系统
CN105939284B (zh) 报文控制策略的匹配方法及装置
CN112671726A (zh) 工业控制协议解析方法、装置、电子设备和存储介质
CN108933774A (zh) 数据交互系统和方法
CN102123058A (zh) 一种对网络协议解码器进行测试的测试设备和方法
CN114157461B (zh) 工控协议数据流处理方法、装置、设备及存储介质
CN113887173A (zh) 一种基于xml的协议动态组包和解析方法
CN108055166B (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
CN112491795A (zh) 一种边缘物联代理装置的数据打包方法及系统
CN109039730A (zh) 服务器集群及服务器集群配置信息管理方法
CN107040613A (zh) 一种报文传输方法及系统
CN115150207B (zh) 工业网络设备识别方法、装置、终端设备及存储介质
CN114268451B (zh) 电力监控网络安全缓冲区构建方法、装置、设备和介质
CN106034119A (zh) 应用安装包的加密混淆方法及装置
CN104598223B (zh) 一种网络建模语言解析方法及装置
CN112335212B (zh) 消息数据的处理的方法和装置
CN104349174A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180202

RJ01 Rejection of invention patent application after publication