CN111314304A - 面向多类型数据流的帧识别方法、设备及可读存储介质 - Google Patents
面向多类型数据流的帧识别方法、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111314304A CN111314304A CN202010055304.3A CN202010055304A CN111314304A CN 111314304 A CN111314304 A CN 111314304A CN 202010055304 A CN202010055304 A CN 202010055304A CN 111314304 A CN111314304 A CN 111314304A
- Authority
- CN
- China
- Prior art keywords
- frame
- length
- data
- current
- byte
- 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/22—Parsing or analysis of headers
-
- 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/03—Protocol definition or specification
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明属于物联网多类型终端数据通信技术领域,公开了一种面向多类型数据流的帧识别方法、设备及可读存储介质,包括以下步骤:S1:根据每个终端的数据帧结构和预设的初始帧描述模板,建立每个终端的帧描述模板,得到帧描述模板集;S2:通过轮询帧描述模板集,将多类型数据流识别为不同结构的数据帧。在多场景集成应用中,可描述不同协议的数据帧,形成帧描述模板集,数据中心通过轮询帧描述模板集,识别出不同终端的数据帧。减少因识别不同类型终端数据而造成的定制不同数据帧识别程序的设计工作,提升系统的普适性,有利于系统的快速扩展;该方法不仅适用于智能监测系统,还可扩展于智慧农业、智慧交通和智慧家居等物联网集成应用场景。
Description
技术领域
本发明属于物联网多类型终端数据通信技术领域,涉及一种面向多类型数据流的帧识别方法、设备及可读存储介质。
背景技术
在物联监测、控制等应用场景中,多类型终端上报数据流情况下,服务器数据中心如何高效、准确识别数据帧是个挑战,数据中心需要在识别程序中开发不同的分支流程,或当终端类型继续增加时,数据中心甚至需要开发新的软件。
关于帧识别可查询到专利CN102510323A,公开了一种串口数据的帧识别方法,但该方法针对单一类型数据格式帧识别场景,场景变更后需要重新定义帧识别格式,该专利不涉及多场景、多类型数据帧格式共存,且须采用同一识别程序的情况。
目前,物联网系统多类型终端集成设计时,面对不同终端设备厂商的不同终端协议,系统数据中心需要开发针对不同类型终端的数据帧识别分支或程序,不利于系统扩展和快速应用。
发明内容
本发明的目的在于克服上述现有技术中物联网系统多类型终端集成设计时,面对不同终端设备厂商的不同终端协议,系统数据中心需要开发针对不同类型终端的数据帧识别分支或程序,不利于系统扩展和快速应用的缺点,提供一种面向多类型数据流的帧识别方法、设备及可读存储介质。
为达到上述目的,本发明采用以下技术方案予以实现:
本发明一方面,一种面向多类型数据流的帧识别方法,包括以下步骤:
S1:根据每个终端的数据帧结构和预设的初始帧描述模板,建立每个终端的帧描述模板,得到帧描述模板集;
S2:通过轮询帧描述模板集,将多类型数据流识别为不同结构的数据帧。
本发明面向多类型数据流的帧识别方法进一步的改进在于:
所述S1中的初始帧描述模板包括依次设置的帧头单元、帧类型单元、帧长单元、有效数据单元、帧尾单元和校验单元;
帧头单元包括依次设置的帧头占位字节数和帧头内容;帧类型单元包括依次设置的帧类型占位字节数和帧类型内容;帧长单元包括依次设置的整帧长度占位字节数、整帧长度内容和整帧长度值;有效数据单元包括依次设置的有效数据长度的获取方式、有效数据长度占位字节数、有效数据长度内容、有效数据长度值有效数据内容、子帧个数占位字节数、子帧个数、子帧长度占位字节数和子帧长度;帧尾单元包括依次设置的帧尾占位字节数和帧尾内容;校验单元包括依次设置的校验占位字节数和校验值内容。
所述有效数据长度的获取方式包括以下方式:
当当前数据流的数据帧包含有效数据长度内容时,有效数据长度的获取方式为0,有效数据长度=DecVal(有效数据长度内容);
当当前数据流的数据帧为定长帧且帧长已知时,有效数据长度的获取方式为1,有效数据长度=帧长-帧头占位字节数-帧类型占位字节数-整帧长度占位字节数-帧尾占位字节数-校验占位字节数;
当当前数据流的数据帧为定长帧且帧长未知时,有效数据长度的获取方式为2,有效数据长度=DecVal(整帧长度内容)-帧头占位字节数-帧类型占位字节数-整帧长度占位字节数-帧尾占位字节数-校验占位字节数;
其中,DecVal(X)表示按照数据流的字节顺序模式求取X的十进制值,Scnt表示子帧个数,li表示子帧i的长度,BposSec(i)表示数据流中区间posSec(i)覆盖的字节值,SbyteLen(i)表示第i个子帧的子帧长度占位字节数,posSec(i)表示[pos(i):pos(i)+SbyteLen(i)],pos(i)=pos(i-1)+li-1,pos(0)表示子帧个数所在字节的位置区间之后的下个字节的位置。
所述步骤2的具体方法为:
S201:在帧描述模板集内选取一个帧描述模板,当当前数据流可读字节数大于当前帧描述模板最小字节数时,进行S202;否则,进行S203;
S202:当当前数据流可读字节内容与当前帧描述模板匹配时,将当前数据流可读字节内容通过当前帧描述模板识别为数据帧,并更新缓冲区可读字节首地址,然后进行S201,至所有数据流识别完成;否则,进行S203;
S203:选取帧描述模板集内下一个帧描述模板进行S201,至轮询帧描述模板集内所有帧描述模板,识别完成。
所述S202的具体方法为:
S202-1:记录当前数据流的可读字节首字节位置为Pstart,缓冲区当前位置为Pcurrent,令Pcurrent=Pstart;
S202-2:当当前数据流可读字节的帧头与当前帧描述模板帧头相同时,令Pcurrent=Pcurrent+帧头占位字节数,进行S202-3;否则,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;
S202-3:当当前帧描述模板包含帧类型时,当当前数据流可读字节的帧类型与当前帧描述模板帧类型相同时,令Pcurrent=Pcurrent+帧类型占位字节数,进行S202-4;否则,令Pcurrent=Pstart,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;当当前帧描述模板不包含帧类型时,进行S202-4;
S202-4:当当前帧描述模板包含帧长与有效数据时,进行帧长与有效数据识别,得到帧长占位字节数和有效数据长度值,令Pcurrent=Pcurrent+帧长占位字节数+有效数据长度值,进行S202-5;否则,进行S202-5;
S202-5:当当前帧描述模板包含帧尾时,当当前数据流可读字节的帧尾与当前帧描述模板帧尾相同时,令Pcurrent=Pcurrent+帧尾占位字节数,进行S202-6,否则,令Pcurrent=Pstart,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;当当前帧描述模板不包含帧尾时,进行S202-6;
S202-6:当当前帧描述模板包含帧校验时,令Pcurrent=Pcurrent+校验占位字节数,获取校验值进行校验,当校验通过时,进行S202-7;否则,当前数据流可读字节内容与当前帧描述模板不匹配,进行S202-7;当当前帧描述模板不包含帧校验时,进行S202-7;
S202-7:将已识别且校验正确的当前数据流作为一个完整的数据帧输出,且该数据帧的类型为当前帧描述模板对应的数据帧类型;然后丢弃已识别的数据流,更新当前数据流的可读字节首字节位置,令Pstart=Pcurrent。
所述S202-4中帧长与有效数据识别的具体方法为:
S202-4-1:确定当前帧描述模板的有效数据长度的获取方式;
S202-4-2:当当前帧描述模板的有效数据长度的获取方式为0时,在当前数据流的可读字节中读取当前帧描述模板中有效数据长度占位字节数个字节,获得当前数据流对应数据帧的有效数据长度,令Pcurrent=Pcurrent+有效数据长度占位字节数,在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度;
S202-4-3:当当前帧描述模板的有效数据长度的获取方式为1或2时;
当当前帧描述模板为定长帧,通过当前帧描述模板直接得到帧长;否则,在当前数据流的可读字节中读取当前帧描述模板中帧长占位字节数个字节,获得当前数据流对应数据帧的帧长,令Pcurrent=Pcurrent+帧长占位字节数;
根据当前数据流对应数据帧的帧长,通过下式计算当前数据流对应数据帧的有效数据长度:有效数据长度=帧长-帧头-帧头占位字节数-帧尾占位字节数-校验占位字节数;
在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度;
S202-4:当当前帧描述模板的有效数据长度的获取方式为3时,通过读取当前数据流中的子帧个数单元得到子帧个数,令Pcurrent=Pcurrent+子帧个数占位字节数;
当当前帧描述模板的子帧长度为0时,从当前数据流的可读字节中读取子帧长度,读取对应的子帧有效数据到当前数据流对应数据帧的有效数据,令Pcurrent=Pcurrent+子帧长度+子帧长度占位字节数,然后遍历当前数据流的所有子帧,得到当前数据流对应数据帧的有效数据;否则,通过下式计算当前数据流对应数据帧的有效数据长度:有效数据长度=子帧个数*子帧配置长度,在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度。
本发明另一方面,一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述面向多类型数据流的帧识别方法的步骤。
本发明又一方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述面向多类型数据流的帧识别方法的步骤。
与现有技术相比,本发明具有以下有益效果:
本发明面向多类型数据流的帧识别方法,通过每个终端的数据帧结构和预设的初始帧描述模板,初始帧描述模板采用参数化的帧属性描述键,实现描述不同的数据传输协议,建立每个终端对应的帧描述模板,在多场景集成应用中,通过描述不同协议的数据帧,形成帧描述模板集;进而,通过轮询帧描述模板集,将多类型数据流识别为不同结构的数据帧,可用于多场景组合集成的物联网应用中,减少因识别不同类型终端数据而造成的定制不同数据帧识别程序的设计工作,提升系统的普适性,有利于系统的快速扩展;同时,该方法不仅适用于集装箱智能监测系统,还可扩展于智慧农业,智慧交通,智慧家居等物联网集成应用场景。
附图说明
图1为本发明面向多类型数据流的帧识别方法的整体流程图;
图2为本发明的单个数据帧识别流程图;
图3为本发明的有效数据与帧长识别流程图;
图4为本发明的实施例1场景框图;
图5为本发明的实施例2场景框图;
图6为本发明的实施例4场景框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
参见图1至3,本发明面向多类型数据流的帧识别方法,包括以下步骤:
S1:根据系统内的每个类型终端的数据帧结构和预设的初始帧描述模板,建立每个类型终端的帧描述模板,得到帧描述模板集。
S2:通过轮询帧描述模板集,将数据流识别为不同类型的数据帧。
下面详细介绍本发明多类型数据流的帧识别方法的实现过程。
首选,根据系统内的每个终端类型的数据帧结构,建立每个终端类型的帧描述模板,得到帧描述模板集。
常见的物联网串行通信协议数据帧包含内容为:帧头、帧类型、帧长(整帧长度或有效数据长度)、有效数据、校验和帧尾等,其中帧长可能代表整帧长度也可能代表有效数据长度。一般数据帧由前述某几部分组成,具体根据通信需要决定,可能的帧组成情况有:1、帧头+帧类型+帧长(整帧长度)+有效数据+校验;2、帧头+帧类型+帧长(有效数据长度)+有效数据+校验;3、帧头+帧类型+帧长(有效数据长度)+有效数据;4、帧头+帧类型+校验;5、帧头+帧长(整帧长度)+有效数据+校验;6、帧头+帧长(有效数据长度)+有效数据+校验;7、帧头+帧长(有效数据长度)+有效数据;8、帧头+有效数据+校验;9、帧头+有效数据。
本发明提出一种帧描述结构,如表1所示。该结构采用“键值对”的形式,整帧包含6个帧单元:帧头、帧类型、帧长、有效数据、帧尾和校验,各单元由其组成部分的键值对构成。
帧头单元由帧头占位字节数HeadLen和帧头内容HeadBuf组成,帧头占位字节数表示帧头内容用几个字节表示,默认0表示被描述帧不包含该单元,帧头内容表示帧头的具体字节内容。
帧类型单元由帧类型占位字节数TypeLen和帧类型内容TypeBuf组成,帧类型占位字节数表示帧类型内容用几个字节表示,默认0表示不包含该单元,帧类型内容表示帧类型的具体字节内容。
帧长单元由整帧长度占位字节数LenLen、整帧长度内容LenBuf和整帧长度值Len组成,整帧长度占位字节数表示整帧总长度用几个节表示,默认0表示被描述帧不包含该单元,整帧长度内容表示整帧长度字节内容,注意特殊情况:长度已知的定长帧该键“LenLen”值为0,另需设置本键“Len”为已知的长度值。
有效数据单元由有效数据长度的获取方式FlagOfGetValidDataLen、有效数据长度占位字节数ValidDataLenLen、有效数据长度内容ValidDataLenBuf、有效数据长度值ValidDataLen、有效数据内容ValidDataBuf、子帧个数SubFrameCnt和子帧长度SubFrameLen组成,有效数据长度的获取方式有4种情况:“0”表示直接从字节流读取有效数据长度,“1”定长帧且长度不在字节流体现时计算获得有效数据长度,“2”表示帧长通过字节流获得,计算获得有效数据长度;“3”自定义子母帧;有效数据长度占位字节数表示有效数据长度用几个字节表示;有效数据长度内容表示有效数据长度字节内容;有效数据内容表示有效数据字节内容。
帧尾单元由帧尾占位字节数TailLen和帧尾内容TailBuf组成,帧尾占位字节数表示帧尾内容用几个字节表示,默认0表示被描述帧不包含该单元,帧尾内容表示帧尾的具体字节内容。
校验单元由校验占位字节数CRCLen和校验值校验值CRCBuf,校验占位字节数表示校验内容用几个字节表示,默认0表示被描述帧不包含该单元,校验值表示校验值的具体字节内容。
表1帧描述结构构成表
若记DecVal(X)表示按照字节流的字节顺序模式求取字节数组X的十进制值,则表1中各帧描述键值满足下公式(1)、(2)和(3):
Len=HeadLen+TypeLen+LenLen+ValidDataLen+TailLen+CRCLen (1)
Len=DecVal(LenBuf) (2)
ValidDataLen=DecVal(ValidDataLenBuf) (3)
帧长值的获得与被识别帧有关,关系如公式(4):
有效数据长度值依据“有效数据长度的获取方式”,直接获得或通过计算获得,如公式(5):
其中,Scnt表示子帧个数,li表示子帧i的长度,DecVal(X)表示按照字节流的字节顺序模式求取字节数组X的十进制值,BposSec(i)表示字节流中区间posSec(i)覆盖的字节值,SbyteLen(i)表示第i个子帧长度占位字节数,posSec(i)表示[pos(i):pos(i)+SbyteLen(i)],pos(i)=pos(i-1)+li-1,pos(0)表示子帧个数所在字节之后的下个字节的位置。
不同厂商不同类型终端的数据帧,按照上述帧结构描述,形成帧描述模板,将所有不同类型终端的帧描述模板集合,得到帧描述模板集。
再次,通过轮询帧描述模板集,将数据流识别为不同类型的数据帧,当服务器接收到数据流时,通过轮询帧描述模板集,识别出不同的数据帧,继而分发到具体的帧解析模块进行后续的帧解析,整体流程图如图1所示。
服务器接收到数据流时缓存在缓冲区,然后轮询帧描述模板集,具体如下:
S201:在帧描述模板集内选取一个帧描述模板,判断缓冲区可读字节数是否大于当前帧描述模板最小字节数,当缓冲区可读字节数大于当前帧描述模板最小字节数时,进行S202;否则,进行S203。
S202:当缓冲区可读字节内容与当前帧描述模板匹配时,将缓冲区可读字节内容通过当前帧描述模板识别为数据帧,并更新缓冲区可读字节首地址,即丢弃已识别出的缓冲区可读字节内容,然后进行S201,至数据流识别完成;否则,进行S203。
S203:选取帧描述模板集内下一个帧描述模板进行S201,至轮询帧描述模板集内所有帧描述模板。
将缓冲区可读字节内容通过当前帧描述模板识别为数据帧,需按照帧描述模板与缓冲区可读字节内容进行模式匹配,流程图如图2所示。
S202-1:记录缓冲区可读字节首字节位置为Pstart,缓冲区当前位置为Pcurrent,使Pcurrent=Pstart。
S202-2:进行帧头识别,当缓冲区可读字节帧头与当前帧描述模板帧头相同时,令Pcurrent=Pcurrent+帧头占位字节数,进行S202-3;否则,缓冲区可读字节内容与当前帧描述模板不匹配。
S202-3:当当前帧描述模板包含帧类型时,进行帧类型识别,当缓冲区可读字节帧类型与当前帧描述模板帧类型相同时,令Pcurrent=Pcurrent+帧类型占位字节数,进行S202-4;当缓冲区可读字节帧类型与当前帧描述模板帧类型不相同时,令Pcurrent=Pstart,缓冲区可读字节内容与当前帧描述模板不匹配;当当前帧描述模板不包含帧类型时,进行S202-4。
S202-4:当当前帧描述模板包含帧长与有效数据时,进行帧长与有效数据识别,得到帧长占位字节数和有效数据长度值,令Pcurrent=Pcurrent+帧长占位字节数+有效数据长度值,进行S202-5;否则,进行S202-5。
S202-5:当当前帧描述模板包含帧尾时,进行帧尾识别,当缓冲区可读字节帧尾与当前帧描述模板帧尾相同时,令Pcurrent=Pcurrent+帧尾占位字节数,进行S202-6,当缓冲区可读字节帧尾与当前帧描述模板帧尾不相同时,令Pcurrent=Pstart,缓冲区可读字节内容与当前帧描述模板不匹配;当当前帧描述模板不包含帧尾时,进行S202-6。
S202-6:当当前帧描述模板包含帧校验时,令Pcurrent=Pcurrent+校验占位字节数,获取校验值进行校验,当校验成功时,进行S202-7;当校验失败时,表示缓冲区可读字节内容与当前帧描述模板不匹配,进行S202-7;当当前帧描述模板不包含帧校验时,进行S202-7。
S202-7:将已识别且校验正确的缓冲区可读字节内容作为一个完整的数据帧输出,且该数据帧的类型为当前帧描述模板对应的数据帧类型;然后缓冲区丢弃已识别的缓冲区可读字节内容,更新缓冲区可读字节首字节位置,令Pstart=Pcurrent。
其中帧长与有效数据的识别,使本发明能够应用于多场景融合数据帧识别,依据帧描述结构中关于“有效数据长度的获取方式”的定义和/或帧长值与其他单元键值占位符,依据公式(5)计算获取有效数据长度,从而准确得到有效数据内容,进而很容易得到完整的数据帧,流程图如图3所示。
S202-4-1:确定当前帧描述模板的有效数据长度的获取方式,有效数据长度的获取方式包括0-直接从字节流读取有效数据长度、1-定长帧通过计算获得有效数据长度、2-通过字节流获得帧长后需通过计算获得有效数据长度和3-自定义“子母帧”通过从字节流读取子帧个数需通过计算获得有效数据长度。
S202-4-2:当当前帧描述模板的有效数据长度的获取方式为0时,在缓冲区字节流中读取当前帧描述模板中有效数据长度占位字节数个字节,获得缓冲区字节流当前数据帧的有效数据长度,令Pcurrent=Pcurrent+有效数据长度占位字节数,在缓冲区字节流中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度。
S202-4-3:当当前帧描述模板的有效数据长度的获取方式为1或2时;
当当前帧描述模板为定长帧,通过当前帧描述模板直接得到帧长;否则,在缓冲区字节流中读取当前帧描述模板中帧长占位字节数个字节,获得缓冲区字节流当前数据帧的帧长,令Pcurrent=Pcurrent+帧长占位字节数;
得到缓冲区字节流当前数据帧的帧长后,通过下式计算缓冲区字节流当前数据帧的有效数据长度:有效数据长度=帧长-帧头-帧头占位字节数-帧尾占位字节数-校验占位字节数;
在缓冲区字节流中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度。
S202-4:当当前帧描述模板的有效数据长度的获取方式为3时,通过缓冲区字节流得到子帧个数,令Pcurrent=Pcurrent+子帧个数占位字节数;
当当前帧描述的子帧长度配置为0时,从缓冲区字节流读取子帧长度,读取对应的子帧有效数据到缓冲区字节流当前数据帧的有效数据,令Pcurrent=Pcurrent+子帧长度+子帧长度占位字节数,然后遍历缓冲区字节流当前数据帧的所有子帧,得到缓冲区字节流当前数据帧的有效数据;否则,通过下式计算缓冲区字节流当前数据帧的有效数据长度:有效数据长度=子帧个数*子帧配置长度,在缓冲区字节流中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度。
实施例1
场景1:实时监控某对象室内温度,数据中心与室内2个温度传感器通信,2个传感器同厂家、同型号、同协议,系统组成如图4所示。
假设数据帧定长帧,数据帧结构如表2所示。
表2实施例1温度数据帧结构表
整帧长度N字节(N未知,需要从字节流读取,但是每次的帧长N相对上一次固定),数据帧组成为:帧头2个字节,帧类型1个字节,帧长2个字节,有效数据(M个字节),帧尾2个字节,校验2个字节,满足公式1,带入假设数据得到等式N=2+1+2+M+2+2。根据数据帧的组成,合理配置表1所述的帧描述结构,得到表3所示的帧描述模板表。
表3实施例1温度数据帧描述模板表
配置步骤如下:
1)数据帧中帧头2个字节,因此配置帧头占位字节数HeadLen=2,假设帧头为0xEB90,配置帧头HeadBuf=[0xEB,0x90]。
2)数据帧中帧类型1个字节,因此配置帧类型占位字节数TypeLen=1,假设帧类型为0x01,配置帧头TypeBuf=[0x01]。
3)数据帧中帧长2个字节,因此配置帧尾占位字节数LenLen=2,配置帧尾LenBuf=[],Len根据公式2获得。
4)数据帧中帧尾2个字节,因此配置帧尾占位字节数TailLen=2,假设帧尾为0xAB90,配置帧尾TailBuf=[0xAB,0x90]。
5)数据帧中校验2个字节,因此配置校验占位字节数CRCLen=2,校验内容需要从字节流获得,配置CRCBuf=[]。
6)数据帧中有效数据M个字节,由帧组成得知,有效长度不能直接读取获得,需要通过计算得到,因此配置有效数据长度的获取方式FlagOfGetValidDataLen=2,有效数据长度占位字节数ValidDataLenLen=0,ValidDataLenBuf=[],有效数据个数ValidDataLen根据公式5获得(条件FlagOfGetValidDataLen=2)。
帧描述模板配置结束后,依据图2、图3流程,即可从字节流识别出实施例1中所描述的温度数据帧。
实施例2
场景2:实时监控某对象室内影像,数据中心与室内若干个相机通信,室内相机同品牌、同协议,相机数据帧为直接从相机吐出的数据流,系统组成如图5所示。
图像数据为变长帧,帧组成结构如表4所示。
表4实施例2图像数据帧结构表
整帧长度N字节(N未知,需要计算获得,每次的帧长N相对上一次不固定),数据帧组成为:帧头5个字节,有效数据长度2个字节,有效数据(M个字节)。根据数据帧的组成,合理配置表1所述的帧描述结构,得到表5所示的帧描述模板。
表5实施例2图像数据帧的帧描述模板表
配置步骤如下:
1)数据帧中帧头5个字节,因此配置帧头占位字节数HeadLen=5,假设帧头为0x7600340000,配置帧头HeadBuf=[0x76,0x00,0x34,0x00,0x00]。
2)数据帧中不包括帧类型,因此配置帧类型占位字节数TypeLen=0。
3)数据帧中帧长表示有效数据长度,而不是整帧长度,因此配置帧长占位字节数LenLen=0,其它不配置。
4)数据帧中不包括帧尾,因此配置帧尾占位字节数TailLen=0,其它不配置。
5)数据帧中不包括校验,因此配置校验占位字节数CRCLen=0,其它不配置。
6)数据帧中有效数据长度2个字节,由帧组成得知,从字节流可直接获得有效数据长度,因此配置有效数据长度的获取方式FlagOfGetValidDataLen=0,有效数据长度占位字节数ValidDataLenLen=2,从字节流读取2个字节作为ValidDataLenBuf,有效数据个数ValidDataLen根据公式3获得。
帧描述模板配置结束后,依据图2、图3流程,即可从字节流识别出实施例2中所描述的图像数据帧。
实施例3
场景3:某自研NB-IOT设备。挂载N个传感器,N为变量,采用自定义的子母帧作为通信协议,帧组成结构如表6所示。
表6实施例3自定义子母帧结构表
根据数据帧的组成,合理配置表1所述的帧描述结构,得到表7所示的帧描述模板。
表7实施例3自定义子母帧的帧描述模板表
配置步骤如下:
1)数据帧中帧头5个字节,因此配置帧头占位字节数HeadLen=5,假设帧头为0xAABBCCDDEE,配置帧头HeadBuf=[0xAA,0xBB,0xCC,0xDD,0xEE]。
2)数据帧中不包括帧类型,因此配置帧类型占位字节数TypeLen=0,其它不配置。
3)数据帧中没有帧长单元,因此配置帧头占位字节数LenLen=0,其它不配置。
4)数据帧中不包括帧尾,因此配置帧尾占位字节数TailLen=0,其它不配置。
5)数据帧中不包括校验,因此配置校验占位字节数CRCLen=0,其它不配置。
6)数据帧为子母帧,子帧个数在数据流中用1个字节表示,各子帧长度不固定且在数据流中用1个字节表示,因此配置有效数据长度的获取方式FlagOfGetValidDataLen=3,子帧个数占位字节数SubFrameCntLen=1,子帧长度占位字节数SubFrameLenLen=1,子帧长度SubFrameLen=0,其它不配置,有效数据个数ValidDataLen依据公式5获得。
帧描述模板配置结束后,依据图2、图3流程,即可从字节流识别出实施例3中所描述的子母帧。
实施例4
场景4:场景1中,由于需求变更,追加“拍摄对象室内物品图片”、“对象定位信息”和“湿度、光照强度监测”的要求。相应的,数据中心需增加相机监控数据帧识别,对象定位数据帧识别和湿度、光照传感数据帧识别。上述场景的系统组成如图6所示,数据中心与该对象的至少4类设备通信,分别为对象定位传感器,对象温度采集传感器,对象图像采集设备(相机)和其它设备(NB-IOT设备,采集湿度、光照强度等)。
假设定位数据帧为16字节的定长帧,帧数据流包括帧头1个字节,帧类型1个字节,校验2个字节,其它为有效数据;温度数据帧、图像数据帧、NB-IoT设备的子母数据帧如实施例1、2、3中所假设,则当前场景下的所有数据帧组成如表8所示。
表8实施例4场景下各设备数据帧结构表
根据数据帧的组成,合理配置表1所述的帧描述结构,得到表9所示的帧描述模板集。
表9实施例4帧描述模板集表
帧描述模板集配置结束后,依据图1、图2和图3流程,即可从字节流识别出实施例4中所描述的所有数据帧。
本发明面向多类型数据流的帧识别方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向多类型数据流的帧识别方法的步骤。其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
在示例性实施例中,还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向多类型数据流的帧识别方法的步骤。处理器可能是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
本发明提出一种多类型数据流的帧识别方法,可用于多场景组合集成的物联网应用中,减少因识别不同类型终端数据而造成的定制不同数据帧识别程序的设计工作,提升系统的普适性,有利于系统的快速扩展。此外,该方法不仅适用于集装箱智能监测系统,还可扩展于智慧农业,智慧交通,智慧家居等物联网集成应用场景。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (8)
1.一种面向多类型数据流的帧识别方法,其特征在于,包括以下步骤:
S1:根据每个终端的数据帧结构和预设的初始帧描述模板,建立每个终端的帧描述模板,得到帧描述模板集;
S2:通过轮询帧描述模板集,将多类型数据流识别为不同结构的数据帧。
2.根据权利要求1所述的面向多类型数据流的帧识别方法,其特征在于,所述S1中的初始帧描述模板包括依次设置的帧头单元、帧类型单元、帧长单元、有效数据单元、帧尾单元和校验单元;
帧头单元包括依次设置的帧头占位字节数和帧头内容;帧类型单元包括依次设置的帧类型占位字节数和帧类型内容;帧长单元包括依次设置的整帧长度占位字节数、整帧长度内容和整帧长度值;有效数据单元包括依次设置的有效数据长度的获取方式、有效数据长度占位字节数、有效数据长度内容、有效数据长度值有效数据内容、子帧个数占位字节数、子帧个数、子帧长度占位字节数和子帧长度;帧尾单元包括依次设置的帧尾占位字节数和帧尾内容;校验单元包括依次设置的校验占位字节数和校验值内容。
3.根据权利要求2所述的面向多类型数据流的帧识别方法,其特征在于,所述有效数据长度的获取方式包括以下方式:
当当前数据流的数据帧包含有效数据长度内容时,有效数据长度的获取方式为0,有效数据长度=DecVal(有效数据长度内容);
当当前数据流的数据帧为定长帧且帧长已知时,有效数据长度的获取方式为1,有效数据长度=帧长-帧头占位字节数-帧类型占位字节数-整帧长度占位字节数-帧尾占位字节数-校验占位字节数;
当当前数据流的数据帧为定长帧且帧长未知时,有效数据长度的获取方式为2,有效数据长度=DecVal(整帧长度内容)-帧头占位字节数-帧类型占位字节数-整帧长度占位字节数-帧尾占位字节数-校验占位字节数;
当当前数据流的数据帧为自定义子母帧时,有效数据长度的获取方式为3,有效数据长度=m,当子帧长度为定长帧时,m=Scnt×L;当子帧长度未知时,li=DecVal(BposSec(i))+SbyteLen(i);
其中,DecVal(X)表示按照数据流的字节顺序模式求取X的十进制值,Scnt表示子帧个数,li表示子帧i的长度,BposSec(i)表示数据流中区间posSec(i)覆盖的字节值,SbyteLen(i)表示第i个子帧的子帧长度占位字节数,posSec(i)表示[pos(i):pos(i)+SbyteLen(i)],pos(i)=pos(i-1)+li-1,pos(0)表示子帧个数所在字节的位置区间之后的下个字节的位置。
4.根据权利要求2所述的面向多类型数据流的帧识别方法,其特征在于,所述步骤2的具体方法为:
S201:在帧描述模板集内选取一个帧描述模板,当当前数据流可读字节数大于当前帧描述模板最小字节数时,进行S202;否则,进行S203;
S202:当当前数据流可读字节内容与当前帧描述模板匹配时,将当前数据流可读字节内容通过当前帧描述模板识别为数据帧,并更新缓冲区可读字节首地址,然后进行S201,至所有数据流识别完成;否则,进行S203;
S203:选取帧描述模板集内下一个帧描述模板进行S201,至轮询帧描述模板集内所有帧描述模板,识别完成。
5.根据权利要求4所述的面向多类型数据流的帧识别方法,其特征在于,所述S202的具体方法为:
S202-1:记录当前数据流的可读字节首字节位置为Pstart,缓冲区当前位置为Pcurrent,令Pcurrent=Pstart;
S202-2:当当前数据流可读字节的帧头与当前帧描述模板帧头相同时,令Pcurrent=Pcurrent+帧头占位字节数,进行S202-3;否则,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;
S202-3:当当前帧描述模板包含帧类型时,当当前数据流可读字节的帧类型与当前帧描述模板帧类型相同时,令Pcurrent=Pcurrent+帧类型占位字节数,进行S202-4;否则,令Pcurrent=Pstart,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;当当前帧描述模板不包含帧类型时,进行S202-4;
S202-4:当当前帧描述模板包含帧长与有效数据时,进行帧长与有效数据识别,得到帧长占位字节数和有效数据长度值,令Pcurrent=Pcurrent+帧长占位字节数+有效数据长度值,进行S202-5;否则,进行S202-5;
S202-5:当当前帧描述模板包含帧尾时,当当前数据流可读字节的帧尾与当前帧描述模板帧尾相同时,令Pcurrent=Pcurrent+帧尾占位字节数,进行S202-6,否则,令Pcurrent=Pstart,当前数据流可读字节内容与当前帧描述模板不匹配,进行S203;当当前帧描述模板不包含帧尾时,进行S202-6;
S202-6:当当前帧描述模板包含帧校验时,令Pcurrent=Pcurrent+校验占位字节数,获取校验值进行校验,当校验通过时,进行S202-7;否则,当前数据流可读字节内容与当前帧描述模板不匹配,进行S202-7;当当前帧描述模板不包含帧校验时,进行S202-7;
S202-7:将已识别且校验正确的当前数据流作为一个完整的数据帧输出,且该数据帧的类型为当前帧描述模板对应的数据帧类型;然后丢弃已识别的数据流,更新当前数据流的可读字节首字节位置,令Pstart=Pcurrent。
6.根据权利要求4所述的面向多类型数据流的帧识别方法,其特征在于,所述S202-4中帧长与有效数据识别的具体方法为:
S202-4-1:确定当前帧描述模板的有效数据长度的获取方式;
S202-4-2:当当前帧描述模板的有效数据长度的获取方式为0时,在当前数据流的可读字节中读取当前帧描述模板中有效数据长度占位字节数个字节,获得当前数据流对应数据帧的有效数据长度,令Pcurrent=Pcurrent+有效数据长度占位字节数,在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度;
S202-4-3:当当前帧描述模板的有效数据长度的获取方式为1或2时;
当当前帧描述模板为定长帧,通过当前帧描述模板直接得到帧长;否则,在当前数据流的可读字节中读取当前帧描述模板中帧长占位字节数个字节,获得当前数据流对应数据帧的帧长,令Pcurrent=Pcurrent+帧长占位字节数;
根据当前数据流对应数据帧的帧长,通过下式计算当前数据流对应数据帧的有效数据长度:有效数据长度=帧长-帧头-帧头占位字节数-帧尾占位字节数-校验占位字节数;
在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度;
S202-4:当当前帧描述模板的有效数据长度的获取方式为3时,通过读取当前数据流中的子帧个数单元得到子帧个数,令Pcurrent=Pcurrent+子帧个数占位字节数;
当当前帧描述模板的子帧长度为0时,从当前数据流的可读字节中读取子帧长度,读取对应的子帧有效数据到当前数据流对应数据帧的有效数据,令Pcurrent=Pcurrent+子帧长度+子帧长度占位字节数,然后遍历当前数据流的所有子帧,得到当前数据流对应数据帧的有效数据;否则,通过下式计算当前数据流对应数据帧的有效数据长度:有效数据长度=子帧个数*子帧配置长度,在当前数据流的可读字节中读取有效数据长度个字节,记为有效数据,令Pcurrent=Pcurrent+有效数据长度。
7.一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010055304.3A CN111314304B (zh) | 2020-01-17 | 2020-01-17 | 面向多类型数据流的帧识别方法、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010055304.3A CN111314304B (zh) | 2020-01-17 | 2020-01-17 | 面向多类型数据流的帧识别方法、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314304A true CN111314304A (zh) | 2020-06-19 |
CN111314304B CN111314304B (zh) | 2022-07-19 |
Family
ID=71146811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010055304.3A Active CN111314304B (zh) | 2020-01-17 | 2020-01-17 | 面向多类型数据流的帧识别方法、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314304B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770107A (zh) * | 2020-07-07 | 2020-10-13 | 广州通达汽车电气股份有限公司 | 承载动态数据的流媒体传输方法、系统、存储介质及计算机设备 |
CN112116201A (zh) * | 2020-08-11 | 2020-12-22 | 长江三峡通航管理局 | 船闸通航运行数据的采集、处理方法 |
CN112202492A (zh) * | 2020-09-01 | 2021-01-08 | 中国移动通信集团广东有限公司 | 一种光缆故障定位方法、装置及电子设备 |
CN112311862A (zh) * | 2020-10-21 | 2021-02-02 | 湖南涛峻科技有限公司 | 一种多功能互联通讯协议系统及其数据状态维护流程 |
CN114938402A (zh) * | 2022-04-11 | 2022-08-23 | 清华大学 | 基于字典树的未知协议帧结构识别方法及装置 |
CN115855028A (zh) * | 2023-02-22 | 2023-03-28 | 广州导远电子科技有限公司 | 导航数据解析方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070076757A1 (en) * | 2005-09-30 | 2007-04-05 | Chris Dodd | Reconfigurable media controller to accommodate multiple data types and formats |
US20120250700A1 (en) * | 2011-03-28 | 2012-10-04 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for data transmission |
CN105681134A (zh) * | 2016-03-04 | 2016-06-15 | 西安航天动力技术研究所 | 一种通用型多种串口通信协议检测识别方法 |
CN108819228A (zh) * | 2018-08-17 | 2018-11-16 | 南京工程学院 | 一种fdm三维打印控制系统 |
CN109739747A (zh) * | 2018-12-13 | 2019-05-10 | 西安现代控制技术研究所 | 一种串行通信信息协议通用解析方法 |
-
2020
- 2020-01-17 CN CN202010055304.3A patent/CN111314304B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070076757A1 (en) * | 2005-09-30 | 2007-04-05 | Chris Dodd | Reconfigurable media controller to accommodate multiple data types and formats |
US20120250700A1 (en) * | 2011-03-28 | 2012-10-04 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for data transmission |
CN105681134A (zh) * | 2016-03-04 | 2016-06-15 | 西安航天动力技术研究所 | 一种通用型多种串口通信协议检测识别方法 |
CN108819228A (zh) * | 2018-08-17 | 2018-11-16 | 南京工程学院 | 一种fdm三维打印控制系统 |
CN109739747A (zh) * | 2018-12-13 | 2019-05-10 | 西安现代控制技术研究所 | 一种串行通信信息协议通用解析方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770107A (zh) * | 2020-07-07 | 2020-10-13 | 广州通达汽车电气股份有限公司 | 承载动态数据的流媒体传输方法、系统、存储介质及计算机设备 |
CN111770107B (zh) * | 2020-07-07 | 2022-11-22 | 广州通达汽车电气股份有限公司 | 承载动态数据的流媒体传输方法、系统、存储介质及计算机设备 |
CN112116201A (zh) * | 2020-08-11 | 2020-12-22 | 长江三峡通航管理局 | 船闸通航运行数据的采集、处理方法 |
CN112116201B (zh) * | 2020-08-11 | 2021-07-06 | 长江三峡通航管理局 | 船闸通航运行数据的采集、处理方法 |
CN112202492A (zh) * | 2020-09-01 | 2021-01-08 | 中国移动通信集团广东有限公司 | 一种光缆故障定位方法、装置及电子设备 |
CN112311862A (zh) * | 2020-10-21 | 2021-02-02 | 湖南涛峻科技有限公司 | 一种多功能互联通讯协议系统及其数据状态维护流程 |
CN114938402A (zh) * | 2022-04-11 | 2022-08-23 | 清华大学 | 基于字典树的未知协议帧结构识别方法及装置 |
CN114938402B (zh) * | 2022-04-11 | 2024-04-16 | 清华大学 | 基于字典树的未知协议帧结构识别方法及装置 |
CN115855028A (zh) * | 2023-02-22 | 2023-03-28 | 广州导远电子科技有限公司 | 导航数据解析方法、装置、电子设备和存储介质 |
CN115855028B (zh) * | 2023-02-22 | 2023-11-03 | 广州导远电子科技有限公司 | 导航数据解析方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111314304B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314304B (zh) | 面向多类型数据流的帧识别方法、设备及可读存储介质 | |
US11615166B2 (en) | System and method for classifying image data | |
CN113194359B (zh) | 自动抓取婴儿精彩视频集锦的方法、装置、设备及介质 | |
CN111476875B (zh) | 智慧建筑楼宇物联网对象模拟方法及楼宇云服务器 | |
CN107566344B (zh) | 一种can信号解析方法及系统 | |
CN112241982A (zh) | 一种图像处理方法、装置及机器可读存储介质 | |
CN113077018A (zh) | 一种目标对象识别方法、装置、存储介质及电子装置 | |
CN110855947B (zh) | 一种图像抓拍处理方法及装置 | |
CN114222096A (zh) | 数据传输方法及摄像机、电子设备 | |
CN113343857B (zh) | 标注方法、装置、存储介质及电子装置 | |
CN109618139A (zh) | 一种基于视觉路由的智能视频监控系统及方法 | |
CN112906791A (zh) | 事件的匹配方法、装置、存储介质以及电子装置 | |
CN112910838A (zh) | 复合协议解析方法、装置、设备、系统和存储介质 | |
CN113505733A (zh) | 行为识别方法、装置、存储介质及电子装置 | |
CN111489340A (zh) | 闪光灯故障的确定方法及装置、存储介质、电子装置 | |
CN113469130A (zh) | 一种遮挡目标检测方法、装置、存储介质及电子装置 | |
CN114007030B (zh) | 数据传输方法及摄像机、电子设备 | |
CN103376950B (zh) | 图像定位方法及使用所述方法的互动图像系统 | |
CN112887593A (zh) | 图像获取方法及装置 | |
CN112418335B (zh) | 基于连续图像帧跟踪标注的模型训练方法及电子设备 | |
CN113824621A (zh) | 基于信号的can通讯方法和can控制器 | |
CN113177438B (zh) | 图像处理方法、设备及存储介质 | |
CN114070863B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112995091B (zh) | 数据压缩方法、装置、网络设备及存储介质 | |
CN114266930A (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 |