CN108933779B - 输入混合数据流识别方法和装置、计算机可读存储介质 - Google Patents

输入混合数据流识别方法和装置、计算机可读存储介质 Download PDF

Info

Publication number
CN108933779B
CN108933779B CN201810503140.9A CN201810503140A CN108933779B CN 108933779 B CN108933779 B CN 108933779B CN 201810503140 A CN201810503140 A CN 201810503140A CN 108933779 B CN108933779 B CN 108933779B
Authority
CN
China
Prior art keywords
command
data stream
character
cutoff
bytes
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.)
Active
Application number
CN201810503140.9A
Other languages
English (en)
Other versions
CN108933779A (zh
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.)
Unicorecomm Shanghai Technology Co ltd
Unicore Communications Inc
Original Assignee
Unicorecomm Shanghai Technology Co ltd
Unicore Communications Inc
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 Unicorecomm Shanghai Technology Co ltd, Unicore Communications Inc filed Critical Unicorecomm Shanghai Technology Co ltd
Priority to CN201810503140.9A priority Critical patent/CN108933779B/zh
Publication of CN108933779A publication Critical patent/CN108933779A/zh
Application granted granted Critical
Publication of CN108933779B publication Critical patent/CN108933779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Abstract

本申请公开了一种输入混合数据流识别方法和装置、计算机可读存储介质,包括:检测输入混合数据流中是否包括命令截止符;如果包括,检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符;如果自命令截止符向前的连续i个字节全部为命令字符,检测该连续i个字节能否被解析为对应的命令,i∈[M,N],M为最小命令长度,N为最大命令长度;如果自命令截止符向前的连续j个字节能被解析为对应的命令,将该连续j个字节解析为对应的命令输出,j∈[M,i]。本申请通过检测数据流中的命令截止符及命令字符,能快速识别出同一端口输入的混合数据流中的命令和数据,确保数据识别的完整性和可靠性。

Description

输入混合数据流识别方法和装置、计算机可读存储介质
技术领域
本发明涉及通信技术领域,特别涉及一种输入混合数据流识别方法和装置、计算机可读存储介质。
背景技术
卫星定位是指通过利用卫星和接收机的双向通信来确定接收机的位置,可以实现全球范围内实时为用户提供准确的位置坐标及相关的属性特征。但是,现有的卫星定位接收机(包括整机、模块或者板卡)不能确保正确识别出同一端口输入的混合数据,所述混合数据指的是多种格式的数据流和命令流混合在一起的数据。
当需要接收多种格式的数据流或者需要同时接收数据流和控制命令时,现有的卫星定位接收机通常使用多个端口,各个端口分别实现接收某种格式的数据流或控制命令,这样受端口数量的限制,一台卫星定位接收机支持的格式种类有限;或者,现有的卫星定位接收机也可以使用一个端口,通过分时的方式实现接收多种格式的数据流和控制命令,但是,当通过命令控制切换到某种格式数据流的模式后,该端口只能识别出设定的这种格式的数据流,不能再识别出其他格式的数据流,也不能识别出后继的控制命令(即相当于不能再通过该端口发送控制命令)。
发明内容
为了解决上述技术问题,本发明提供了一种输入混合数据流识别方法和装置、计算机可读存储介质,能快速取出同一端口输入的混合数据流中的控制命令。
为了达到本发明目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种输入混合数据流识别方法,包括:
检测输入混合数据流中是否包括命令截止符;
如果包括命令截止符,则检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,N为预设的最大命令长度;
如果自命令截止符向前的连续i个字节全部为预设的命令字符,则检测所述连续i个字节能否被解析为对应的命令,i为M至N之间的自然数,M为预设的最小命令长度;
如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数。
进一步地,所述方法还包括:
将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;
检测所述输入混合数据流或拼接成的新的输入混合数据流是否与预设的数据格式匹配;
如果与预设的数据格式匹配,则将所述输入混合数据流或拼接成的新的输入混合数据流按照对应的数据格式解析输出。
进一步地,所述预设的数据格式包括以下至少之一:
数据长度、特征校验和、数据格式特征识别码。
进一步地,所述检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,包括:
检测自所述命令截止符至所述输入混合数据流首字节之间的字节的长度是否大于N,如果大于N,则将自所述命令截止符向前的第N个字节设置为命令首部;如果小于或等于N,则将所述输入混合数据流首字节设置为命令首部;
逐个检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符;
如果当前检测的字节不是预设的命令字符,则将当前检测的字节的下一字节设置为命令首部,并循环检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符。
进一步地,所述检测所述连续i个字节能否被解析为对应的命令,包括:
检测所述当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M;
如果大于或等于M,则检测所述当前的命令首部至所述命令截止符之间的字节能否被解析为对应的命令;
如果不能被解析为对应的命令,则将所述当前的命令首部的后一字节设置为命令首部,并循环检测所述当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M且能否被解析为对应的命令,直至所述当前的命令首部至所述命令截止符之间的字节能被解析为对应的命令,或者所述当前的命令首部至所述命令截止符之间的字节的长度小于M。
进一步地,所述方法之前还包括:
获取所有的命令关键字及命令参数;
根据各个命令关键字及命令参数建立命令字符表,所述命令字符表中包括所有的所述命令字符。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的输入混合数据流识别方法的步骤。
本发明实施例还提供了一种输入混合数据流识别装置,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的输入混合数据流识别程序,以实现如以上任一项所述的输入混合数据流识别方法的步骤。
本发明实施例还提供了一种输入混合数据流识别装置,包括第一命令检测模块、第二命令检测模块和第三命令检测模块,其中:
第一命令检测模块,用于检测输入混合数据流中是否包括命令截止符,如果包括命令截止符,则通知第二命令检测模块;
第二命令检测模块,用于接收到第一命令检测模块的通知,检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,如果自命令截止符向前的连续i个字节全部为预设的命令字符,i为M至N之间的自然数,M为预设的最小命令长度,N为预设的最大命令长度,则通知第三命令检测模块;
第三命令检测模块,用于接收到第二命令检测模块的通知,检测所述连续i个字节能否被解析为对应的命令,如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数。
进一步地,所述输入混合数据流识别装置还包括数据检测模块,其中:
所述数据检测模块,用于将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;检测所述输入混合数据流或拼接成的新的输入混合数据流是否与预设的数据格式匹配;如果与预设的数据格式匹配,则将所述输入混合数据流或拼接成的新的输入混合数据流按照对应的数据格式解析输出。
本发明的技术方案,具有如下有益效果:
本发明提供的输入混合数据流识别方法和装置、计算机可读存储介质,通过检测输入混合数据流中是否包括命令截止符及预设的命令字符,能快速取出同一端口输入的混合数据流中的控制命令;
进一步地,通过将命令以外的剩余数据拼接成新的输入混合数据流继续进行数据格式的检测,能在同一端口输入的混合数据流中同时识别出控制命令和多种格式的数据流,确保数据识别的完整性和可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的一种输入混合数据流识别方法的流程示意图;
图2为本发明实施例的检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符的流程示意图;
图3为本发明实施例的检测自命令截止符向前的连续i个字节能否被解析为对应的命令的流程示意图;
图4为本发明实施例的一种输入混合数据流识别装置的结构示意图;
图5为本发明实施例的另一种输入混合数据流识别装置的结构示意图;
图6为本发明实施例的又一种输入混合数据流识别装置的结构示意图;
图7为本发明实施例的一种输入混合数据流检测原理示意图;
图8为本发明实施例的一种输入混合数据流检测过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,根据本发明实施例的一种输入混合数据流识别方法,包括如下步骤:
步骤101:检测输入混合数据流中是否包括命令截止符;
需要说明的是,本发明所述的命令截止符指的是所有命令结尾都包括的截止符号,例如,所述命令截止符可以为回车换行符或者其它的截止符号。
步骤102:如果包括命令截止符,则检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,N为预设的最大命令长度;如果不包括命令截止符,则转到步骤105;
本实施例中,所述方法之前还包括:
获取所有的命令关键字及命令参数;
根据各个命令关键字及命令参数建立命令字符表,所述命令字符表中包括所有的所述命令字符。
需要说明的是,如果自输入混合数据流首字节至命令截止符之间的字节大于或等于N个字节,则检测自命令截止符向前的N个字节是否为预设的命令字符;如果自输入混合数据流首字节至命令截止符之间的字节小于N个字节,则检测自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符。
本实施例中,如图2所示,所述检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,具体包括如下步骤:
步骤1021:检测自所述命令截止符至所述输入混合数据流首字节之间的字节的长度是否大于N;
步骤1022:如果大于N,则将自所述命令截止符向前的第N个字节设置为命令首部,转到步骤1024;
步骤1023:如果小于或等于N,则将所述输入混合数据流首字节设置为命令首部,转到步骤1024;
步骤1024:逐个检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符;
步骤1025:如果当前检测的字节不是预设的命令字符,则将当前检测的字节的下一字节设置为新的命令首部,并转到步骤1024继续循环检测。
步骤103:如果自命令截止符向前的连续i个字节全部为预设的命令字符,则检测所述连续i个字节能否被解析为对应的命令,i为M至N之间的自然数,M为预设的最小命令长度;如果自命令截止符向前的M-1个字节中包括非命令字符;则转到步骤105;
本实施例中,如图3所示,检测所述连续i个字节能否被解析为对应的命令,具体包括如下步骤:
步骤1031:检测当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M;
步骤1032:如果大于或等于M,则检测当前的命令首部至命令截止符之间的字节能否被解析为对应的命令;如果小于M,则转到后续步骤105(判断输入混合数据流中不包括命令);
步骤1033:如果不能被解析为对应的命令,则将当前的命令首部的后一字节设置为新的命令首部,并转到步骤1031继续循环检测;如果自命令截止符向前的连续j个字节能被解析为对应的命令,则转到后续步骤104(将所述连续j个字节解析为对应的命令输出)。
步骤104:如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数;
本实施例中,所述步骤104还包括:
将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;检测拼接成的新的输入混合数据流是否与预设的数据格式匹配,如果与预设的数据格式匹配,则将拼接成的新的输入混合数据流按照对应的数据格式解析输出。
本实施例中,所述预设的数据格式包括以下至少之一:
数据长度、特征校验和、数据格式特征识别码。
示例性的,预设的数据格式包括国际海运事业无线电技术委员会(RadioTechnical Commission for Maritime Services,RTCM)协议的数据格式,差分协议(Compact Measurement Record,CMR)的数据格式,信标协议的数据格式或者美国国家海洋电子协会(The National Marine Electronics Association,NEMA)协议的数据格式。
RTCM差分协议共定义了64种电文,每种电文帧长为(K+2)个字,其中电文头两个字,称为通用电文。电文信息包含在K个字中,K随电文类型不同而不同,同类电文可能由于卫星的个数不同也不相同。RTCM电文是由二进制的数据流组成,每个字由30bits构成,分解为5个6bits的字节,这样允许在标准计算机通用异步收发机(UART)间串行传送。RTCM电文的电文头之所以称为通用电文,是因为每种电文的电文头的格式和内容完全相同。8个比特的引导字固定为01100110,供用户搜索同步使用,必须通过第一和第二个字的奇偶校验,才能确认该引导字是否正确。
每个CMR信息都是以6字节的帧发送的,CMR包由传输开始标识字段、CMR信息类型字段、信息长度字段、信息数据字段、校验码字段和传输结束标识字段构成。
卫星的信标信号是由卫星上发射的一个频率和幅度都固定的信号,主要用于卫星上行地球站的天线对星和自动跟踪,对普通接收用户而言意义不大。一般每颗通讯卫星的均带有C(KU)波段信标信号。
NMEA协议是为了在不同的全球定位系统(GPS)导航设备中建立统一的海事无线电技术委员会(BTCM)标准,由美国国家海洋电子协会制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。
步骤105:如果自命令截止符向前的连续M个字节至连续i个字节均不能被解析为对应的命令,则判断输入混合数据流中不包括命令。
本实施例中,所述步骤105还包括:检测所述输入混合数据流是否与预设的数据格式匹配;如果与预设的数据格式匹配,则将所述输入混合数据流按照对应的数据格式解析输出。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的输入混合数据流识别方法的步骤。
本发明实施例还提供了一种输入混合数据流识别装置,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的输入混合数据流识别程序,以实现如以上任一项所述的输入混合数据流识别方法的步骤。
如图4所示,根据本发明实施例的一种输入混合数据流识别装置,包括第一命令检测模块401、第二命令检测模块402和第三命令检测模块403,其中:
第一命令检测模块401,用于检测输入混合数据流中是否包括命令截止符,如果包括命令截止符,则通知第二命令检测模块402;
第二命令检测模块402,用于接收到第一命令检测模块401的通知,检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,如果自命令截止符向前的连续i个字节全部为预设的命令字符,i为M至N之间的自然数,M为预设的最小命令长度,N为预设的最大命令长度,则通知第三命令检测模块403;
第三命令检测模块403,用于接收到第二命令检测模块402的通知,检测所述连续i个字节能否被解析为对应的命令,如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数。
本发明实施例中,如图5所示,所述输入混合数据流识别装置还包括数据检测模块404,其中:
所述数据检测模块404,用于将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;检测所述输入混合数据流或拼接成的新的输入混合数据流是否与预设的数据格式匹配;如果与预设的数据格式匹配,则将所述输入混合数据流或拼接成的新的输入混合数据流按照对应的数据格式解析输出。
本实施例中,所述预设的数据格式包括以下至少之一:
数据长度、特征校验和、数据格式特征识别码。
需要说明的是,本发明所述的命令截止符指的是所有命令结尾都包括的截止符号,例如,所述命令截止符可以为回车换行符或者其它的截止符号。
本实施例中,如图6所示,所述输入混合数据流识别装置还包括命令字符建立模块405,其中:
命令字符建立模块405,用于获取所有的命令关键字及命令参数;根据各个命令关键字及命令参数建立命令字符表,所述命令字符表中包括所有的所述命令字符。
需要说明的是,如果自输入混合数据流首字节至命令截止符之间的字节大于或等于N个字节,则第二命令检测模块402检测自命令截止符向前的N个字节是否为预设的命令字符;如果自输入混合数据流首字节至命令截止符之间的字节小于N个字节,则第二命令检测模块402检测自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符。
本实施例中,如图2所示,所述第二命令检测模块402检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,具体包括如下步骤:
步骤1021:检测自所述命令截止符至所述输入混合数据流首字节之间的字节的长度是否大于N;
步骤1022:如果大于N,则将自所述命令截止符向前的第N个字节设置为命令首部,转到步骤1024;
步骤1023:如果小于或等于N,则将所述输入混合数据流首字节设置为命令首部,转到步骤1024;
步骤1024:逐个检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符;
步骤1025:如果当前检测的字节不是预设的命令字符,则将当前检测的字节的下一字节设置为新的命令首部,并转到步骤1024继续循环检测。
本实施例中,如图3所示,所述第三命令检测模块403检测所述连续i个字节能否被解析为对应的命令,具体包括如下步骤:
步骤1031:检测当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M;
步骤1032:如果大于或等于M,则检测当前的命令首部至命令截止符之间的字节能否被解析为对应的命令;如果小于M,则判断输入混合数据流中不包括命令;
步骤1033:如果不能被解析为对应的命令,则将当前的命令首部的后一字节设置为新的命令首部,并转到步骤1031继续循环检测;如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出。
本发明只需一个端口即可接收混合数据流(将多种格式的数据流和命令混在一起的数据流简称为混合数据流),并能正确地将混合数据流进行分流,并确保每种数据流的完好性。
本发明的可扩展性强,能快捷准确的增加对新格式的数据流的识别。采用本发明的输入混合数据流识别方法和装置后,当需要对新格式的数据流进行识别时,只需要两步完成新格式的识别:
第一步,增加一个插件,完成具体格式的数据流头的判断代码,一条数据的完整性校验代码,从内存中取出数据的代码;
第二步,注册插件到接收机中。
图7是本发明实施例的一种输入混合数据流检测原理示意图。混合数据流进入命令检测模块(所述的命令检测模块包括前文所述的第一命令检测模块401、第二命令检测模块402和第三命令检测模块403)和各数据格式检测子模块(即前文所述的数据检测模块404)后,命令检测模块和各数据格式检测子模块并行进行检测识别,从而正确的进行分流,分流后的数据方便后继处理。各数据格式检测子模块可以扩展对新的数据格式的数据流的识别。
本发明通过输入端口将数据流不加区分的传入接收机,接收机智能区分各种格式的数据流和控制命令流,并作出正确的响应。命令检测模块和各数据格式检测子模块的程序流程图如图8所示,具体包括:
(1)将所有输入数据按照流进行管理;
(2)每种格式的协议实现一种数据格式识别,命令流作为一种特殊格式的数据流形式给予处理,并且在流内给予特殊处理;
(3)如果具体格式的数据长度和对应的特征校验和正确并且格式特征识别正确,自动匹配对应的数据格式,将数据流截取为对应的数据格式,进行后继处理;
(4)如果符合命令的初步特征(即是命令字符表中字符),将长度大于等于4字节的连续命令字符表中字符字节按照最大长度取出,按照长度优先的方式整体判断是否可被正确的命令格式解析,如果确认是正确的命令,自当前判断长度提取至命令结尾做为命令输入进行后继处理;如果不是正确的命令格式,向前进一个字节,长度减一,再次循环判断命令;
(5)如果是命令流,则输入流仅将命令流提取出,将剩余数据拼接成新的数据流进行处理;如果是差分数据流,则将差分数据的提取后,将其前部的数据流予以丢弃。
对于混合数据流的检测识别,最典型的例子是命令插入到某种特种格式的数据中的情况。例如:一条RTCM3.2的1074的数据中混有查询版本信息的命令,既要确保正确识别出查询版本信息的这条命令,又要确保正确识别出1074这条RTCM3.2的数据。
查询版本信息命令的十六进制显示如下:
6C 6F 67 20 76 65 72 73 69 6F 6E 2C 72 65 73 70 6F 6E 73 65 3A 20 4F4B 2A 36 30 0D 0A
一条RTCM3.2的1074的十六进制显示如下:
D3 00 9D 43 20 00 1B 6D B4 42 00 20 C1 90 42 0A 00 00 00 00 20 20 0100 7D F6 DB A1 A4 A5 A1 A7 27 24 23 2E 09 3C 1F 00 4F 38 81 C4 F7 80 BF 01 A004 AC 1C E8 30 D3 F5 67 F0 90 17 95 A2 29 C3 D4 E3 A6 20 BD 21 5D 5D D0 7B 3EF6 3F EC 41 DB 4C 01 6E A0 12 F4 40 4D CB 01 C9 80 05 03 A0 FC 79 83 E5 12 0F90 28 2B 5D C0 AD 49 FE A7 B2 FB EA C0 17 CA B0 5F 02 FE E7 60 FB 9F A3 EC 83FF B0 91 FE C2 D0 AF FC FA FF AA AF CC AA AF F0 00 01 A6 5A DD 5D B7 63 85 D651 54 97 D7 8E 1A 80 39 30 FC
本发明可将命令任意混入差分数据流并进行检测识别,随机提取测试样本的混合数据流的十六进制显示如下(加粗的是插入的查询版本信息的数据):
D3 00 9D 43 20 00 1B 6D B4 42 00 20 C1 90 42 0A 00 00 00 00 20 20 0100 7D F6 DB A1 A4 A5 A1 A7 27 24 23 2E 09 3C 1F 00 4F 38 81 C4 F7 80 BF 01 A004 AC 1C E8 30 D3 F5 67 6C 6F 67 20 76 65 72 73 69 6F 6E 2C 72 65 73 70 6F 6E73 65 3A 20 4F 4B 2A 36 30 0D 0A F0 90 17 95 A2 29 C3 D4 E3 A6 20 BD 21 5D 5DD0 7B 3E F6 3F EC 41 DB 4C 01 6E A0 12 F4 40 4D CB 01 C9 80 05 03 A0 FC 79 83E5 12 0F 90 28 2B 5D C0 AD 49 FE A7 B2 FB EA C0 17 CA B0 5F 02 FE E7 60 FB 9FA3 EC 83 FF B0 91 FE C2 D0 AF FC FA FF AA AF CC AA AF F0 00 01 A6 5A DD 5D B763 85 D6 51 54 97 D7 8E 1A 80 39 30 FC
在检测识别这条混合数据流时,传统的识别方法因为RTCM校验不通过,会将这一条RTCM数据丢弃,这样就会影响RTCM数据的连续性;并且在识别命令时,命令的十六进制数据前一个十六进制数“67”是对应ASCII数据的g,传统的识别方法会将此g字母与命令合在一起作为识别结果,这样传统的命令检测模块会判断此命令不存在,也就不能正确响应查询版本信息的命令。
本发明使得控制命令可任意插入到其它的数据格式中,保证各种格式的数据流和控制命令在检测识别后的完好性。同时,本发明可扩展性强,灵活度高,当增加新的格式的数据流的检测识别时,只需要增加新的格式的数据流的检测识别代码并注册插件即可;当减少某一格式的数据流的检测识别时,只需要将该格式的注册插件去掉即可。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种输入混合数据流识别方法,其特征在于,包括:
如果卫星定位接收机使用一个端口实现接收多种格式的数据流和控制命令,且该端口只能识别出设定格式的数据流,在通过该端口接收到包括该设定格式的数据流和其他格式的数据流的混合数据流后,检测输入混合数据流中是否包括命令截止符,其中所述命令截止符为所有命令结尾都包括的截止符号;
如果包括命令截止符,则检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,N为预设的最大命令长度;
如果自命令截止符向前的连续i个字节全部为预设的命令字符,则检测所述连续i个字节能否被解析为对应的命令,i为M至N之间的自然数,M为预设的最小命令长度;
如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;
检测所述输入混合数据流或拼接成的新的输入混合数据流是否与预设的数据格式匹配;
如果与预设的数据格式匹配,则将所述输入混合数据流或拼接成的新的输入混合数据流按照对应的数据格式解析输出。
3.根据权利要求2所述的方法,其特征在于,所述预设的数据格式包括以下至少之一:
数据长度、特征校验和、数据格式特征识别码。
4.根据权利要求1所述的方法,其特征在于,所述检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,包括:
检测自所述命令截止符至所述输入混合数据流首字节之间的字节的长度是否大于N,如果大于N,则将自所述命令截止符向前的第N个字节设置为命令首部;如果小于或等于N,则将所述输入混合数据流首字节设置为命令首部;
逐个检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符;
如果当前检测的字节不是预设的命令字符,则将当前检测的字节的下一字节设置为命令首部,并循环检测当前的命令首部至所述命令截止符之间的字节是否为预设的命令字符。
5.根据权利要求4所述的方法,其特征在于,所述检测所述连续i个字节能否被解析为对应的命令,包括:
检测所述当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M;
如果大于或等于M,则检测所述当前的命令首部至所述命令截止符之间的字节能否被解析为对应的命令;
如果不能被解析为对应的命令,则将所述当前的命令首部的后一字节设置为命令首部,并循环检测所述当前的命令首部至所述命令截止符之间的字节的长度是否大于或等于M且能否被解析为对应的命令,直至所述当前的命令首部至所述命令截止符之间的字节能被解析为对应的命令,或者所述当前的命令首部至所述命令截止符之间的字节的长度小于M。
6.根据权利要求1所述的方法,其特征在于,所述方法之前还包括:
获取所有的命令关键字及命令参数;
根据各个命令关键字及命令参数建立命令字符表,所述命令字符表中包括所有的所述命令字符。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的输入混合数据流识别方法的步骤。
8.一种输入混合数据流识别装置,其特征在于,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的输入混合数据流识别程序,以实现如权利要求1至6中任一项所述的输入混合数据流识别方法的步骤。
9.一种输入混合数据流识别装置,其特征在于,包括第一命令检测模块、第二命令检测模块和第三命令检测模块,其中:
第一命令检测模块,用于如果卫星定位接收机使用一个端口实现接收多种格式的数据流和控制命令,且该端口只能识别出设定格式的数据流,在通过该端口接收到包括该设定格式的数据流和其他格式的数据流的混合数据流后,检测输入混合数据流中是否包括命令截止符,如果包括命令截止符,则通知第二命令检测模块,其中所述命令截止符为所有命令结尾都包括的截止符号;
第二命令检测模块,用于接收到第一命令检测模块的通知,检测自命令截止符向前的N个字节或者自输入混合数据流首字节至命令截止符之间的字节是否为预设的命令字符,所述命令字符表示所有命令中可能出现的字符,如果自命令截止符向前的连续i个字节全部为预设的命令字符,i为M至N之间的自然数,M为预设的最小命令长度,N为预设的最大命令长度,则通知第三命令检测模块;
第三命令检测模块,用于接收到第二命令检测模块的通知,检测所述连续i个字节能否被解析为对应的命令,如果自命令截止符向前的连续j个字节能被解析为对应的命令,则将所述连续j个字节解析为对应的命令输出,j为M至i之间的自然数。
10.根据权利要求9所述的装置,其特征在于,还包括数据检测模块,其中:
所述数据检测模块,用于将除所述连续j个字节以外的剩余数据拼接成新的输入混合数据流;检测所述输入混合数据流或拼接成的新的输入混合数据流是否与预设的数据格式匹配;如果与预设的数据格式匹配,则将所述输入混合数据流或拼接成的新的输入混合数据流按照对应的数据格式解析输出。
CN201810503140.9A 2018-05-23 2018-05-23 输入混合数据流识别方法和装置、计算机可读存储介质 Active CN108933779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810503140.9A CN108933779B (zh) 2018-05-23 2018-05-23 输入混合数据流识别方法和装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810503140.9A CN108933779B (zh) 2018-05-23 2018-05-23 输入混合数据流识别方法和装置、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108933779A CN108933779A (zh) 2018-12-04
CN108933779B true CN108933779B (zh) 2021-12-07

Family

ID=64449445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810503140.9A Active CN108933779B (zh) 2018-05-23 2018-05-23 输入混合数据流识别方法和装置、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108933779B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110979A (zh) * 2006-07-19 2008-01-23 阿里巴巴公司 一种消息传送的方法、装置及系统
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备
CN104991263A (zh) * 2015-06-29 2015-10-21 中国电建集团成都勘测设计研究院有限公司 进行卫星定位信号解析的方法
CN106405577A (zh) * 2016-09-28 2017-02-15 北京中交创新投资发展有限公司 一种rtcm电文转换方法及装置
CN106445910A (zh) * 2015-09-02 2017-02-22 深圳市览网络股份有限公司 一种文档解析方法与装置
CN106534267A (zh) * 2016-10-19 2017-03-22 中国银行股份有限公司 文件上传解析方法及装置
CN106657149A (zh) * 2017-01-24 2017-05-10 恒生电子股份有限公司 通讯协议转换方法与装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320689B2 (en) * 2016-05-24 2019-06-11 International Business Machines Corporation Managing data traffic according to data stream analysis

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110979A (zh) * 2006-07-19 2008-01-23 阿里巴巴公司 一种消息传送的方法、装置及系统
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备
CN104991263A (zh) * 2015-06-29 2015-10-21 中国电建集团成都勘测设计研究院有限公司 进行卫星定位信号解析的方法
CN106445910A (zh) * 2015-09-02 2017-02-22 深圳市览网络股份有限公司 一种文档解析方法与装置
CN106405577A (zh) * 2016-09-28 2017-02-15 北京中交创新投资发展有限公司 一种rtcm电文转换方法及装置
CN106534267A (zh) * 2016-10-19 2017-03-22 中国银行股份有限公司 文件上传解析方法及装置
CN106657149A (zh) * 2017-01-24 2017-05-10 恒生电子股份有限公司 通讯协议转换方法与装置

Also Published As

Publication number Publication date
CN108933779A (zh) 2018-12-04

Similar Documents

Publication Publication Date Title
EP0195598A2 (en) Universal protocol data receiver
AU623089B2 (en) Time division multiple access radio communication system
EP3968607A1 (en) Service invocation method, apparatus, device, and medium
CN110113247B (zh) 富媒体信息收发系统、发送、展示方法及终端设备
CN106657149B (zh) 通讯协议转换方法与装置
CN110351715B (zh) At指令处理方法、终端适配器及计算机可读存储介质
CN111225414B (zh) 多模通信装置及其通信方法、多模通信系统
EA200000753A1 (ru) Способ телекоммуникации
CN107728497B (zh) 用于人机交互的通信方法
CN110768710A (zh) 一种基于北斗短报文实现语音通信的方法
CN105872995A (zh) 一种撤销发出的短信的方法及装置
US11521503B2 (en) Methods and systems for authenticating an automatic dependent surveillance-broadcast (ADS-B) signal
CN103808329A (zh) 近场通讯移动装置及导航装置通讯系统
CN105847565A (zh) 一种紧急通信号码确定方法及装置
CN108933779B (zh) 输入混合数据流识别方法和装置、计算机可读存储介质
US8959165B2 (en) Asynchronous messaging tags
CN105874874B (zh) 一种处理信息的方法及装置
CN101394594A (zh) 一种传送消息的方法及相关设备
CN103269289B (zh) 航管雷达信息测试方法和设备
CN115297447A (zh) 一种长短信合并方法、系统、设备及存储介质
CN114071464B (zh) 基于5g消息的专网实现方法、装置、设备及存储介质
CN109194566B (zh) 一种重发信息的方法、存储介质及终端设备
CN110896391B (zh) 一种报文处理方法和装置
CN113010202A (zh) 数据升级方法、数据升级装置和可读存储介质
US10006771B2 (en) Method and device for converting ship information

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